Sie sind auf Seite 1von 42

ARDUINO

LES CARTES ARDUINO ET LEURS UTILISATIONS .................................................................. 3


1 Introduction .......................................................................................................................... 3 2 Historique du projet Arduino .................................................................................................. 4 3 Documentation sur Arduino ................................................................................................... 5 4 Cartes Arduino Uno................................................................................................................ 6 4.1 Les diffrentes versions ............................................................................................................. 6 4.2 Implantation et schma Arduino uno Rev2............................................................................... 6 4.3 Alimentation .............................................................................................................................. 8
4.3.1 Schma .............................................................................................................................................. 8 4.3.2 Alimentation uniquement par la prise usb ....................................................................................... 8

5 E/S disponibles sur connecteurs de la carte Arduino Uno ........................................................ 9 6 Environnements de dveloppement Intgrs (EDI) utilisables ............................................... 10 6.1 EDI Arduino spcifique la carte cible .................................................................................... 10
6.1.1 Gnralits ...................................................................................................................................... 10 6.1.2 Rappels sur le langage / Fonctions disponibles .............................................................................. 11 6.1.3 Compilation ..................................................................................................................................... 12

6.2 EDI Scratch for Arduino spcifique la carte cible.................................................................. 12 6.3 EDIs non spcifiques la carte cible........................................................................................ 13
6.3.1 Eclipse ............................................................................................................................................. 14 6.3.2 Visual Micro = Arduino for Visual Studio (Microsoft) ..................................................................... 14 6.3.3 AVR studio 5 .................................................................................................................................... 14

6.4 Flowcode ................................................................................................................................. 14 6.5 LabView ................................................................................................................................... 14 7 Programmation du C principal puis utilisation..................................................................... 15 7.1 Gnralits sur la programmation et lutilisation ................................................................... 15 7.2 Programmation ICSP (In Circuit Serial Programming) ............................................................. 15 7.3 Programmation via la liaison USB ........................................................................................... 15
7.3.1 Gnralits ...................................................................................................................................... 15 7.3.2 Principe ........................................................................................................................................... 15 7.3.3 Installation du pilote USB ................................................................................................................ 16 7.3.4 Carte Arduino vue du logiciel de programmation ........................................................................... 17 7.3.5 Programmation depuis FlowCode ................................................................................................... 18 7.3.6 programmation avec AVRdude ....................................................................................................... 18 7.3.6.1 Tlchargement dAVRdude .................................................................................................... 18 7.3.6.2 Ligne de commande AVRdude ................................................................................................. 19

8 Cartes dextension (shields) .................................................................................................. 19 8.1 Cartes avec zone de cblage (+ borniers) ............................................................................... 20 8.2 Carte afficheur LCD liaison // LCD_KEYPAD ............................................................................ 21 8.3 Afficheur LCD liaison I2C.......................................................................................................... 22 8.4 Interface 2 moteurs Ardumoto ............................................................................................... 23 8.5 MotoProto Shield Modkit ........................................................................................................ 24
8.5.1 Broches utilises ............................................................................................................................. 24

9 Dimensions de la carte, emplacement des connecteurs ......................................................... 25 9.1 Carte cote .............................................................................................................................. 25 9.2 Fichiers solidworks .................................................................................................................. 25 9.3 Modles OrCAD pour crer des cartes dextension ................................................................ 25
Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 1

10 Carte dinterconnexion PEM ............................................................................................... 26 10.1 Gnralits ............................................................................................................................ 26 10.2 Signaux Gnrs par la carte arduino avec flowcode ........................................................... 27 10.3 Schma complet .................................................................................................................... 28 10.4 Notes de conception ............................................................................................................. 32
10.4.1 CAN ............................................................................................................................................... 32 10.4.2 Alimentations ................................................................................................................................ 32 10.4.3 Tension dlivre par la batterie et seuils ...................................................................................... 32 10.4.4 Connecteurs .................................................................................................................................. 33

11 Carte LCD PEM ................................................................................................................... 33 11.1 Connexions et compatibilits ................................................................................................ 33 11.2 Schma structurel.................................................................................................................. 34 11.3 Tension selon appui BP.......................................................................................................... 34 11.4 Utilisation avec lEDI Arduino ................................................................................................ 35 11.5 Utilisation avec Flowcode ...................................................................................................... 36 12 Schmatisation et fabrication de carte dextension avec Fritzing ......................................... 37 13 Quelques exemples dutilisation dArduino ......................................................................... 37 13.1 Robotique .............................................................................................................................. 37
13.1.1 Robots NXT de Lego ...................................................................................................................... 37 13.1.2 Boe Shield Bot ............................................................................................................................... 37 13.1.3 Pololu ............................................................................................................................................ 38

13.2 Projets disponibles sur Internet ............................................................................................ 39

EDI ARDUINO .................................................................................................................. 40


1 Langage de programmation .................................................................................................. 40 2 Arduino et Linux .................................................................................................................. 40 3 Fonctionnement de la compilation ....................................................................................... 40

PROCESSING ................................................................................................................... 42

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

LES CARTES ARDUINO ET LEURS UTILISATIONS

1 INTRODUCTION
Ce document est principalement consacr lutilisation dArduino dans un cadre scolaire, principalement dans la filire STI2D SIN (Sciences et Techniques Industrielles et Dveloppement Durable Systmes dInformation et Numrique). Les informations donnes ici permettent cependant de lutiliser dans un autre cadre. Les platines Arduino sont des cartes dusage gnral C ATmega. Le fabricant les prsente comme des platines de prototypage rapide. Il existe plusieurs familles de cartes. Voici 2 familles par exemple : Famille de cartes autour de C 28 broches, avec des C ATmega 8 ou 168 ou 328P selon les modles. 3 ports sont disponibles sur connecteurs qui permettent un empilement de cartes. Cartes Duemilanove, Uno, Famille de cartes autour de C 100 broches, avec des ATmega 1280 ou 2560 selon les modles. Plus de ports sont disponibles sur connecteurs. 4 des connecteurs sont compatibles avec la famille de cartes C 28 broches. Carte MEGA, MEGA2560

Les platines Arduino peuvent tre utilises dans de nombreux domaines, dont la robotique. On peut utiliser divers outils de dveloppement pour la cration du programme excutable. Avec certains outils, la programmation du C cible seffectue par une liaison USB, sans programmateur externe. On utilise alors lautoprogrammation du C cible avec laide dun programme bootloader dj enregistr en usine. Voir plus loin pour plus de dtails. Les principaux outils de dveloppement sont : EDI Arduino gratuit. Programmation via une liaison USB. WinAVR + EDI tel que VMLAB ou AVRStudio gratuits FlowCode. Version dvaluation gratuite. Version complte payante. Aucun programmateur nest ncessaire (utilisation de la liaison USB)

http://fr.wikipedia.org/wiki/Arduino liste les diffrentes versions des cartes Arduino. Certaines ne sont plus commercialises.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

Arduino Diecimila

Processeur

Flash KB

EEE/S E/S loType SRAM ...avec PROM logiques ou d'interface KB PWM KB giques E ana. USB 0.5 0.5/1 1 1 4 4 ? 1 0.5/1 0.5 1 1/2 2 2,5 8 8 52 2 1/2 1 14 14 14 14 54 54 54 14 14 14 6 6 6 6 14 14 14 6 6 6 6 6 6 6 16 16 16 8 8 6

ATmega 16 168 ATmega Duemilanove 16/32 168/328P ATmega Uno 32 328P ATmega Leonardo 32 32U4 ATmega Mega 128 1280 ATmega Mega2560 256 2560 DUE Fio Nano LilyPad SAM3U4E 256

ATmega 32 328P ATmega 16/32 168 / 328 ATmega 168V / 16 328V

