Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Cartes à micro-contrôleurs > Les cartes Arduino > Débuter avec une carte Arduino

Débuter avec une carte Arduino

samedi 11 octobre 2008, par Julien H.

Arduino est une carte programmable open-source devenue un standard de fait pour ses extensions pratiques pour la robotique ludique et les montages électroniques amateurs. C’est simple, c’est pratique et nous sommes là pour vous aider !

La famille Arduino est apparue en 2006 sous forme d’une carte programmable avec un port série. Puis de nouvelles versions sont apparues, toujours aussi simples, avec différents formats : petites, grandes, plus puissantes, plus économiques, avec USB, avec Ethernet, compatible Androïd, etc...

On peut les utiliser pour récupérer les informations de capteurs, pour contrôler des moteurs, pour communiquer avec un ordinateur, avec un téléphone portable, pour envoyer et lire des messages sur Internet, pour éteindre des appareils électriques, pour piloter un robot mobile, pour servir de cerveau à un humanoïde, ou tout simplement pour apprendre l’électronique, et encore bien d’autres usages.

Retrouvez grâce au lexique tous nos articles traitant de la carte Arduino.

Arduino, c’est une grande famille et une solution reconnue avec des publications dédiées.

Différents modèles, une même passion

Présentation

Voici ses caractéristiques principales pour le modèle le plus courant :

 hardware

  • une carte de 5.5 cm sur 7 cm d’une épaisseur de 1.5 cm
  • avec un micro-contrôleur Atmel AVR 8bits
  • des connecteurs pour toutes les entrées et sorties, numériques et/ou analogiques
  • des composants permettant l’utilisation du port USB en programmation et en communication
  • un connecteur USB type B (standard carré)
  • un connecteur d’alimentation (voir plus bas pour les détails)

 software

  • un environnement de programmation unique regroupant éditeur de code, compilation et debug
  • un langage C/C++ avec des simplifications pour les débutants, compatible avec d’autres sources
  • et des bibliothèques de code open source permettant d’étendre les fonctionnalités du micro-contrôleur.

La carte utilisée pour nos premiers tests était la version Diecimila de la famille Arduino : en 2008, elle célébrait la 10 000ème carte vendue. Mais de nombreuses versions sont apparues depuis, et les versions pour bien débuter sont désormais l’Arduino Uno ou un clone DFRduino un peu moins cher.

Pour les applications robotiques, c’est la DFRduino Romeo qui est conseillée grâce à ses contrôleurs de moteur directement sur la carte, sans pour autant perdre la compatibilité avec les shields récents.

Pour la domotique ou les applications gourmandes en capacité et en entrées/sorties, il existe maintenant l’Arduino Mega mais le fonctionnement est identique, hormis la procédure d’installation du pilote.

Pour l’intégration avec un appareil mobile Android, il existe même une version spéciale ADK !

Premiers pas

Installation du logiciel

Téléchargez la dernière version du logiciel Arduino disponible sur http://www.arduino.cc/en/Main/Software. Cette carte fonctionne sur Windows, Macintosh et même Linux en suivant leurs conseils d’installation.

Le programme fait plus de 50 Mo car il contient tous les outils qui permettront de fonctionner sans aucun autre programme !

Selon votre machine, procédez à son installation. Par exemple sous Windows, il suffit de dézipper dans un répertoire de votre disque dur, facile non ?

Dans le répertoire d’installation, lancez le programme arduino (ex : arduino.exe sous Windows). Cette application est basée sur les mêmes principes de simplicité qu’une application de programmation Java appelée "Processing" et qui permet en deux clics de compiler et de lancer le programme développé.

Fenêtre principale Arduino

Ainsi, vous constaterez que l’application est composée uniquement d’une fenêtre d’édition de texte, d’un menu et d’une barre de boutons.

Barre de boutons Arduino

Cette barre de boutons permet de compiler ("Verify" est un résumé), d’arrêter la compilation (car dans le cas de certains programmes complexes, cela peut s’avérer long), de transférer le programme dans la carte Arduino et d’ouvrir une fenêtre spéciale de communication entre l’ordinateur et la carte (aussi appelée "console série"), et bien
sûr d’ouvrir, de sauver et de créer des fichiers.

Connexion

Une fois faite l’acquisition de cette carte, vous pouvez la déballer et commencer à vous en servir en connectant la carte via un cable USB (prise A / prise B). L’alimentation est fournie par l’ordinateur et la carte est reconnue comme
un nouveau port série (COMx où x est un nombre supérieur ou égal à 1, en fonction des équipements du même type qui ont déjà été connecté à votre ordinateur).

Vous voilà prêt à tenter quelques programmes simples : c’est l’objet de notre article sur les premiers codes sous Arduino. Retrouvez d’autres manières de programmer dans la rubrique sur la programmation de l’Arduino.

