Vous êtes sur la page 1sur 23

L'univers Arduino

Partie I : Aperu de la plateforme Arduino et ses cartes d'interface ( shields )

Par f-leb
Date de publication : 29 aot 2013 Dernire mise jour : 26 septembre 2013

Vritable mini-ordinateur au succs plantaire, traitant les donnes provenant de composants et capteurs divers (capteur de temprature, luminosit, mouvement ou boutons-poussoirs, etc.) et communiquant des ordres pour allumer des lampes ou actionner des moteurs lectriques, la carte lectronique Arduino permet de crer et prototyper de vritables objets numriques interagissant avec le milieu extrieur. L'environnement de programmation qui l'accompagne propose un IDE et un langage bas sur les langages C / C++. La communaut libre du monde Arduino contribue largement diffuser les ressources permettant la cration d'objets numriques moindre cot et accessibles toutes personnes motives ayant mme des connaissances modestes dans les domaines de l'informatique et l'lectronique.

L'univers Arduino par f-leb

I - qui s'adresse ce tutoriel ?................................................................................................................................... 3 II - Rle de la carte Arduino dans l'objet pluritechnique............................................................................................. 3 III - Description de la carte Arduino Uno.................................................................................................................... 5 III-A - Le microcontrleur....................................................................................................................................... 5 III-B - L'alimentation................................................................................................................................................6 III-C - Les entres/sorties.......................................................................................................................................7 III-C-1 - Les entres/sorties numriques D0 D13......................................................................................... 7 III-C-2 - Les entres analogiques A0 A5...................................................................................................... 8 IV - L'environnement de dveloppement.....................................................................................................................9 IV-A - Installation.................................................................................................................................................... 9 IV-B - Premier pas dans l'IDE................................................................................................................................9 IV-C - Le langage de programmation.................................................................................................................. 11 V - Les cartes d'interface ou Shield.......................................................................................................................... 14 V-A - Qu'est-ce qu'un shield ?............................................................................................................................. 14 V-A-1 - Pour le prototypage............................................................................................................................15 V-A-2 - Pour l'affichage...................................................................................................................................17 V-A-3 - Pour la commande des moteurs........................................................................................................18 V-A-4 - Pour communiquer............................................................................................................................. 19 V-B - Comment bien choisir son shield............................................................................................................... 19 VI - Processing.......................................................................................................................................................... 21 VII - Conclusion......................................................................................................................................................... 22 VIII - Remerciements................................................................................................................................................. 22 IX - Bibliographie et sitographie................................................................................................................................ 22 IX-A - En langue franaise...................................................................................................................................22 IX-B - En langue anglaise.................................................................................................................................... 22 IX-C - Fabricants et/ou distributeurs de shields pour Arduino.............................................................................23

-2-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

I - qui s'adresse ce tutoriel ?