Dimensions mm 68.6mm x FTDI 53.3mm 68.6mm x FTDI 53.3mm ATme- 68.6mm x ga8U2 53.3mm ATme- 68.6mm x ga32U4 53.3mm 101.6mm FTDI x 53.3mm ATme101.6mm ga8U2 x 53.3mm 101.6mm SAM3U4E x 53.3mm 40.6mm x Aucun 27.9mm 43mm x FTDI 18mm Aucun 50mm

Parmi les diffrentes familles de cartes, la platine Arduino Uno avec un C sur support est celle retenir pour de petites applications simples en STI2D SIN, car on peut changer le C aprs destruction suite une mauvaise manipulation lve. De plus ladaptateur USB ncessaire pour la programmation du C est intgr. Cette platine est compatible avec les autres de la mme famille. Cest la seule qui est dcrite ici. De nombreuses cartes dextension empilables sont disponibles dans le commerce : Wifi, LCD couleur, Ethernet, interface moteurs, etc. Voir plus loin la partie consacre aux cartes dextension.

2 HISTORIQUE DU PROJET ARDUINO


http://fr.flossmanuals.net/arduino/ch002_historique-du-projet-arduino Le projet Arduino est issu d'une quipe d'enseignants et d'tudiants de l'cole de Design d'Interaction d'Ivrea1 (Italie). Ils rencontraient un problme majeur cette priode (avant 2003 - 2004) : les outils ncessaires la cration de projets d'interactivit taient complexes et onreux (entre 80 et
1

Lcole Interaction Design Institute Ivrea (IDII) est aujourdhui situe Copenhagen sous le nom de Copenhagen Institute of Interaction Design .
Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 4

100 euros). Ces cots souvent trop levs rendaient difficiles le dveloppement par les tudiants de nombreux projets et ceci ralentissait la mise en uvre concrte de leur apprentissage. Jusqu'alors, les outils de prototypage taient principalement ddis l'ingnierie, la robotique et aux domaines techniques. Ils sont puissants mais leurs processus de dveloppement sont longs et ils sont difficiles apprendre et utiliser pour les artistes, les designers d'interactions et, plus gnralement, pour les dbutants. Leur proccupation se concentra alors sur la ralisation d'un matriel moins cher et plus facile utiliser. Ils souhaitaient crer un environnement proche de Processing, ce langage de programmation dvelopp ds 2001 par Casey Reas2 et Ben Fry, deux anciens tudiants de John Maeda au M.I.T., luimme initiateur du projet DBN3. En 2003, Hernando Barragan, pour sa thse de fin d'tudes, avait entrepris le dveloppement d'une carte lectronique dnomme Wiring, accompagne d'un environnement de programmation libre et ouvert. Pour ce travail, Hernando Barragan rutilisait les sources du projet Processing. Base sur un langage de programmation facile d'accs et adapte aux dveloppements de projets de designers, la carte Wiring a donc inspir le projet Arduino (2005). Comme pour Wiring, l'objectif tait d'arriver un dispositif simple utiliser, dont les cots seraient peu levs, les codes et les plans libres (c'est--dire dont les sources sont ouvertes et peuvent tre modifies, amliores, distribues par les utilisateurs eux-mmes) et, enfin, multi-platesformes (indpendant du systme d'exploitation utilis). Conu par une quipe de professeurs et dtudiants (David Mellis, Tom Igoe, Gianluca Martino, David Cuartielles, Massimo Banzi ainsi que Nicholas Zambetti), l'environnement Arduino est particulirement adapt la production artistique ainsi qu'au dveloppement de conceptions qui peuvent trouver leurs ralisations dans la production industrielle. Le nom Arduino trouve son origine dans le nom du bar dans lequel lquipe avait l'habitude de se retrouver. Arduino est aussi le nom d'un roi italien, personnage historique de la ville Arduin dIvre , ou encore un prnom italien masculin qui signifie l'ami fort .

3 DOCUMENTATION SUR ARDUINO


Il existe un site officiel en franais sur Arduino : http://arduino.cc/fr/Main/HomePage. Le site en anglais est plus complet. http://www.arduino.cc/ Un autre site propose beaucoup dinformations en franais sur Arduino : http://www.mon-clubelec.fr/. Ce site est optimis pour Firefox. Une partie du site est une rfrence sur le langage de programmation Arduino et sur les bibliothques fournies : http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php Lautre partie du site est consacr llectronique programme base dArduino.

2 3

Casey Reas tait lui-mme enseignant IVREA, pour Processing, cette poque. Design By Numbers, un langage de programmation spcialement ddi aux tudiants en arts visuels.
5

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

On trouve de nombreux documents et sites web sur internet concernant Arduino. En voici quelquesuns : http://sciences.siteduzero.com/tuto_pdf.php?vrsid=515602 Un document trs progressif pour commencer, avec des rappels lmentaires dlectricit. Il peut tre utilis avec les lves, ventuellement pour une autoformation pour les plus intresss. Le site web qui correspond : http://sciences.siteduzero.com/tutoriel-3-515602-arduino-pour-biencommencer-en-electronique-et-en-programmation.html http://fr.flossmanuals.net/_booki/arduino/arduino.pdf Livre ralis par un collectif. En plus dune approche progressive, une grande partie est consacre des exemples dusage, notamment dans le domaine artistique. Un chapitre sur Scratch for Arduino. Le site web qui correspond : http://fr.flossmanuals.net/arduino/index http://www.louisreynier.com/fichiers/KesacoArduino.pdf prsente la carte Arduino en quelques pages.

4 CARTES ARDUINO UNO 4.1 LES DIFFERENTES VERSIONS


Il existe de petites diffrences entre les schmas et les implantations des diffrentes versions. Du point de vue de lutilisateur, il ny a aucune diffrence. Dans ce qui suit, on sappuie sur lArduino Uno Rev 2 pour le schma et limplantation. A la date de rdaction de ses lignes (fvrier 2012), la dernire version est la rev 3.

4.2 IMPLANTATION ET SCHEMA ARDUINO UNO REV2

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

1 seul implant. Jack alimentation + au milieu. 6,7V min.

1 seul implant. Dropout 1V. Protection contre inv. polarits

Pour la programmation du C auxiliaire. Ne sert normalement que lors de la fabrication de la carte Pour RZ du C principal par le C auxiliaire avec DTR.

Connecteur SIL bord de carte.

C auxiliaire utilis pour la programmation du C principal. USB RXD, TXD, DTR.

Pour la prog. du C principal sans passer par la liaison USB. Attention risque deffacement du bootloader

C principal (en ralit ATmega 328P). Contient un bootloader pour lautoprogrammation (utilisation RXD, TXD)

Signaux pour la programmation du C principal

pour PD0 et PD1 voir plus loin

E/S disponibles pour lutilisateur. Connecteurs SIL bord de carte.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

4.3 ALIMENTATION
4.3.1 SCHEMA

1 seul implant. Alimentation 5V

Rgulateur 3,3V.

Jack alimentation + au milieu. 6V min.

Rgulateur 5V. 1 seul implant. Dropout 1V. VCC dans explications ci-dessous.

4.3.2 ALIMENTATION UNIQUEMENT PAR LA PRISE USB La carte Arduino peut tre alimente uniquement par le cble USB qui sert la programmation. Pas dalimentation par le jack PWRIN (VIN = 0V initialement). Fonctionnement Lors de la connexion de la fiche USB, diode de T1 conduit 4,3V sur VCC (normalement 5V) le rgulateur 3,3V fonctionne et le comparateur U1A (ou IC3A selon implantation) est aliment. 3,3V > V CMP sortie du comparateur 0, Vs proche de 0V VGS T1 (canal P) < -4V le transistor devient fortement conducteur RDS faible VCC V USBVCC VCC 5V Valeur releve VCC = 4,91V V CMP 2,45 V < 3,3V. La sortie du comparateur reste tjs 0. Valeur de VIN Si V PWRIN = 0, le rgulateur IC2 (ou IC1 selon implantation) est utilis lenvers. Il conduit en sens inverse. Valeurs releves : VIN = 4,29V si aucune autre carte dextension (shield) nest connecte.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

