Main menu

Pages

News

 

Carte Arduino UNO


Présentation générale de l’ARDUINO 

Le système Arduino est une carte électronique basée autour d’un microcontrôleur et de composants minimum pour réaliser des fonctions plus ou moins évoluées à bas coût. Elle possède une interface usb pour la programmer. C’est une plateforme open-source qui est basée sur une simple carte à microcontrôleur (de la famille AVR), et un logiciel, véritable environnement de développement intégré, pour écrire, compiler et transférer le programme vers la carte à microcontrôleur.


Arduino peut être utilisé pour développer des applications matérielles industrielles légères ou des objets interactifs (création artistiques par exemple), et peut recevoir en entrées une très grande variété de capteurs. Arduino peut aussi  contrôler une grande variété
d’actionneurs (lumières, moteurs ou toutes autres sorties matériels). Les projets Arduino peuvent être autonomes, ou communiquer avec des logiciels sur un ordinateur (Flash, Processing ou MaxMSP). Les cartes électroniques peuvent être fabriquées manuellement ou bien être achetées préassemblées ; le logiciel de développement open-source est téléchargeable gratuitement.


I- La partie matérielle

1)- Definition : Arduino UNO

L’Arduino UNO est un microcontrôleur programmable qui permet, de contrôler des éléments mécaniques : systèmes, moteurs, etc. Cette carte électronique permet donc à son utilisateur de programmer facilement des choses et de créer des mécanismes automatisés, sans avoir au préalable des connaissances approfondies en programmation.


C’est un outil pensé et destiné aux inventeurs, artistes ou amateurs qui souhaitent créer leur propre système automatique en le codant de toute pièce, au meilleur prix.

Carte Arduino UNO

La carte Arduino UNO est l’une des cartes les plus populaires de la famille Arduino dont le cœur est un microcontrôleur de références ATMega328. Il possède 14 broches d'entrée/sortie numériques (dont 6 peuvent être utilisées en tant que sorties PWM), 6 entrées analogiques, en quartz de 16 MHz, une connexion USB, une prise d'alimentation, un en-tête ICSP et un bouton de réinitialisation. Il contient tout le nécessaire pour prendre en charge le microcontrôleur.


2- Caractéristiques de la carte Arduino UNO.


Avec l’Arduino UNO, il est possible de s’en passer de la connaissance profonde de la programmation ; cependant, il faudra se procurer des modules externes qui augmenteront inévitablement le coût de reviens total de l’installation.

Carte Arduino UNO

La carte Arduino UNO est basée sur un Microcontrôleur ATMega328 cadencé à 16 MHz. C'est la plus récente et la plus économique carte à microcontrôleur.


    a- Microcontrôleur ATMega328.


Le microcontrôleur utilisé sur la carte Arduino UNO est un microcontrôleur ATMega328. C'est un microcontrôleur ATMEL 8bits de la famille AVR dont la programmation peut être réalisée en langage (C, C++). Un microcontrôleur ATMega328 est un circuit intégré qui rassemble les éléments essentiels d’un ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive pour les données), unités périphériques et interfaces d’entrées-sorties. Il est constitué par un ensemble d’éléments qui ont chacun une fonction bien déterminée.


Les microcontrôleurs se caractérisent par un plus haut degré d’intégration, une plus faible consommation électrique (quelques milliwatts en fonctionnement, quelques nano watts en veille), une vitesse de fonctionnement plus faible (quelques mégahertz à quelques centaines de mégahertz) et un coût réduit par rapport aux microprocesseurs polyvalents utilisé dans les ordinateurs personnels.


    b) - Alimentation.


La carte Arduino UNO peut être alimentée par l’USB ou par une alimentation externe. La source est sélectionnée automatiquement. La tension d’alimentation extérieure (hors USB) peut venir soit d’un adaptateur AC-DC ou de piles. L’adaptateur peut être connecté grâce à un jack de 2.1mm positif au centre. Le raccordement vers un bloc de piles peut utiliser les bornes GND et VIN du connecteur d’alimentation (POWER). La carte peut fonctionner à l’aide d’une tension extérieure de 7 à 12 volts. Les broches (pins) d’alimentation sont les suivantes.


VIN ou RAW : tension positive à l’entrée du régulateur de tension présent sur la carte Arduino à l'aide d'une source d'alimentation externe dont la tension est comprise entre 7 et 12V (par opposition à 5 volts de la connexion USB ou une autre source d'alimentation régulée).


VIN : La tension d’entrée positive lorsque la carte Arduino est utilisée avec une source de tension externe (à distinguer du 5V de la connexion USB ou autre source 5V régulée). Vous pouvez alimenter la carte à l’aide de cette broche, ou, si l’alimentation est fournie par le jack d’alimentation, accéder à la tension d’alimentation sur cette broche.