En savoir plus

Avant d’aller plus loin, vous trouverez ci-dessous des ressources en français sur les cartes Arduino :

Connecter un servomoteur

On va maintenant utiliser la carte Arduino pour piloter la rotation d’un servomoteur. On a déjà présenté sur ce site en
détail le fonctionnement d’un servomoteur et comment le faire tourner. Avec la carte Arduino, on va se simplifier la
vie en utilisant une bibliothèque existante, c’est-à-dire un code qui exécute les commandes de contrôle en offrant
une liste de fonctions simples qui réduisent grandement notre propre code.

On utilise la bibliothèque Servo désormais intégrée en standard. Mise à jour : nous ne mentionnons pas ici l’ajout de la bibliothèque dans un environnement antérieur à Arduino 0018.

Montage

Rien de plus simple, on va relier ensemble le câble de connexion du servo à la carte Arduino. Les connecteurs des servomoteurs étant différents selon les constructeurs, voici la liste de correspondance.

Rôle Masse Tension Signal
Arduino GND 5V DIGITAL 9
type 1 noir rouge blanc
type 2 marron rouge orange

On va connecter selon le choix indiqué ci-dessus le signal de commande du servomoteur à la patte "DIGITAL 9" de la carte Arduino.

Le connecteur d’un servomoteur étant généralement femelle, comme les connecteurs d’E/S [1] de l’Arduino, j’utilise des câbles mâle/mâle bien pratiques que l’on trouve un peu partout sur le Net (voir nos fournisseurs). Vous pouvez aussi utiliser un simple fil de cuivre dénudé aux extrémités.

Le montage Arduino + servo terminé est simple comme vous pouvez le constater :

Connexion d’un servomoteur sur la carte Arduino

Retrouvez un programme d’exemple sur notre initiation à la programmation C++ pour Arduino.

Et avec un peu d’entraînement, voilà ce que vous pourrez programmer :

Pour aller plus loin

On va maintenant chercher à débrancher la carte du PC pour que le programme que vous avez développé s’exécute
dans l’environnement cible (robot, objet intelligent, ...). Il va donc falloir lui fournir une alimentation.

Caractéristiques d’alimentation

Note : ceci est une traduction en français des informations fournies sur le site officiel concernant la carte Arduino Diecimilla avec quelques compléments pour les débutants.

La carte Arduino Diecimila peut être alimentée via le câble USB (voir premiers pas) ou par une alimentation ’externe’
 :

 un adaptateur secteur qui convertit le 220V alternatif qui sort du mur en tension continue, aussi connu comme
bloc d’alim standard tel qu’on en trouve avec une imprimante, un disque dur externe, une perceuse sans fil, etc...)

 une pile ou des accumulateurs rechargables, qui sont une source d’alimentation bien pratique pour un système
mobile (robot, gadget portable).

La source à utiliser doit être sélectionnée sur la carte en utilisant un jumper à deux positions : un cavalier (jumper) à
cheval sur les deux pattes du haut, i.e. vers le connecteur USB type B métallique ou sur les deux du bas vers le
connecteur ’jack’ femelle noir en plastique.

La tension continue en provenance d’une source "externe" peut être connectée sur ce connecteur jack (le pôle + est
au centre) ou pour les batteries (piles, accus), directement sur les pattes (connecteur femelle) GND pour la masse (0
volts) et Vin (voltage in) pour la tension nominale. Un régulateur à faible chute de tension (low dropout ou LDO)
assure la conversion en 5 volts.

Cette tension externe peut être comprise entre 6 et 20 volts (au passage, 6 volts pour en fournir 5, c’est ce qu’on
appel une faible chute de tension). Si la tension d’entrée descend en dessous de 7 volts, la tension de sortie qui
alimente la puce et toute l’électronique "logique" (en gros, toute la carte) va descendre en dessous de 5V et le
comportement de la carte sera instable. A l’inverse, si vous fournissez une trop grosse alimentation (supérieure à
12V), le régulateur de tension va chauffer et peut endommager la carte.

La tension d’alimentation externe recommandée se situe donc entre 7 volts et 12 volts. Respectez ces valeurs