Si on connecte une carte interface de puissance Ardumoto avec un petit moteur dun robot Pololu command en continu, on mesure VIN= 4,06V. Le moteur tourne. Pb : si on alimente les 2 moteurs, le courant de dmarrage risque de faire fondre le fusible F1. Solution : utiliser une carte intermdiaire entre Arduino et Ardumoto. Ne pas connecter Vin de la carte Arduino et de la carte Ardumoto.

5 E/S DISPONIBLES SUR CONNECTEURS DE LA CARTE ARDUINO UNO


4 connecteurs SIL sont communs toutes les versions. 3 de ces connecteurs sont utiliss pour les entres / sorties. Ce sont les seuls dcrits ici. Toutes les broches peuvent tre utilises en E/S. Elles ont toutes au moins une autre fonction. Pour PD0 et PD1. Voir plus loin. Connecteur ANALOG IN Nom Arduino A0 A1 A2 A3 A4 A5 Broche C PC0 PC1 PC2 PC3 PC4 PC5 Autres fonctions ADC0/PCINT8 ADC1/PCINT9 ADC2/PCINT10 ADC3/PCINT11 ADC4/SDA/PCINT12 ADC5/SCL/PCINT13 Remarque

liaison I2C liaison I2C

Connecteurs DIGITAL (PWM ~) Nom Arduino RX 0 Broche C PD0 Autres fonctions RXD / PCINT16 Remarque liaison srie asynchrone. Aussi utilise pour auto prog C. R disolement de 1K pour cette fonction. Voir plus loin pour la programmation du C liaison srie asynchrone. Aussi utilise pour auto prog C. R disolement de 1K pour cette fonction. Voir plus loin pour la programmation du C Peut tre utilise pour gnrer des signaux dont PWM. Peut tre utilise pour gnrer des signaux dont PWM. Peut tre utilise pour gnrer des signaux dont PWM.

TX 1

PD1

TXD/PCINT17

2 ~3 4 ~5 ~6 7 8 ~9 ~10

PD2 PD3 PD4 PD5 PD6 PD7 PB0 PB1 PB2

INT0/PCINT18 INT1/OC2B/PCINT19 T0/XCK/PCINT20 T1/OC0B/PCINT21 AIN0/OC0A/PCINT22 AIN1/PCINT23 ICP1/CLKO/PCINT0 OC1A/PCINT1 /SS/OC1B/PCINT2

Peut tre utilise pour gnrer des signaux dont PWM. Peut tre utilise pour gnrer des signaux dont PWM.
9

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

Nom Arduino ~11

Broche C PB3

Autres fonctions

Remarque Liaison srie synchrone SPI. Peut tre utilise pour gnrer des signaux dont PWM. Liaison srie synchrone SPI. Est aussi utilise pour la programmation ICSP. Liaison srie synchrone SPI. Est aussi utilise pour la programmation ICSP. Liaison srie synchrone SPI. Est aussi utilise pour la programmation ICSP. LED active 1. R de 1K en srie. Aprs RZ, 3 clignotements rapides. Voir si gnant ou pas si on souhaite utiliser cette sortie. Voir plus loin la partie sur la programmation.

MOSI/OC2A/PCINT3

12 13

PB4 PB5

MISO/PCINT4 SCK/PCINT5

PD0 / PD1. Avec la carte Arduino Uno Rev 2, le bootloader utilis est Optiboot. La liaison srie sert pour recevoir ventuellement des donnes dans le cas dune programmation. Le bootloader valide donc la liaison srie mais malheureusement il ne la dsactive pas en fin dexcution. Lorsque la liaison srie est valide, il est impossible dutiliser les broches PD0 et PD1 comme entre ou sortie standard. Pour pouvoir utiliser ces broches comme simples E/S, lutilisateur doit inhiber la liaison srie en faisant UCSR0B=0 ; Voir la documentation du C ATmega328P. Le comportement est-il identique avec dautres versions du bootloader ?

6 ENVIRONNEMENTS DE DEVELOPPEMENT INTEGRES (EDI) UTILISABLES 6.1 EDI ARDUINO SPECIFIQUE A LA CARTE CIBLE
Cette partie est rorganiser, car lEDI Arduino va tre dcrit en dtail en 2me partie de ce document. 6.1.1 GENERALITES

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

10

LEnvironnement de Dveloppement Intgr Arduino est trs simple. Il se lance sans installation, partir de lexcutable arduino.exe. Le langage de programmation est le langage C ou C++. De trs nombreuses fonctions sont fournies. Leurs noms sont choisis pour une utilisation intuitive . Ex : digitalWrite(13, HIGH) ; criture dun 1 sur la sortie 13 13 est le numro de la sortie repre sur le connecteur. Des exemples sont fournis dans le dossier example. Le plus simple est dans le sous dossier Blink. Dans cet exemple, le programme se compose uniquement dune suite de fonctions.

Une icne permet de compiler le programme et de transfrer lexcutable dans le C cible via la liaison USB. LEDI et son utilisation sont dcrites plus en dtail sur la partie consacre lEDI. 6.1.2 RAPPELS SUR LE LANGAGE / FONCTIONS DISPONIBLES

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

11

mon-club-elec.fr donne la mme chose en franais. 6.1.3 COMPILATION La compilation sappuie sur le compilateur gratuit AVR-GCC fourni avec le logiciel Arduino. Sa mise en uvre est transparente lutilisateur. Les fichiers dAVR-GCC sont situs dans le dossier principal \ hardware \ tools \ avr \ bin

6.2 EDI SCRATCH FOR ARDUINO SPECIFIQUE A LA CARTE CIBLE


Cette EDI peut tre utilise avec des lves de 2nde dans le cadre de loption ISA.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

12

S4A (Scratch For Arduino) est une extension (modification) de l'application Scratch qui a t cre en 2007 des fins pdagogiques. Cette extension permet de programmer des instructions que la carte d'interfaage Arduino peut excuter et ce depuis une GUI Scratch laquelle les crateurs ont ajout des fonctions spcifiques la carte Arduino. En effet, le principe d'criture d'un programme avec Scratch et S4A consiste emboter des blocs classs en code-couleur qui correspondent des instructions programmatiques : fonctions, variables, oprations, lecture de fichiers imports (images, sons). S4A prsente donc des nouveaux blocs destins uniquement une programmation d'interactivit entre des capteurs et des actionneurs via une carte Arduino.

Pour en savoir plus : http://fr.flossmanuals.net/arduino/ch031_pour-aller-plus-loin Une introduction avec des liens utiles http://seaside.citilab.eu/scratch?_s=fuXmDa1SZk9_aSp9&_k=cHGDjGglnNohOpKR Le site du projet Scratch for Arduino Quelques projets : http://portic0312.qc.ca/robotique/spip.php?article117 http://chamayou.franck.free.fr/spip/spip.php?article252

6.3 EDIS NON SPECIFIQUES A LA CARTE CIBLE


Pour des projets assez compliqu pour lesquels lEDI Arduino nest pas assez performant, on peut utiliser dautres EDIs. Avec certains, la programmation ne peut seffectuer quavec un programmateur externe entre le PC et le connecteur 6 points ICSP de la carte. Attention au sens, car le connecteur na pas de dtrompeur. On peut utiliser par exemple le programmateur AVRisp mkII. Le risque de ce type de programmation est deffacer le bootloader dj enregistr en sortie dusine. Exemple dEDI : CodeVision AVR (payant) / VMLAB + AVR-GCC (gratuits)/ Eclipse + AVR-GCC (gratuits) etc. La page suivante liste les diffrents outils de dveloppement utilisables. http://arduino.cc/playground/French/OutilsDeD%C3%A9veloppement Tous ne sont pas lists, loin de l.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

13