Il s'adresse aux dbutants en programmation des microcontrleurs voulant rejoindre les adeptes du mouvement Do It Yourself dans le domaine du Physical Computing . videmment, en grand cumeur des forums Developpez.net, la programmation en gnral ne vous effraie pas. Vous aimeriez juste profiter de votre mtier, votre passion pour la programmation, pour interagir avec le monde physique, piloter des robots, automatiser la monte/descente de vos volets droulants en fonction de l'ensoleillement, construire votre propre station mto et dclencher des alarmes selon des seuils de temprature, etc. Seulement vos connaissances en physique/lectricit/lectronique remontent vos annes lyce, une ternit Quant souder vous-mme des composants lectroniques, n'en parlons pas videmment vous serez oblig de vous y mettre si votre projet doit prendre de l'ampleur, mais pas tout de suite. Vous avez dj entendu parler de la plateforme Arduino, peut-tre mme achet votre Arduino Uno (une vingtaine d'euros au moment de la rdaction de ces pages) avec quelques composants de base (plaque de cblage rapide avec quelques fils, LED, rsistances) et programm votre premier Hello World (programme qui consiste faire clignoter la LED intgre la carte via la broche n 13). Vous avez peut-tre mme dj commenc combler vos lacunes en lectronique de base, suivi quelques tutoriels pour allumer une, deux puis trois LED voire plus. Classique et indispensable pour dbuter Ce tutoriel va reprendre un peu tout cela notamment dans cette premire partie, mais il propose galement d'aller un peu plus loin avec l'utilisation de capteurs volus, la dcouverte des cartes d'interface (ou shields) et de bibliothques tierces. Le programme est vaste, mais les ressources proposes vous permettront de vous lancer dans des projets plus ambitieux en vous tenant le plus possible l'cart du fer souder. L'objectif reste le mme que celui de la communaut Arduino, dcouvrir et s'amuser
(1)

II - Rle de la carte Arduino dans l'objet pluritechnique


Vous souhaitez crer votre premier robot moindre cot ? De nombreux kits base d'une carte Arduino sont disponibles sur le Net :

Parallax BOEBot Robot for Arduino Kit (1) En gros et au sens large, une discipline qui marie l'informatique, la physique et l'lectronique, s'intressant aux systmes physiques interactifs qui utilisent des logiciels et des matriels s'interfaant avec des capteurs, des actionneurs lectriques, etc.
-3-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Ce petit robot roulant vocation pdagogique possde deux roues indpendantes motorises et peut tre quip de multiples capteurs pour dtecter des obstacles, suivre une ligne au sol, etc. La structure de cet objet ludique et pluritechnique est rsume dans le diagramme fonctionnel ci-dessous (merci l'ducation nationale qui j'ai emprunt ces magnifiques diagrammes ):

Chane d'information - Chane d'nergie La partie infrieure comporte la chane d'nergie dont le rle est d'adapter/convertir le flux d'nergie rentrant (de nature lectrique) en nergie mcanique utilisable au niveau des deux roues motrices. La partie suprieure comporte la chane d'information . Les flches en bleu constituent donc des flux d'information. Cette partie doit acqurir les informations renvoyes par les capteurs (luminosit pour suivre une ligne noire au sol, ultrason pour dtecter les obstacles), les traiter et communiquer les ordres de commande la chane d'nergie, ventuellement informer l'utilisateur (signal sonore ou lumineux par exemple). Il apparat clairement que c'est dans la chane d'information dvolue principalement au traitement de l'information que notre carte Arduino joue son rle. Il apparat galement que la carte Arduino est incapable de transmettre directement la puissance aux moteurs lectriques. Effectivement chacune de ses entres/sorties numriques peut absorber ou dlivrer un courant lectrique maximum de 40 mA sous 5 Volts (sans dpasser les 200 mA pour l'ensemble des entres/sorties) ce qui est insuffisant tant donn le courant typiquement absorb par ce genre de moteur lectrique. C'est pour cela que vous devez passer par une carte d'interface (ici base de relais) qui partir des ordres de commande communique par l'Arduino (signaux vhiculant de l'information de faible puissance lectrique) permet de distribuer une puissance adapte chaque moteur. Si vous n'avez pas tout assimil cette description, retenez au moins ceci :

-4-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Le rle de la carte Arduino est de vhiculer de l' information (signaux lectriques de faible puissance), et non de transmettre directement de la puissance un actionneur tel un moteur lectrique. Ceux qui ont essay de transmettre de la puissance sans passer par ces composants d'interface ont seulement russi transmettre des signaux de fume

III - Description de la carte Arduino Uno


Il existe de nombreux modles de cartes Arduino, la plus populaire tant probablement la Uno. Le document ci-dessous sa version Uno.
(2)

vous donne un aperu de l'organisation de la carte (dimensions : 65 x 52 mm) dans

III-A - Le microcontrleur
Au moment de la rdaction de ces lignes, le cur de la carte Arduino Uno est un microcontrleur de la famille AVR, un Atmel Atmega 328P. Ce microcontrleur renferme dans un seul composant : un processeur 8 bits architecture RISC ; de la mmoire avec des espaces physiques spars : mmoire Flash (32 Ko) pour les programmes, mmoire vive SRAM (2 Ko) pour les donnes, mmoire EEPROM (2 Ko) pour les donnes de sauvegarde ; toute la logique d'horloge (16 MHz) ; des circuits d'interface et des priphriques d'entre-sortie permettant au processeur d'accder au monde extrieur : des Timers/Counters (T/C) 8 et 16 bits,

(2) Source de la photo : Flickr:Arduino Uno - Licence CC Attribution 2.0 Generic


-5-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

gnration des signaux PWM, des interfaces de communication srie (UART, SPI, TWI compatible I2C), un convertisseur Analogique-Numrique (A/D Conv.), etc.

Schma bloc de description du microcontrleur AVR Un processeur 16 MHz et 32 Ko de mmoire Flash pour stocker vos programmes, ces chiffres peuvent prter sourire en comparaison des GHz et des Go de votre ordinateur personnel. Mais avec son format carte de crdit et une consommation infrieure au Watt, la carte Arduino satisfera pourtant vos premires exigences en termes d'embarqu.

32 Ko disponibles pour vos programmes

III-B - L'alimentation
Elle a lieu sous une tension de 5 Volts. Elle peut provenir soit de la prise USB lorsque la carte est relie l'ordinateur, soit d'un bloc secteur externe (tension entre 7 et 12 Volts, 1 Ampre) via la prise jack standard. Comme la carte consomme trs peu (0,5 W), elle peut galement tre alimente par une simple pile 9 V.

-6-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Les rgulateurs monts sur la carte permettent de fournir des tensions stabilises 3,3 ou 5 Volts pour alimenter des priphriques (capteurs, shields). Les tensions appliques aux entres ne doivent pas dpasser la tension d'alimentation sous peine de dtruire le circuit.

III-C - Les entres/sorties


Ce sont les deux ranges de connecteurs de part et d'autre de la carte qui permettent sa connexion au monde extrieur.

III-C-1 - Les entres/sorties numriques D0 D13

Entres/sorties numriques D0 D13 Chacun des connecteurs D0 D13 peut tre configur dynamiquement par programmation en entre ou en sortie. Les signaux vhiculs par ces connecteurs sont des signaux logiques compatibles TTL, c'est--dire qu'ils ne peuvent prendre que deux tats HAUT (5 Volts) ou BAS (0 Volt). En pratique, les connecteurs D0 et D1 rservs pour la liaison srie asynchrone (port COM virtuel via le cble USB) ne sont pas exploits pour d'autres utilisations. noter que chacun des connecteurs ne peut fournir ou absorber un courant suprieur 40 mA environ (200 mA pour l'ensemble des connecteurs).
-7-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Certains connecteurs peuvent tre spcialiss comme sorties PWM (repres par un ~) mais nous sortons ici du cadre de ce tutoriel.

III-C-2 - Les entres analogiques A0 A5

Entres analogiques A0 A5 Par dfaut et contrairement aux entres/sorties numriques qui ne peuvent prendre que deux tats HAUT et BAS, ces six entres peuvent admettre toute tension analogique comprise entre 0 et 5 Volts. Pour pouvoir tre traites par le microcontrleur, ces entres analogiques sont prises en charge par un CAN (Convertisseur Analogique Numrique ou ADC pour Analog Digital Converter) dont le rle est de convertir l'chantillon de tension VE en une grandeur numrique binaire sur n bits.

Convertisseur Analogique Numrique Le principe de la conversion Analogique-Numrique est reprsent ci-dessous (avec n=3 bits et la tension de rfrence Vref=5 Volts) :

-8-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

CAN 3 bits - Auteur : Philippe Avi 10 Le convertisseur de la carte Arduino Uno possde une rsolution de 10 bits, soit 2 = 1024 possibilits de 0 1023. Ainsi, pour n=10 bits et la tension de rfrence par dfaut Vref=5 Volts, si la tension analogique d'entre chantillonne est VE=3,8 Volts , la grandeur numrique N (ici en entier dcimal) en sortie du convertisseur peut tre calcule grce aux relations : n 10 quantum q = Vref/2 = 5 / 2 = 5 / 1024 N = VE / q = 3,8 x 1024 / 5 soit N = 778 Il y aurait encore bien des choses dire pour avoir une description plus complte de la carte et nous sommes rest sur l'essentiel. La plateforme Arduino tant open source, une description plus complte et les schmas de la carte sont donc librement disponibles sur le site officiel.

IV - L'environnement de dveloppement IV-A - Installation


Pour l'installation (Windows, Mac OS X et Linux), rfrez-vous aux indications pas pas du site officiel : Getting Started with Arduino. Une version en franais est galement disponible : Tlchargement et installation du logiciel Arduino.

IV-B - Premier pas dans l'IDE


Voici quoi ressemble l'IDE (Windows), ici avec le programme de dmonstration Blink :

-9-

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Ce premier programme se contentera de faire clignoter la LED jaune tmoin qui se trouve prs du connecteur D13 de la carte Arduino Uno. Avant de tlcharger le programme dans la carte, il faut relier l'ordinateur et la carte via le cble USB :

Une fois le port activ et reconnu sur l'ordinateur, il faut ventuellement dsigner le bon dans l'interface :

- 10 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Finalement, le processus de rdaction du programme jusqu' son tlchargement dans la carte peut tre rsum grce au schma suivant :

IV-C - Le langage de programmation


Sous Windows par exemple, lorsque vous lancez la compilation dans l'IDE, ce sont les outils de la suite WinAVR avec son compilateur GCC qui prennent le relais. En fait, vous programmez dans un langage propre Arduino dont la structure s'apparente aux langages C/C++. Mais lorsque vous voquez une fonction Arduino, non standard C/C++, et pourtant reconnue et colorie comme un motcl dans l'diteur, vous faites appel en toute transparence une ou plusieurs bibliothques rdiges en C ou C++ qui seront incluses la compilation.

- 11 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

En enveloppant le langage C/C++ de cette manire, les concepteurs de l'IDE ont pu simplifier sa syntaxe et l'adapter aux possibilits de la carte. De nombreuses fonctionnalits de haut niveau sont ainsi proposes l'utilisateur novice qui n'a plus se soucier de la logique interne du microcontrleur.

Dans les coulisses de l'IDE Arduino, un compilateur AVR GCC. Revenons au programme de dmonstration Blink : Blink
/* Blink Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }

La structure d'un programme Arduino, rdig dans l'diteur, ressemble ceci et doit toujours comporter les fonctions setup() et loop() :
- 12 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

// Dfinition des constantes, variables globales // directives de compilation define, include, etc. void // // // // } void // // // } setup() { initialisation des ressources de la carte, configuration des entres/sorties, dfinition de la vitesse de fonctionnement du port srie, etc. setup() n'est excut qu'une seule fois. loop() { les instructions contenues ici sont excutes indfiniment en boucle Seule une coupure de l'alimentation de la carte ou un appui sur le bouton Reset permet de quitter le programme.

Nous n'allons pas ici dcrire toutes les instructions du langage Arduino, vous trouverez les rfrences et la syntaxe sur le site officiel : Language Reference Rfrence tendue du langage Arduino

Nous insistons tout de mme sur les fonctions implantes pour la gestion des entres/sorties de la carte : Fonction pinMode() digitalWrite() digitalRead() analogWrite() Description (partielle) Configuration des broches numriques en entre ou en sortie. Pour une broche numrique configure en sortie, cette instruction permet de mettre son niveau logique HAUT ou BAS. Lecture du niveau logique (HAUT ou BAS) d'une broche numrique configure en entre. La carte ne possde pas de Convertisseur Numrique Analogique. Il n'est donc thoriquement pas possible d'obtenir une tension continue qui soit l'image d'une valeur numrique (pas de sortie analogique). Il est par contre possible d'en reproduire le comportement en gnrant un signal rectangulaire (PWM ou MLI) de rapport cyclique rglable. Beaucoup de composants (LED, moteur lectrique courant continu) agissent comme des filtres passe-bas et fonctionnent comme s'ils taient aliments sous une tension continue gale la valeur moyenne du signal. Lecture de la valeur de la tension prsente sur une entre analogique (A0 A5 sur la Uno). La fonction retourne la valeur issue de la Conversion Analogique Numrique, soit une valeur comprise entre 0 et 1023 (convertisseur 10 bits).

analogRead()

Ainsi, dans la boucle infinie loop() :


void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
- 13 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

delay(1000); digitalWrite(led, LOW); delay(1000);

// wait for a second // turn the LED off by making the voltage LOW // wait for a second

La broche n 13, relie la LED intgre la carte, passe alternativement du niveau logique HAUT (HIGH) au niveau logique BAS (LOW) aprs un dlai d'une seconde, ce qui la fait clignoter. Comme vous le voyez travers cet exemple, les concepteurs du langage ont prvu d'interfacer facilement vos programmes avec le monde extrieur.

V - Les cartes d'interface ou Shield


Une carte Arduino seule, mme si vous disposez de quelques LED, rsistances, boutons poussoir, etc. n'est pas d'une grande utilit et reste dans ce cas limite des fins d'apprentissage. Si vous voulez aller plus loin et piloter les moteurs de votre robot, vous devrez passer par une interface ddie (des composants sur une carte lectronique). Une fois de plus, sous la pousse de la communaut Arduino, de nombreux fabricants proposent une plthore de cartes d'interface capables de couvrir la majorit des besoins (capteurs, relais de puissance, commande de moteurs, Internet, affichage sur matrice LED ou cran LCD, communication Wifi).

V-A - Qu'est-ce qu'un shield ?


Un shield est une carte d'interface spcialement ddie l'Arduino. Ces cartes ont des dimensions sensiblement voisines de la carte Arduino et peuvent s'enficher directement sur les connecteurs de celle-ci. Il est bien sr impossible de recenser entirement ici les centaines de shields existant sur le march (dont quelquesuns rfrencs sur le site officiel). Vous trouverez une liste de fabricants et/ou distributeurs de shields pour Arduino dans la sitographie en fin de tutoriel. On peut tout de mme en signaler quelques-uns bien pratiques et donner une ide
(3)

(3) Les images des shields suivantes proviennent du site https://www.sparkfun.com et sont sous licence CC BYNC-SA 3.0
- 14 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

V-A-1 - Pour le prototypage

Sparkfun ProtoShield Une fois enfiche sur la carte Arduino, ce shield reprend tels quels les connecteurs de part et d'autre de la carte. On peut alors coller une plaque de cblage rapide (breadboard en anglais) dans la partie centrale (en plastique vert moul sur la photo). Cette plaque permet de cbler de nombreux composants sans faire de soudure et garder le montage entirement dmontable. Le montage sur plaque d'essai ci-dessous, dessin avec le logiciel gratuit Fritzing, montre une LED branche sur la broche D10 de l'Arduino avec sa rsistance en srie.

- 15 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Montage lectronique sur plaque de cblage rapide Il ne reste plus qu' reprendre le programme de dmonstration Blink au niveau de la ligne :
int led=10;

et le tour est jou pour faire clignoter la LED rouge.

- 16 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

V-A-2 - Pour l'affichage

Sparkfun Button LCD Shield Ce shield, en plus de son cran LCD (deux lignes de 16 caractres), comporte cinq boutons-poussoirs programmables. La bibliothque LiquidCrystal qui permet de piloter l'affichage est disponible par dfaut dans l'IDE Arduino.

- 17 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

V-A-3 - Pour la commande des moteurs

Sparkfun Motor Driver Shield Ce shield permet de piloter jusqu' deux moteurs lectriques simultanment (idal pour un petit robot roulant deux roues motorises indpendantes). Avec deux connecteurs numriques utiliss par moteur seulement, vous contrlez le sens et la vitesse de rotation du moteur.

- 18 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

V-A-4 - Pour communiquer

Sparkfun Ethernet Shield Si vous souhaitez rendre disponible l'tat d'un capteur de temprature sur un rseau local Ethernet ou sur Internet, ce shield volu avec une bibliothque trs complte et de nombreux exemples de programmes saura transformer votre Arduino en vritable serveur web connect sur l'extrieur.

V-B - Comment bien choisir son shield


Certains shields sont mieux penss que d'autres et tout peut se compliquer si vous devez empiler les shields les uns sur les autres, car un seul ne suffit pas.

- 19 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Empilement de shields En voulant combiner les caractristiques de plusieurs shields, vous risquez de faire rentrer certaines de leurs fonctionnalits en conflit matriel et/ou logiciel. Telle carte ne pourra pas s'empiler sur telle autre, car les broches de la carte du dessus sont trop courtes pour s'enficher correctement sur la carte du dessous cause d'un composant trop pais. Telle bibliothque logicielle ddie un shield rentre en conflit avec celle d'un autre shield. Ou encore plus rageant, les connecteurs des diffrents shields partagent le ou les mmes connecteurs de la carte Arduino. Et je passe sur les problmes d'alimentation, d'interfrences radio/lectriques, etc. Disons que tout se passe bien si vous n'utilisez qu'un seul shield. Ds que vous commencez vouloir les empiler, vous devez potasser la documentation constructeur (les data sheets) afin de dtecter les ventuels conflits. Les fabricants proposent en principe sur leur site les documents ncessaires la mise en uvre : schma lectrique, data sheet, exemple d'utilisation, etc.

d'aprs https://www.sparkfun.com Le site Internet http://shieldlist.org vous propose un moteur de recherche intgr avec des centaines de rfrences pour choisir vos shields. Pour chaque shield rfrenc, vous trouverez les caractristiques principales ainsi qu'un schma d'allocation des broches bien utile.

- 20 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

Ce shield monopolise les broches D3 D12 noter que si l'allocation des broches du shield rend le nombre de connecteurs disponibles insuffisant pour d'autres utilisations, vous devrez probablement passer au modle suprieur comme l'Arduino Mega qui dispose de connecteurs supplmentaires et qui peut parfaitement recevoir les shields conus initialement pour la Uno.

VI - Processing
Processing est un environnement de dveloppement et un langage de programmation bas sur le langage Java adapt la cration plastique et graphique interactive. Pourquoi on vous parle de a maintenant ? Il nous suffit d'observer l'IDE Processing sur la copie d'cran ci-dessous. Cela ne vous rappelle rien ?

IDE Arduino et Processing


- 21 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

La philosophie de Processing est aussi la facilit. Outre ses dispositions pour le graphisme et le multimdia, sa bibliothque Serial permet la communication srielle entre l'Arduino et l'ordinateur hte. L'alliance parfaite Voici une vido de dmonstration qui montre l'utilisation combine d'une carte Arduino Uno relie par un cble USB un PC muni du logiciel Processing.

Un module boussole lectronique est connect la carte Arduino. Le programme implant dans le microcontrleur se contente de rcuprer les donnes du module (angle de rotation par rapport au nord) et les transmettre priodiquement par la liaison srie tablie via le cble USB (port COM virtuel). Le programme hte Processing du PC rcupre les donnes numriques pour animer l'aiguille de la boussole l'cran. Arduino et Processing, les deux font la paire Si vous matrisez l'un, l'autre vous sera dj familier.

Cliquer sur ce lien pour lancer l'animation

VII - Conclusion
Comme vous avez pu le constater, ce qui prime dans Arduino, c'est sa simplicit qui permet de mettre en uvre de nombreux objets numriques moindre cot sans tre un spcialiste du fer souder ou de la programmation des microcontrleurs. C'est cette qualit-l qui donne Arduino le succs plantaire qu'on lui connat. Vous tes maintenant par raliser votre premier prototype dans la deuxime partie de ce tutoriel : Partie II : Ralisation d'un prototype base d'Arduino

VIII - Remerciements
Je remercie vivement Bktero et deletme pour leur relecture technique et leurs conseils aviss. Merci galement Maxime et Benjamin de la vido. pour leurs travaux sur la boussole lectronique et qui sont l'origine

Je remercie galement l'ami ClaudeLELOUP pour sa relecture orthographique.

IX - Bibliographie et sitographie IX-A - En langue franaise


http://fr.flossmanuals.net/arduino/ : un manuel francophone licence C.C trs complet, qui peut tre command en version imprime, export en PDF ou ePUB. http://www.mon-club-elec.fr/ : le site de Xavier HINAULT, trs complet galement avec des traductions en franais du site officiel. Atelier Arduino - Initiation la mise en uvre matrielle et logicielle de l'Arduino : un livret un peu ancien, mais trs bien fait pour dbuter vos premiers bidouillages. Arduino - Matrisez sa programmation et ses cartes d'interface (shields) par Christian Tavernier. Processing - Le manuel : le manuel du logiciel de cration multimdia, un complment indispensable pour interfacer vos applications Arduino.

IX-B - En langue anglaise


http://www.arduino.cc/ : le site officiel.
- 22 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/

L'univers Arduino par f-leb

http://tronixstuff.wordpress.com/tutorials/ : le blog tronixstuff avec plus de 50 tutoriels pour Arduino. http://shieldlist.org/ : un site rfrenant des centaines de shields pour Arduino. EathShine Design - Arduino Starters Kit Manual : un autre manuel pour dbuter. Adafruit learning system : une srie de tutoriels pour dbuter. Arduino Projects to save the World : on peut aussi le tlcharger gratuitement. http://www.arduinoevilgenius.com/ : 30 Arduino Projects for the Evil Genius, existe aussi gratuitement en version PDF.

IX-C - Fabricants et/ou distributeurs de shields pour Arduino


Arduino Store Sparkfun Adafruit DFRobot Lextronic

- 23 -

Le contenu de cet article est rdig par f-leb et est mis disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos. Les logos Developpez.com, en-tte, pied de page, css, et look & feel de l'article sont Copyright 2013 Developpez.com. http://f-leb.developpez.com/tutoriels/arduino/univers_arduino/part1/