5V : La tension régulée utilisée pour faire fonctionner le microcontrôleur et les autres composants de la carte (les circuits électroniques numériques nécessitent une tension d’alimentation parfaitement stable dite « tension régulée » obtenue à l’aide d’un composant appelé un régulateur et qui est intégré à la carte Arduino). Le 5V régulé fourni par cette broche peut donc provenir soit de la tension d’alimentation VIN via le régulateur de la carte, ou bien de la connexion USB (qui fournit du 5V régulé) ou de tout autre source d’alimentation régulée.


3.3V: Une alimentation du microcontrôleur fournie par le circuit intégré FTDI (circuit intégré faisant l’adaptation du signal entre le port USB de l’ordinateur et le port série de l’Atmega) de la carte ceci est intéressant pour certains circuits externes nécessitant cette tension au lieu du 5V). L’intensité maximale disponible sur cette broche est de 50mA.


GND : Broche de masse (ou 0V).


   c)- Les entrées et sorties.

La carte ARDUINO repose sur un circuit intégré (un mini-ordinateur appelé également microcontrôleur) associée à des entrées qui permettent à l’utilisateur de Brancher différents types d’éléments externes.


L'Arduino UNO possède 14 broches d'entrée/sortie digitale (Numérotées des 0 à 13), ces broches peuvent être utilisée soit comme une entrée numérique (INPUT), soit comme une sortie numérique (OUTPUT), en utilisant les instructions pinMode(), digitalWrite() et digitalRead() du langage Arduino. Ces broches fonctionnent en (5V).


Chaque broche peut fournir ou recevoir un maximum de « (40mA) d’intensité et dispose d'une résistance interne de "Rappel au plus" (Pull-up) (Déconnectée par défaut) de (20-50 KOhms) à l'intérieur du microcontrôleur ATmega sur lequel est basée la carte Arduino, résistances qui peuvent être configurées à l’aide d’un programme. Pour éviter des dommages permanents au microcontrôleur, le courant maximal qui ne doit pas être dépassée sur toutes les broches d'Entrée/Sorties serait de 40mA du. Cette résistance inter de rappel s'active sur une broche en entrée à l'aide de l'instruction digitalWrite (broche, HIGH).


Le nombre d’entrées-sorties est variable selon les cartes Arduino. Toutefois leurs principes de fonctionnement se retrouvent quasiment à l’identique. Si la plupart des broches d’entrées/sorties disponibles à la périphérie des Arduino permettent d’émettre ou de recevoir une valeur numérique binaire (0 ou 1), elles offrent aussi des fonctions spécialisées et on peut, par programme, décider de la fonction allouée à une broche particulière.


En entrée, le programme peut lire une tension présente sur cette broche, en utilisant le digitalRead() comme cette tension est interprétée comme un chiffre binaire (0 ou 1).


En sortie, le programme peut écrire un chiffre binaire (0 ou 1), au moyen du digitalWrite(); chiffre qui, dans le programme sont nommées HIGH pour le 1 et LOW pour le 0, qui sera traduit en une tension de 5V pour le 1 et de 0V pour le 0. Toutefois, cette tension peut respectivement être plus basse ou plus haute si le courant qui est tiré de la broche commence à être important.


Quel que soit la broche de l’Arduino, on ne peut y brancher une tension supérieure à la tension d’alimentation, c’est à dire 5V ou 3,3V selon le modèle, ni une tension inférieure à la masse, le 0V, sous peine de destruction d’au moins la broche concernée si ce n’est l’Arduino en entier. Quelques Arduino 3,3V.


    d) - Communication


La carte Arduino UNO a des nombreuses possibilités de communications avec l’extérieur et dispose de toute une série de facilité pour communiquer avec un ordinateur, une autre carte Arduino ou avec d'autres microcontrôleurs. L'ATmega328 dispose d'une UART (Universal Asynchrones Receiver Transmitter ou émetteur-récepteur asynchrone universel) pour la communication série de niveau TTL (5V) et qui est disponible sur les broches 0 (RX) et 1 (TX).


Le but de la liaison série est bien de permettre l'échange de données entre deux dispositifs.


    - La broche 0 (Rx) permet la réception de données.

    - La broche 1 (Tx) permet la transmission de données.


    e)- Les mémoires


Le microcontrôleur ATmega 328 dispose de 32ko de mémoire Flash permettant de stocker le programme à exécuter. Il contient aussi de 2ko de mémoire vive (SRAM). Cette mémoire est généralement utilisée pour stocker les résultats temporaires lors de calculs. Elle peut être lue et écrite à tout instant par le microcontrôleur mais son contenu est perdu une fois non alimentée. 


L’ATmega328 dispose également 1ko mémoire EEPROM pour permettre au programme de stocker des données persistantes. Le contenu de cette mémoire est accessible grâce aux fonctions de la librairie « EEPROM».


    f)- L’horloge

 L’horloge est pilotée par quartz et fonctionne à la fréquence de 16 MHz.


3- Avantages de la carte Arduino UNO


Il y a beaucoup de cartes électroniques disponibles qui possèdent des plateformes basées sur un microcontrôleur pour l'électronique programmable. Tous ces outils prennent en charge les détails compliqués de la programmation et les intègrent dans une présentation facile à utiliser. 