Comme Arduino sest normment dvelopp, de nombreux EDIs ont des greffons (plugins) qui permettent de sadapter. 6.3.1 ECLIPSE LEDI Eclipse est gratuit. Il est prvu pour sinterfacer avec le compilateur AVR-GCC. Un plug-in permet de lutiliser pour une cible Arduino. Il existe plusieurs pages web qui expliquent comment utiliser Eclipse. Parmi celles-ci : http://www.arduino.cc/playground/Code/Eclipse http://www.chipkin.com/articles/using-eclipse-with-arduino-duemilanove http://itpedia.nyu.edu/wiki/Arduino_in_Eclipse http://www.codeproject.com/Articles/110859/Arduino-Unleashed 6.3.2 VISUAL MICRO = ARDUINO FOR VISUAL STUDIO (MICROSOFT) http://www.visualmicro.com/ http://www.visualmicro.com/page/Offer-Visual-Studio-Professional-Free-For-3-Years.aspx Pb : un lien est cass pour linscription. Passer par msdn ex : http://msdn.microsoft.com/fr-fr/vstudio/default puis connexion en haut droite / Inscrivez-vous.

6.3.3 AVR STUDIO 5 http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/

6.4 FLOWCODE
FlowCode est un EDI non spcifique Arduino. Flowcode permet une dition graphique du programme source sous forme dalgorigrammes. La programmation du C cible seffectue via la liaison USB ou en utilisant un programmateur externe, selon un paramtrage effectu par lutilisateur. Voir le document sur FlowCode.

6.5 LABVIEW
Il existe une interface LabView / Arduino http://sine.ni.com/nips/cds/view/p/lang/fr/nid/209835 Accs ais aux E/S numriques, entres analogiques, PWM, I2C et SPI du microcontrleur Arduino, partir de LabVIEW Squence (sketch) du moteur d'E/S charger sur Arduino Exemples pour capteurs et tches lmentaires Sans fil avec Bluetooth ou XBee Frquences de boucles : par cble USB (200 Hz) et sans fil (25 Hz) L'ouverture de la squence pour Arduino et les VIs du toolkit permettent de personnaliser sa fonctionnalit

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

14

7 PROGRAMMATION DU C PRINCIPAL PUIS UTILISATION 7.1 GENERALITES SUR LA PROGRAMMATION ET LUTILISATION


Le C principal dune carte Arduino peut se programmer de deux faons : Programmation In Situ (ICSP) avec un programmateur externe entre le PC et le connecteur 6 points ICSP de la carte. Attention au sens, car le connecteur na pas de dtrompeur. Via la liaison USB. Le bootloader du C principal est utilis. Voir plus loin. Dans les 2 cas, le fichier programmer, rsultat dune compilation, est au format normalis .hex. Aprs programmation, le programme utilisateur est lanc, suite une RZ ou mise sous tension, aprs le bootloader si aucune information arrive sur la liaison RXD. Attention : le bootloader utilis (dernire version, Optiboot) fait clignoter 3 fois rapidement la LED L13 aprs RZ pour indiquer quil attend des donnes sur la liaison srie. Il faut donc viter dutiliser la sortie 13 (PB5) pour le cas o ces changements dtat aprs RZ sont gnants. Ce dfaut napparait pas avec des versions plus anciennes du bootloader.

7.2 PROGRAMMATION ICSP (In Circuit Serial Programming)


Le risque de ce type de programmation est deffacer le bootloader si on crit un programme sur ses adresses (voir lannexe). Il faut un programmateur externe. Nimporte quel outil de dveloppement peut convenir. Par exemple CodeVision.

7.3 PROGRAMMATION VIA LA LIAISON USB


7.3.1 GENERALITES La programmation par la liaison USB depuis lEDI Arduino est trs simple. Sans passer par lEDI Arduino, la programmation par la liaison USB a t difficile mettre au point par lauteur de ces lignes, car il a fallu beaucoup de temps pour trouver certaines informations. Une fois la mise au point ralise, la programmation par la liaison USB est trs pratique mettre en uvre, surtout avec des lves. Ce qui suit donne toutes les informations ncessaires pour lutilisation de la programmation par liaison USB. 7.3.2 PRINCIPE Dans lArduino Uno, un C auxiliaire ralise un interfaage, aussi appel un pont, USB / liaison srie asynchrone 0V/5V, avec les signaux RXD, TXD et DTR. Avec le pilote correctement install sur le PC, la carte Arduino est vue par celui-ci comme un port COM (liaison srie asynchrone). Le PC effectue dabord une RZ du C principal de la carte Arduino en mettant DTR 0. Ceci peut seffectuer par exemple avec une ligne dans un fichier .bat. Cest la solution retenue par FlowCode :

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

15

@mode %ComPort%: baud=%BaudRate% parity=n data=8 stop=1 to=on xon=off odsr=off octs=off dtr=on rts=off idsr=off dtr=on force 0 la ligne DTR et provoque la Rz du C principal de lArduino.
VCC (5V)

C auxiliaire C5 100nF PB7_DTR RN20 1k

RN10 10k

C PRINCIPAL /RESET

Aprs la RZ, le C principal excute le bootloader car il a t programm pour cela. Voir le document sur le bootloader. Le logiciel utilis pour la programmation du C principal (Arduino, AVRdude de lensemble AVR-GCC, etc) envoie ensuite, avec un protocole bien dfini (signaux TXD, RXD), des donnes normalement destination dun programmateur. Or cest ici le C principal lui-mme qui se 'fait passer' pour un programmateur. Ainsi, il rcupre les donnes du programme pour s'autoprogrammer. Le C principal utilise pour ce faire un programme particulier quil contient dj : un bootloader. 7.3.3 INSTALLATION DU PILOTE USB Il faut dabord rcuprer le pilote puis linstaller. Pour rcuprer le pilote, il faut tlcharger la dernire version du logiciel Arduino (1.0 la date de rdaction de ces lignes) et la dcompacter. Le pilote est dans le dossier drivers : ArduinoUNO.inf, Arduino UNO REV3.inf, etc. Lorsquon connecte pour la premire fois le cble USB, il faut spcifier le dossier qui contient le pilote.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

16

La recherche et linstallation prennent quelques instants.

7.3.4 CARTE ARDUINO VUE DU LOGICIEL DE PROGRAMMATION


Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 17

Une fois le pilote correctement install, la carte Arduino est vue comme un port COM. Le numro du port varie dun ordinateur lautre. Exemple :

La carte est vue comme un port COM5

La carte est vue comme un port COM10. Le nom de la carte saffiche directement dans le gestionnaire de priphrique. Uniquement avec carte Uno rev2 ou + 7.3.5 PROGRAMMATION DEPUIS FLOWCODE FlowCode utilise AVRdude. Pour dsigner le C et le fichier .hex, on peut utiliser des caractres de substitution, ce qui vite davoir modifier la ligne de commande entre dans une boite de dialogue. Il faut effectuer avant de lancer AVRdude, une RZ du C principal. Ceci est effectu avec une ligne dun fichier .bat. Voir le document sur FlowCode 7.3.6 PROGRAMMATION AVEC AVRDUDE 7.3.6.1 Tlchargement dAVRdude Le logiciel AVRdude (AVR Downloader/UploaDEr) qui fait partie de AVR-GCC est un logiciel gratuit et performant. Ce logiciel peut tre lanc aprs configuration dune ligne de commande depuis plusieurs logiciels (FlowCode, etc). Attention : certaines versions dAVRdude ne fonctionnent pas avec la dernire version du bootloader. AVRdude 5.10 ou plus fonctionne correctement. Pour rcuprer la dernire version dAVRdude, on peut tlcharger WinAVR qui contient, un compilateur, un diteur de liens, et le logiciel de programmation AVRdude. http://sourceforge.net/projects/winavr/files/ Aprs installation de WinAVR, avrdude.exe et avrdude.conf sont dans le dossier dinstallation \bin. Si WinAVR nest pas utilis par ailleurs, copier ces fichiers dans un dossier puis supprimer linstallation de WinAVR. Rcuprer avant \doc\avrdude\avrdude.pdf. On peut aussi rcuprer AVRdude.exe dans les dossiers dArduino. Chemin dacccs : Les fichiers dossier principal \ hardware \ tools \ avr \ bin. Arduino 1.0 intgre la dernire version dAVRdude. Ce ntait pas le cas avec les versions prcdentes dArduino.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