Rappel sur le connecteur de puissance :

  • VIN : la tension d’entrée qui alimente la carte Arduino quand on utilise une source dite "externe" (par opposition
    à l’alimentation par câble USB ou toute source 5V régulée). Cette patte du connecteur femelle est totalement
    équivalente à la tension du connecteur jack femelle en plastique noire, vous pouvez utiliser indépendamment
    l’un ou l’autre. Attention, pas les deux en même temps ! (c’est à dire pas une pile sur Vin et une alimentation
    d’un bloc d’alim sur le jack).
  • 5V : la tension régulée qui alimente le microcontrôleur et l’ensemble des autres composants. Soit c’est la sortie
    du régulateur low-dropout si vous utilisez l’alim externe, soit c’est le même 5V que votre port USB. Ici aussi, pas
    de blague en connectant une deuxième source de 5V s’il y en a déjà une que vous auriez oublié (le câble USB
    avec le connecteur (cavalier, jumper) en position USB.
  • 3V3 : une autre tension régulée, cette fois-ci à 3.3 volts car c’est une tension qu’on retrouve de plus en plus en
    électronique (puces de communication sans fil, certains capteurs, certains circuits intégrés). D’ailleurs pas de
    régulateur low-drop, c’est la puce FTDI qui gère les communications séries/UART/USB sur la carte Arduino qui
    sort cette tension adaptée. Le courant maximum sur ce port est de 50 mA.
  • GND : la masse, car GrouND en anglais.

Intensité

Après avoir parlé des tensions, parlons de courant : l’intensité en sortie des connecteurs de la carte Arduino est
limitée par les possibilités du microcontrôleur. Soit, pour l’ATmega168, une intensité maximale fournie à chaque
patte d’entrée sortie de 40 mA. Lire la suite pour les limites.

En effet, voici des compléments intéressants suite à quelques questions d’un de nos visiteurs :

Quel ampérage il me faut pour l’alimentation ... je suppose que c’est 1 ampère ...

Je vous vois déjà faire le calcul : une vingtaine de pattes à 40 mA, ça fait dans les 800mA.

Et bien non, car il ne faut pas oublier que pour cette famille de microcontrôleurs Atmel AVR (et peut être valable pour les autres familles), chaque port est limité à un courant total de 200 mA, et le microcontrôleur a une limite globale de 400 mA. De plus, un port USB standard (celui du PC où vous brancherez l’Arduino) fournit au maximum 500 mA (voire beaucoup moins pour un ordinateur portable).

Donc une source d’alimentation qui fournit un maximum de 500 mA suffit.

Mais bien sûr qui peut le plus peut le moins, et si le bloc d’alim qu’on vous propose fait moins de 10 euros, alors 1A iront très bien.

Comment est redistribuée l’électricité ? La carte Arduino s’occupe-t-elle elle même de de redistribuer le courant ? Dans le sens où je doit calculer tout ce que je vais mettre dessus ou pas ? LED et servomoteurs

Et bien tout dépend du composant. Dans le cas des servomoteurs, la patte de sortie de l’Arduino va juste piloter (donner les consignes de rotation) à l’électronique interne du servo, tandis que les pattes masse et tension du moteur sont reliées aux pattes du connecteur de puissance, donc avec autant de courant disponible que votre alimentation peut en fournir (500mA dans le cas de l’adaptateur secteur discuté ci-dessus, mais dix fois plus si c’est une pile ou un accu rechargeable). Donc aucun calcul nécessaire.

Dans le cas de la led, c’est différent. Vous n’avez pas à calculer le courant disponible pour le limiter, mais vous devez réaliser une baisse de tension car la LED n’a pas besoin de 5 volts et accepte autant d’intensité que vous lui en donnez, jusqu’à éclater.

Il va donc falloir appliquer une petite loi d’ohm :

U=R*I

où U est la tension aux bornes de la résistance et I l’intensité la traversant. Prenons une diode LED qui a une chute de tension à ses bornes de 1.8 volts pour un courant de 10 mA. La carte Arduino fonctionne en 5 volts, donc

R = (5 - 1.8) / 0.01 = 320 

soit 330 car les valeurs sont normalisées (c’est le même exemple que dans l’article d’Eric sur les premiers pas avec
un micro-contrôleur sans ta mère).

Vérifions la puissance dissipée (une résistance chauffe) :

P = U * I = 3.4*0.010 = 34 mW

largement inférieur au 1/4 de Watt des résistances carbones usuelles.

Portfolio


[1entrées/sorties ou I/O en anglais

Vos commentaires

  • Le 25 janvier 2010 à 02:10, par olivier En réponse à : Débuter avec une carte Arduino

    Bonsoir,
    Pour débuter avec la carte arduino, j’ai suivi votre tuto la première partie avec la led tout se passe bien mais sur la partie avec le servo moteur le code qui est fournie ne marche pas (peut être du a l’évolution du logiciel)
    il me signal une erreur sur la ligne :
    servo1.setMaximumPulse(2200) ; // 2,2 ms pour la valeur maximum

    • Le 25 janvier 2010 à 21:46, par Julien H. En réponse à : Débuter avec une carte Arduino

      C’est corrigé ! En fait beaucoup de choses ont changé avec les derniers versions, notamment la bibliothèque pour servomoteurs est intégrée au logiciel et des exemples sont fournis.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.