De la même façon, le système Arduino UNO simplifie la façon de fonctionner avec les microcontrôleurs tout en offrant à personnes intéressées plusieurs avantages cités comme suit :


    • Le prix (Réduit) : Les cartes Arduino UNO sont relativement peu coûteuses comparées aux autres plates-formes.


    • Un environnement de programmation clair et simple : L'environnement de programmation Arduino (le logiciel Arduino IDE) est facile à utiliser pour les débutants tout en étant assez flexible pour que les utilisateurs avancés puissent en tirer profit également.


    • Logiciel Open Source et extensible : Le logiciel Arduino et le langage Arduino sont publiés sous licence open source, disponible pour être complété par des programmateurs expérimentés. 

Le logiciel de programmation des modules Arduino est une application JAVA multiplateformes (Fonctionne sur tous les systèmes d'exploitation) servant d'éditeur de code et de compilateur et qui peut transférer le programme à travers une liaison série (RS-232, Bluetooth ou USB selon le module).


    • Matériel Open source et extensible : Les cartes Arduino sont basées sur les Microcontrôleurs Atmel ATMEGA8, ATMEGA168, ATMEGA328. Les concepteurs des circuits expérimentés peuvent réaliser leur propre version des cartes Arduino en les complétant et en les améliorant.

 Même les utilisateurs relativement inexpérimentés peuvent fabriquer la version sur plaque d'essai de la carte Arduino pour comprendre comment elle fonctionne dans le but d’économiser le coût.


II- Partie Logiciel:


Espace de développement Intégré Arduino

1- Définition


L’espace de développement intégré (EDI ou IDE) Arduino permet d'écrire, de compiler et d'envoyer le code sur le circuit imprimé. Son interface est plutôt simple, très réduite et facile à utiliser pour développer un programme sur Arduino.


Le langage Arduino est inspiré de plusieurs langages. On retrouve notamment des similarités avec le C, C++, le JAVA.


2- Interface Arduino IDE.


L’interface Arduino est dotée d’un éditeur de code avec coloration syntaxique et d’une barre d’outils rapide. Ce sont les deux éléments de l’interface les plus importants et le plus souvent, utilisés. 


On retrouve aussi une barre de menus, plus classique, qui sert à accéder aux fonctions avancées de l’IDE, la « Barre de Boutons » qui donne un accès direct aux fonctions essentielles du logiciel, et onglets des fichiers ouverts, fenêtres des éditions des programmes pour écrire le code source du programme Arduino et la zone des message des actions en cours et enfin, une console pour afficher les résultats de la compilation du code source, des opérations sur la carte etc.


Les différents boutons de la barre des boutons sont :

Barre de Boutons Arduino IDE.

    Vérifier/compiler : sert à vérifier le programme pour s’assurer que le programme écrit ne présente pas de bugs et s’exécute correctement.
 
    Téléviser : en cliquant sur ce bouton, le programme se transfère et se compilé dans la mémoire de la carte Arduino.


    Nouveau code : sert à créer un nouveau programme (sketch).


    Ouvrir : ouvrir un programme excitant.


    Enregistrer : sauvegarder le programme. Pour le sauvegarder sous un autre nom, il faudra passer par file/ Save a dans le menu enregistré.


    Serial Moniteur : est utilisée pour ouvrir la fenêtre qui permet de visualiser les données transmises par le port série de l’Arduino.


En-dessous de ces boutons, on trouve une zone blanche : c’est l’éditeur de code pour écrire le code source du programme Arduino.

l’éditeur de code Arduino IDE

Vers le bas de la fenêtre du logiciel, se trouve la console de débogage qui affiche les différentes erreurs d’exécution de ce programme. Grâce à cette console, on peut s’assurer du bon fonctionnement du programme avant de le transférer sur la carte Arduino.

Console de débogage de l’IDE

    3- Langage de programmation.


Un programme utilisant l’Arduino est une suite d’instructions élémentaires sous forme textuelle. La carte lit ligne par ligne puis effectue les instructions les unes après les autres, dans l’ordre défini par les lignes de code.


Le langage de programmation impose une structure particulière et typique de l’informatique embarquée répartie en trois étapes comme suit :


    a)  La partie déclaration des variables (optionnelle).


    b) La partie initialisation et configuration des entrées et sorties: la fonction « Setup » c’est la fonction d'initialisation de la carte, appelée une seule fois lorsque le programme commence l’exécution. Cette fonction contiendra toutes les opérations nécessaires à la configuration de la carte (directions des entrées sorties, débits de communications série, etc).


    c)  La partie principale qui s’exécute en boucle : la fonction « Loop » c’est la fonction principale d’un programme Arduino. Elle s’exécute après la fonction setup et contient l’ensemble d’instructions à exécuter en boucle. 

Etapes de programmation carte Arduino

Elle continuera de boucler tant que la carte n’est pas mise hors tension ou redémarrée par le bouton reset. Cette boucle est absolument nécessaire sur les microcontrôleurs étant donné ces derniers n’ont pas de système d’exploitation.


Comments