18

7.3.6.2 Ligne de commande AVRdude Exemple de ligne de commande pour un C ATmega328, une liaison USB vers une carte UNO vue comme une liaison com8. Cette ligne de commande doit suivre dans un fichier batch la RZ du C principal avec la commande mode prsente plus haut. avrdude -p m328 -c arduino -P com8 -U flash:w:"NomFichier.hex" Le chemin daccs de NomFichier.hex nest pas ncessaire si avrdude est lanc depuis le dossier parent. Pour le dtail des commandes, voir le manuel avrdude. Ce manuel est dans le dossier dinstallation de WinAVR\doc\avrdude. On peut aussi le trouver http://savannah.spinellicreations.com/avrdude Il est aussi dans un dossier dArduino. Chemin daccs : Dossier principal \ hardware \ tools \ avr \ doc \ avrdude. La version du manuel nest pas la dernire avec Arduino 1.0. Elle ne correspond pas la version de lexcutable fourni.

8 CARTES DEXTENSION (SHIELDS)


Shield signifie bouclier. Ce terme a certainement t retenu car la carte dextension senfiche sur la carte Arduino et constitue une espce de bouclier. Un fabricant de carte dextension utilise le terme Mezzanine. La page suivante liste plusieurs cartes Arduino et des cartes compatibles, avec les revendeurs : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.MATERIEL

Carte bornier vis pour connexion E/S

Quelques distributeurs (certains nacceptent les commandes que par Internet) Lextronic. http://www.lextronic.fr/R2478-arduino.html http://www.lextronic.fr Grand choix dont une carte avec borniers. Commandes lyces acceptes Snootlab http://shop.snootlab.com/6-arduino http://shop.snootlab.com Grand choix de cartes dont une avec borniers. Commandes lyArduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 19

http://fr.hobbytronics.co.uk/ http://www.jlectronique.org http://www.zartronic.fr

ces acceptes. Vente uniquement par internet. Assez grand choix dont carte avec borniers. Carte avec borniers.

8.1 CARTES AVEC ZONE DE CABLAGE (+ BORNIERS)


Disponible chez Lextronic Rfrence : DEV-09729 12.76 HT 15.26 TTC

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

20

Disponible chez Snootlab Rfrence : KIT-00501 14,95 TTC

Proto PCB Rev3. Disponible sous forme de carte seule ou de module avec les connecteurs. Pas de borniers. Par exemple, chez Farnell : Carte seule. ref 2075379 5,35 HT Module. ref 2075345 13,95 HT

8.2 CARTE AFFICHEUR LCD LIAISON // LCD_KEYPAD


Vendue par Zartronic http://www.zartronic.fr/shield-lcd-pour-arduino-p125.html Prix : 17,00 Modle : DFR0009 En Commande >10 jours Fabricant : DFRobot Commandes lyces certainement non acceptes. Courriel envoy le 21/12/2012 Lextronic pour savoir sils peuvent sen procurer. Rponse : produit non RoHS. Interdit dimportation. Schma

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

21

Pour minimiser le nombre de broches utiliss, les BPs sont runis une seule entre analogique. Si plusieurs BPs sont simultanment appuys, seul le plus haut sur le schma est pris en compte. Nom carte AD0 D4 D5 D6 D7 D8 D9 Nom Arduino A0 4 ~5 ~6 7 8 ~9 Broche C PC0 PD4 PD5 PD6 PD7 PB0 PB1 Autres fonctions ADC0/PCINT8 T0/XCK/PCINT20 T1/OC0B/PCINT21 AIN0/OC0A/PCINT22 AIN1/PCINT23 ICP1/CLKO/PCINT0 OC1A/PCINT1 Remarque

DB4 DB5 DB6 DB7 RS E

Compatibilit Arduino + Flowcode : oui. Compatibilit Arduino + Carte intermdiaire (voir plus loin) + Ardumoto + Flowcode : Non sans modif carte intermdiaire version 1. Oui si modif carte intermdiaire version 1. Il faut utiliser la sortie 11 de la carte Arduino (PB3) et la connecter D9 (signal E).

8.3 AFFICHEUR LCD LIAISON I2C

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

22

Vendu en kit par snootlab. http://shop.snootlab.com/shields-snootlab/135deuligne.html Rfrence : KIT-01051 24,00 TTC Lutilisation lune liaison I2C fait que lafficheur ne peut tre command directement par Flowcode car il nexiste pas de macros pour un afficheur I2C. Lutilisateur doit crire ses propres macros .

8.4 INTERFACE 2 MOTEURS ARDUMOTO

Cette petite platine permet de piloter 2 moteurs (2A max) Des Leds CMS bleues et jaunes permettent d'indiquer le sens de rotation des moteurs. Rfrence Lextronic : DEV-09815 22.46 TTC (18.78 HT) (la carte est vendue sans les connecteurs).

Vers les moteurs (bornier ou connecteur souder)

Pour plus de dtail : http://www.sparkfun.com/products/9815 Le cur de la carte est un CI spcialis L298. Le L298 est constitu de 4 demi ponts qui sont utiliss ici pour raliser 2 ponts en H, avec inversion des signaux entre IN1 et IN2 et entre IN3 et IN4. PWMx commande la validation dun pont. DIRx permet de commander la direction. 3 cas sont possibles. Fonctionnement dduit du schma de la carte et de la notice technique du CI utilis : PWMn 0 1 1 DIRn X 0 1

Moteur non aliment par le pont. La tension aux bornes du moteur est proche de 0V si une des diodes de roue libre conduit ou si le moteur est larrt. tension aux bornes du moteur est gale +VIN tension aux bornes du moteur est gale -VIN

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

23

La tension de dchet est de lordre de 1,2V pour un courant de 0,8A Il nest pas possible de commander un freinage rapide du moteur. Nom carte PWMA DIRA PWMB DIRB Nom Arduino ~3 12 ~11 13 Broche Autres fonctions C PD3 INT1/OC2B/PCINT19 PB4 MISO/PCINT4 PB3 MOSI/OC2A/PCINT3 PB5 SCK/PCINT5 Remarque PWM avec timer 2 PWM avec timer 2

Compatibilit Flowcode : non. Flowcode gnre des signaux PWM en OC1A et OC1B. Solution : carte dinterface qui redirige les signaux. Cette carte peut aussi comporter des borniers pour connexions de capteurs, etc. Compatibilit LCD_Keypad : oui. Aucune entre/sortie en commun. Voir plus loin le sur la carte intermdiaire.

8.5 MOTOPROTO SHIELD MODKIT


Cette carte est fabrique par Sparkfun (sparkfun.com) Cette carte a plusieurs fonctionnalits : Raccordement de 4 capteurs via des prises jack Interface de petite puissance pour 2 moteurs courant continu (tels que ceux utiliss dans des robots) Connexion dun afficheur LCD standard 2 lignes de 16 caractres. Elle est vendue sans les connecteurs et sans lafficheur. La carte et les accessoires sont disponibles chez Lextronic. Rf carte DEV-10018 28,70 TTC

8.5.1 BROCHES UTILISEES Commande moteurs Nom Modkit DIRA PWMA DIRB PWMB Nom Arduino 2 ~3 4 ~5 Broche C PD2 PD3 PD4 PD5 Autres fonctions INT0/PCINT18 INT1/OC2B/PCINT19 T0/XCK/PCINT20 T1/OC0B/PCINT21 Remarque

non compatible Flowcode non compatible Flowcode


24

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

Les 2 sorties PWM utilises ne sont pas issues du mme timer, ce qui complique inutilement la programmation dans des cas simples, par exemple deux moteurs sur un robot. Pour une utilisation avec Flowcode, il faut une carte intermdiaire spcifique qui redirige les signaux.

9 DIMENSIONS DE LA CARTE, EMPLACEMENT DES CONNECTEURS 9.1 CARTE COTEE


Les dimensions sont donnes daprs le fichier arduino_uno_drawing_500x351.png disponible sur Internet.

9.2 FICHIERS SOLIDWORKS


On trouve sur internet les fichiers Solidworks pour raliser des assemblages. http://grabcad.com/library/arduino-unoreference-design Le fichier sappelle Arduino UNO Final.zip Ci-contre, un assemblage ralis par un lve au lyce Pierre Emile Martin Bourges, dans le cadre dun projet.

9.3 MODELES ORCAD POUR CREER DES CARTES DEXTENSION

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

25

Le projet Connect_Arduino (Lyce Pierre Emile Martin Bourges) correspond au schma des 4 connecteurs empilables de la carte. Il permet de rutiliser ces connecteurs par copier/coller dans un nouveau schma.

J2 J6 RESET 3.3V 5V GND1 GND2 VIN AREF GND3 13 12 11 10 9 8 J4 A0 A1 A2 A3 A4 A5 Arduino Arduino 7 6 5 4 3 2 1 0

J8

Le fichier Contour Arduino.max correspond la carte avec les 4 connecteurs ci-dessus. Il peut tre utilis comme modle pour la cration dune nouvelle carte. Les connecteurs correspondent ceux du schma.

10 CARTE DINTERCONNEXION PEM 10.1 GENERALITES


Cette carte est conue et fabrique au lyce Pierre Emile Martin. Cette carte a plusieurs fonctions : Connexion alimentation (batterie daccumulateurs) + Interrupteur M/A gnral Circuit de protection pour la batterie LiPo LEDs de visualisation (batterie OK, tension insuffisante) Modification des connexions pour la PWM entre Arduino et Ardumoto pour utilisation avec FlowCode (voir la partie sur FlowCode). Borniers pour la connexion de capteurs

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

26

Cette carte possde 2 sries de connecteurs qui permettent de superposer une carte avec toutes les connexions Arduino ou dinsrer une carte Ardumoto en lger dcalage avec les connexions compatibles FlowCode pour la commande.

Sans carte intermdiaire, les cartes semboitent directement avec liaison directe entre les connecteurs

Le schma partiel de la carte est donn ci-aprs :


JP2 Connecteur accu LiPo (av ec dtrompeur) Bornier v is pour alimentation autre que batterie 1 2 JP1 2 1 D1 K1

Connecteurs qui permettent de raccorder une carte Ardumoto place au-dessus. La liaison Arduino / Ardumoto se fait broche broche, sauf pour PWMA et PWMB.
J1 J2 AREF GND3 DIRB 13 DIRA 12 PWMB 11 10 9 8 J3 7 6 5 4 PWMA 2 1 0 Ardumoto Arduino Bornier_Poussoir_8pts 3 J4 J12

1N5819 Diode schottky 1A

J10

J5 RESET 3.3V 5V GND1 GND2 VIN

J6

Cette c - d'inte compa - de co entres - de co sorties

OC1B OC1A Bornier_Poussoir_8pts J13

Bornier_poussoir_6 pts J11 J7 A0 A1 A2 A3 A4 A5 Bornier_poussoir_6 pts Ardumoto Non utilis Arduino 8,5V max J8

U2

680 C2 100nF Q2 BC547A R3 4.7k

10uF

FlowCode ne permet pas de gnrer des signaux PWM sur les sorties de la carte Arduino utilises par la carte Ardumoto de commande des moteurs. La carte intermdiaire permet de rediriger les sorties R6 220k J14 1 1 2 J15 Arduino comme suit : 2 3 1 Sortie carte Arduino 9 (broche 2 connecteur IOH) 10 (broche 3 connecteur IOH) 12 13 Broche du C PB1 (OC1A) PB2 (OC1B) PB4 PB5
3 4 Connecteur pour 5 programmation C 6 7 8 9 10

Connecteur mesure tension KK3: broche 1 rouge 7,4V broche 2 bleu 3,7V broche 3 noire 0V

R4 1k

R10 100k

14

LD2

R8 470

ATtiny 24

GND

10.2 SIGNAUX GENERES PAR LA CARTE ARDUINO AVEC FLOWCODE

6 7 8 9 10 11 12 13

VDD

1 2

JP3

5V sur bornier v is pour alimentation capteurs

Connecteurs qui permettent un raccordement 1 3 IN LD1 la carte Arduino place en dessousOUT ventuelet REF R9 lement une autre carte place au- dessus (si on 2 R1 100k 10k C4 nutilise pas de carte Ardumoto) R2

Q1 NDP6020P

U1 LF50ABP

PA7 PA6 PA5 PA4 PA3 PA2 (ADC2) PA1 (ADC1) PA0 (ADC0)

(RESET) PB3 PB2 (XTAL2) PB1 (XTAL1) PB0

4 5 3 2

C1 22pF

Nom Flowcode PWM canal 1 PWM canal 2 B4 HE10-10 B5

4 5 6 7 8 9 10

Entre carte Ardumoto KK3 PWMB (broche 11) Connecteur pour test niv eau PWMA (broche 3) batterie DIRA (broche 12) DIRB (broche 13)

1 2 3

2 3 R5 100k C5 100nF

R7 220k

C6 100n

Remarque : il aurait t plus simple de raliser les connexions suivantes : 9 Arduino (PWM1) 3 Ardumoto (PWMA)
Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 27

10 Arduino (PWM2) 9 Ardumoto (PWMB)

10.3 SCHEMA COMPLET


Voir page suivante :

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

28

JP2 Connecteur accu LiPo (av ec dtrompeur) Bornier v is pour alimentation autre que batterie 1 2 JP1 2 1 D1 Interrupteur M/A gnral K1 Cette carte permet : - d'interconnecter Arduino / Ardumoto av ec compatibilit Flowcode pour PWM - de connecter des capteurs sur les entres - de connecter des LEDs, etc sur les sorties - d'alimenter la carte Arduino uniquement si la tension batterie est suf f isante (pour protger la batterie contre une dcharge prof onde

1N5819 Diode schottky 1A J1 J2 AREF GND3 DIRB 13 DIRA 12 PWMB 11 10 9 8 J3 7 6 5 4 PWMA 2 1 0 Ardumoto Q1 NDP6020P 8,5V max av ec batterie LiPo 1 LD1 R1 10k R2 680 C2 100nF Q2 BC547A R3 4.7k R8 470 R9 100k U1 LF50ABP IN OUT REF 2 C4 10uF 6 7 8 9 10 11 12 13 PA7 PA6 PA5 PA4 PA3 PA2 (ADC2) PA1 (ADC1) PA0 (ADC0) 3 U2 Arduino Bornier_Poussoir_8pts 3 J4 J12

J10

J5 RESET 3.3V 5V GND1 GND2 VIN

J6

OC1B OC1A Bornier_Poussoir_8pts J13

Bornier_poussoir_6 pts J11 J7 A0 A1 A2 A3 A4 A5 Bornier_poussoir_6 pts Ardumoto Non utilis Arduino J8

VDD

1 2

JP3

5V sur bornier v is pour alimentation capteurs

(RESET) PB3 PB2 (XTAL2) PB1 (XTAL1) PB0

4 5 3 XTAL1 2

Connecteur mesure tension KK3: broche 1 rouge 7,4V broche 2 bleu 3,7V broche 3 noire 0V

R4 1k

R10 100k

14

LD2

ATtiny 24

GND

8MHz

C1 22pF

C3 22pF

JP4 1 2

J14 1 2 3 4 5 6 7 8 9 10 HE10-10 1 2 3 4 5 6 7 8 9 10 J15 1 2 3 KK3 1 2 3

R6 220k

0V sur bornier v is pour alimentation capteurs

R7 220k R5 100k C5 100nF

C6 100n

Connecteur pour programmation C

Connecteur pour test niv eau batterie

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

30

10.4 NOTES DE CONCEPTION


10.4.1 CAN Rf CAN 5V / CAN utilis sur 10 bits / LSB = Vref /210 = 4,88 mV N = Ve/Vref/210 Capacit dchantillonnage / blocage du CAN : 14 pF. Si le circuit dattaque a une rsistance quivalente de 100 K (cas pour la voie 1) Constante de temps = 1,4 S. Pour obtenir une prcision de 1%, il faut attendre au moins 5 avant de lancer la CAN aprs avoir choisi la voie convertir. Avec un convertisseur 10 bits, pour obtenir le maximum de prcision, il faut attendre bcp plus. On retient 100 S. 10.4.2 ALIMENTATIONS Lalimentation gnrale des cartes Arduino et Ardumoto se fait partir de la carte intermdiaire sur laquelle est directement branche la batterie. Si la tension dlivre par la batterie est trop faible, lalimentation Vin de la carte Ardumoto est coupe pour viter de trop dcharger la batterie. La carte Arduino est toujours alimente. Sa consommation est faible. Un voyant clignote pour indiquer de recharger la batterie. Cette solution a t retenue suite au fonctionnement constat pour lalimentation de la carte Arduino dcrit ci-dessous. La carte Arduino peut tre alimente uniquement par le cble USB qui sert la programmation, lorsque linterrupteur de la carte intermdiaire est sur la position Arrt. Sur la carte Arduino, si V PWRIN = 0, le rgulateur IC2 (ou IC1 selon implantation) est utilis lenvers. Il conduit en sens inverse et dlivre une tension VIN. Valeurs releves : VIN = 4,29V si aucune autre carte dextension (shield) nest connecte. Si on connecte sur la carte intermdiaire la carte interface de puissance Ardumoto avec un petit moteur dun robot Pololu command en continu, on mesure VIN= 4,06V. Le moteur tourne. Pb : si on alimente les 2 moteurs, le courant de dmarrage risque de faire fondre le fusible F1. La solution est de sparer les Vin des cartes Arduino et Ardumoto. Toujours lorsque la carte Arduino est uniquement alimente partir de la liaison USB, La tension VIN dlivre par le carte Arduino denviron 4,2V permet au rgulateur +5V de la carte intermdiaire de dlivrer une tension proche de 4,2V au C qui fonctionnent. Il faut dans ce cas tester la tension Vin et si elle est trop faible, il faut bloquer lalimentation Vin de la carte Ardumoto. 10.4.3 TENSION DELIVREE PAR LA BATTERIE ET SEUILS Tension nominale ( mi charge environ) 3,7V Tension max pleine charge 4,2V Seuil pour autoriser le fonctionnement 3,55V Seuil min pour arrter le fonctionnement 3,3V

1 lment

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

32

2 lments

7,4V

8,4V

7,1V

6,6V

Il manque des infos pour choisir les seuils assez finement. Aucune doc trouve pour la capacit restante en fonction de la tension vide. Les seuils sont estims en fonction des courbes de dcharge avec le courant le plus faible (pour notre utilisation, courant de dcharge < 1C). Voir le document sur les batteries LiPo.

Tension Rsultat CAN Avec Vrf = 5V

3,55V 727

3,3V 675

2,5V 512

10.4.4 CONNECTEURS Connecteurs utiliser pour les batteries : Dsignation Embase 2 contacts Tyco type PE Botier femelle Tyco PE2 Ref constructeur Ref Farnell AMP - 1586041-2 - EMBASE CI COUDEE 2 811-5974 VOIES UL94V-2 AMP - 794954-2 - BOITIER FEMELLE 2 811-6261 VOIES 94V-2

Documents pour la fabrication : Schma OrCAD : Carte_Intermediaire2.opj + Carte_Intermediaire2.dsn Routage OrCAD : CARTE_INTERMEDIAIRE2B.MAX

11 CARTE LCD PEM


A la date de rdaction de ces lignes (mars 2012), il nexiste pas encore de carte LCD disponible correspondant aux besoins. Lextronic doit bientt en proposer.

11.1 CONNEXIONS ET COMPATIBILITES


La carte LCD dcrite est compatible avec lassociation carte Arduino + carte Ardumoto pour les 3 EDIs suivants : Flowcode, Arduino, CodeVisionAVR. La compatibilit avec les EDIs Arduino et Flowcode est normale car dans les 2 cas, il est possible daffecter indpendamment chacune des broches du LCD une broche quelconque du C. Pour Arduino, voir http://arduino.cc/fr/Main/LiquidCrystal. Pour Flowcod, voir doc perso. FlowCode nutilise pas le bit RW du LCD dans ses macros.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

33

Avec CodeVisionAVR, le cblage du LCD est impos comme suit : LCD N broche LCD Bit dun Port C RS 4 0 RD ou RW 5 1 EN 6 2 DB4 11 4 DB5 12 5 DB6 13 6 DB7 14 7

En tenant compte des broches disponibles avec lassemblage carte Arduino + carte interconnexion PEM + carte Ardumoto, le cble retenu est le suivant : Repres des broches sur le connecteur Arduino Broche C LCD 0 PD0 RS 1 PD1 RW 2 PD2 EN 3 PD3 4 PD4 DB4 5 PD5 DB5 6 PD6 DB6 7 PD7 DB7

La carte Ethernet utilise les broches 10, 11, 12, 13. Il est peut tre possible de lutiliser en mme temps que le LCD. Si on utiliser la carte Ethernet, il ne faut pas valider le LCD. Voir sil y a une validation pour lutilisation de la carte Ethernet.

11.2 SCHEMA STRUCTUREL


J2 J6 RESET 3.3V 5V GND1 GND2 VIN AREF GND3 13 12 11 10 9 8 J4 7 6 5 4 3 2 1 0 R5 1.8k R6 5.6K Arduino

BP1

U1 LCD_2Lignes

R1 8.2k VDD 3 2

AFFICHEUR LCD 2 LIGNES


DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

3
POT1 1K BP6

RS R/W E

VO VSS

7 8 9 10 11 12 13 14

J8 A0 A1 A2 A3 A4 A5 Arduino R2 2.2k R3 560 R4 820

C1 100n BP2 BP3 BP4 BP5

Gauche

Bas Haut

4 5 6

Droit

11.3 TENSION SELON APPUI BP


Si plusieurs BPS sont simultanment appuys, seul celui le plus gauche sur le schma est pris en compte.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

Valid.

34

Valeurs des rsistances : R2 = 2,2K Valeur choisie arbitrairement dans la srie E12. BP3 appuy, on veut VA0 1V 1 = 5 * R3 / (R2 + R3) R2 = 4 R3 R3 = R2 /4 = 550 valeur normalise 560 BP4 appuy, on veut VA0 2V 2 = 5 * (R3 +R4) / ((R2 + R3) + R4) 2 R2- 3 R3 = 3 R4 R4 = 2/3 R2 - R3 = 906 valeur normalise 820 BP5 appuy, on veut VA0 3V 3 = 5 * (R3 + R4 + R5) / ((R2 + R3 + R4) + R5) 3 R2 - 2 R3 2 R4 = 2 R5 R5 = 3/2 R2 - R3 - R4 = 1920 valeur normalise 1800 BP6 appuy, on veut VA0 4V 4 = 5 * (R3 + R4 + R5 + R6) / ((R2 + R3 + R4 + R5) + R6) 4 R2 - R3- R4- R5 = R6 = 5620 valeur normalise 5,6 K

BP appuy Tension approximative en A0 (V)

Aucun 5

BP2 0

BP3 1

BP4 2

BP5 3

BP6 4

11.4 UTILISATION AVEC LEDI ARDUINO


Voir remarque 5 E/S disponibles sur connecteurs de la carte Arduino Uno.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

35

La mme mthode lcd.print est utilise pour afficher du texte partir dune chaine de caractres et un nombre partir dune variable.

11.5 UTILISATION AVEC FLOWCODE


Voir remarque 5 E/S disponibles sur connecteurs de la carte Arduino Uno. A cause du problme mentionn plus haut avec la carte Arduino Uno, il faut ajouter une boite Code C dont le contenu est montr ci-contre. Flowcode ne gre pas la broche R/W. Comme elle connecte au bit PD1, il faut le forcer 0. Les connexions du composant LCD doivent tre fixes comme suit :

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

36

12 SCHEMATISATION ET FABRICATION DE CARTE DEXTENSION AVEC FRITZING


Il existe un logiciel qui permet de dessiner une carte de connexion rapide avec des composants interconnects et relis aux E/S dune carte Arduino. On peut ensuite obtenir le schma et router une carte dextension. Le tout est relativement facile mettre en uvre et peut tre utilis par un lve dans le cadre dun projet STI2D SIN condition que le nombre de composants soit extrmement limit. http://fritzing.org Il existe des vidos et 4 tutoriels en franais au format pdf : http://fritzing.org/learning/translations/

13 QUELQUES EXEMPLES DUTILISATION DARDUINO 13.1 ROBOTIQUE


Il existe de trs nombreuses utilisations dArduino en robotique. Seules quelques-unes sont mentionnes ici. 13.1.1 ROBOTS NXT DE LEGO Il existe une carte dinterface entre une carte Arduino et les capteurs et actionneurs dun robot NXT. Des bibliothques de fonctions sont disponibles. La carte est vendue par gnration robot. Il existe certainement dautres revendeurs. http://www.generationrobots.com/shield-pour-arduino,fr,3,68.cfm

Le prix est exorbitant (87,50 ) car il ne sagit que dinterconnexions. Voir si dautres distributeurs proposent la carte moins chre.

Pour une information technique complte, voir : http://www.openelectrons.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE _id=7 13.1.2 BOE SHIELD BOT Le Boe Shield Bot est un robot mobile programmable qui s'appuie sur une carte Arduino. Il est ainsi programmable l'aide de l'environnement de programmation Arduino et possde une planche de connexion sans soudure vous permettant facilement d'y ajouter vos composants lectroniques, capteurs et vos propres circuits lectroniques. Pour plus de dtails, voir par exemple : http://www.generationrobots.com/robot-mobile-boe-shield-pour-arduino-parallax,fr,4,RoboticsShield-kit.cfm
Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 37

La carte supplmentaire est fabrique par Parallax. Appellation: Board of Education Shield. http://www.parallax.com/BOEShield

13.1.3 POLOLU Il est possible dadapter une carte Arduino + une carte Ardumoto + une carte dinterconnexion PEM (par exemple) un chssis Pololu. Lavantage de ce dernier est son faible cot. Lensemble est vendu par Lextronic. Ce sont les rfrences de ce revendeur qui sont donnes cidessous : Composition : - Un disque en matire plastique prdcoup - 2 moteurs/rducteurs "CC" (Rf.: MOT-993) - Un support de fixation pour les moteurs (Rf.: POL1089) - Une paire de roue (Rf.: POL1090) - Une roue folle type "Ball-Caster" (Rf.: ROB08909)

Des trous correspondent deux des trous de la platine Arduino. Lcart entre les deux moteurs est denviron 29 mm. Lexprience a montr quil faut placer suffisamment de poids lavant au niveau de la bille pour viter que le robot bascule en arrire lors dune forte acclration. Il peut tre utile de placer une deuxime roue folle larrire, avec une diffrence de niveau par rapport lavant. Rfrence Lextronic du chssis complet : POL1506 32.00 TTC (prix fin 2011)

Moteur rducteur miniature "POLOLU 993" Ce moteur rducteur est trs recherch par ses petites dimensions et sa grande qualit. Dot d'un rapport de rduction de 30:1 et de pignons en mtal, il dispose d'un arbre en "D".

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

38

Caractristiques (donnes par le constructeur) : - Dimensions: 24 x 10 x 12 mm - Poids: 0,34 oz - Rduction: 30:1 - Alimentation 3 7 V env. - Vitesse vite @ 6 V: 440 rpm - Courant vide: 40 mA - Courant en charge: 360 mA - Couple: 4 oz.in oz : once, ounce en anglais. 1 oz = 1/16 lb (livre, pound en anglais) = 28,3g. ozf : ounce-force = 1 oz * g = 0,278 N. Cest ce quil faut retenir pour le couple. Le f a t omis. rpm : rotation per minute, tour par minute. Attention : le bloc rducteur est assez fragile. Lors de linsertion des roues sur laxe, il faut appuyer trs fort. Il faut absolument appuyer larrire du moteur en face des entretoises du bloc rducteur.

13.2 PROJETS DISPONIBLES SUR INTERNET


http://hacknmod.com/hack/top-40-arduino-projects-of-the-web/ http://www.instructables.com/tag/type-id/category-technology/channel-arduino/

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

39

EDI ARDUINO

1 LANGAGE DE PROGRAMMATION
Notes remettre en forme Derrire Arduino il y a le compilateur C/C++ AVR-GCC. Il supporte toutes les constructions standards du langage C et quelques-uns des outils du C++ Arduino ajoute une surcouche pour que la syntaxe utilisateur soit la plus simple possible. Un programme est constitu de 2 fonctions : void setup() // la partie initialisation void loop() // la boucle sans fin

2 ARDUINO ET LINUX
Il est possible de faire fonctionner Arduino sous GNU/Linux. Le dtail est donn sur cette page : http://www.mon-clubelec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.DebuterInstallationLinux

3 FONCTIONNEMENT DE LA COMPILATION
Le fichier dit dans Arduino a lextension pde (avant la version 1.0) ou ino (depuis 1.0). Lorsquon lance la compilation, il est dabord traduit en fichier . cpp puis ensuite les diffrents excutables de la suite AVR-GCC sont appels. Lors de la compilation les fichiers gnrs sont rangs dans User\NomUtilisateur\AppData\Local\Temp\buildxxx..xx.tmp\ Par rapport au fichier .ino, des lignes sont rajoutes au dbut du fichier .cpp, aprs les #include utilisateur et les commentaires, avant la 1re instruction : #include "Arduino.h" // avec Arduino 1.0 ; avant ctait #include WProgram.h void setup(); // prototype pour chacune des fonctions utilises void loop(); Le fichier Arduino.h est rang dans Dossier_Arduino\hardware\arduino\cores\arduino. Il contient les inclusions des fichiers en-tte des bibliothques usuelles dAVR-GCC, des dfinitions de macros, des quivalences symboliques, des en-ttes de fonctions qui sont dans des fichiers .c fournis avec Arduino, linclusion de pins_arduino.h. Ce dernier est dans Dossier_Arduino\hardware\arduino\variants\ eightanaloginputs ou leanardo ou Ce fichier en inclut luimme dautres.

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

40

Pour voir ce qui se passe lors de la compilation, on peut cocher loption Show verbose output during compilation . La boite de dialogue est ouverte avec File / Preferences.

Lors de la compilation lance depuis lEDI, le fichier source .cpp est traduit en fichier objet .o, de mme que le ou les fichiers ventuellement inclus par lutilisateur. Les fichiers .c ou .cpp du Dossier_Arduino\hardware\arduino\cores\arduino sont traduits en fichier objet .o puis intgrs dans la bibliothque core.a (commande : avr-ar rcsv). Ces oprations sont refaites chaque lancement dune compilation depuis lEDI. On ne voit pas lintrt. La bibliothque core.a aurait pu tre livre toute prte et ensuite utilise. Les fichiers objets .o issus du fichier source principal et des ventuels fichiers inclus par lutilisateur sont lis avec les fonctions utilises issues de la bibliothque core.a et le fichier .hex est cr. Pour plus de dtail, voir : http://openhardwareplatform.blogspot.fr/2011/03/inside-arduino-build-process.html

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

41

PROCESSING
interface graphique programmable ct PC pour le systme Arduino Voir http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.OUTILSProcessing

Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges

42