Guide Complet des Cartes Arduino
Guide Complet des Cartes Arduino
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 [Link] Tlchargement dAVRdude .................................................................................................... 18 [Link] 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
PROCESSING ................................................................................................................... 42
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)
[Link] liste les diffrentes versions des cartes Arduino. Certaines ne sont plus commercialises.
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
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.
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 .
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
On trouve de nombreux documents et sites web sur internet concernant Arduino. En voici quelquesuns : [Link] 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 : [Link] [Link] 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 : [Link] [Link] prsente la carte Arduino en quelques pages.
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.
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)
4.3 ALIMENTATION
4.3.1 SCHEMA
Rgulateur 3,3V.
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.
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.
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
Peut tre utilise pour gnrer des signaux dont PWM. Peut tre utilise pour gnrer des signaux dont PWM.
9
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
10
LEnvironnement de Dveloppement Intgr Arduino est trs simple. Il se lance sans installation, partir de lexcutable [Link]. 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
11
[Link] 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
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 : [Link] Une introduction avec des liens utiles [Link] Le site du projet Scratch for Arduino Quelques projets : [Link] [Link]
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 : [Link] [Link] [Link] [Link] 6.3.2 VISUAL MICRO = ARDUINO FOR VISUAL STUDIO (MICROSOFT) [Link] [Link] Pb : un lien est cass pour linscription. Passer par msdn ex : [Link] puis connexion en haut droite / Inscrivez-vous.
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 [Link] 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
14
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)
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 : [Link], Arduino UNO [Link], etc. Lorsquon connecte pour la premire fois le cble USB, il faut spcifier le dossier qui contient le pilote.
16
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 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 [Link] 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. [Link] Aprs installation de WinAVR, [Link] et [Link] 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\[Link]. On peut aussi rcuprer [Link] 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.
18
[Link] 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:"[Link]" Le chemin daccs de [Link] 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 [Link] 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.
Quelques distributeurs (certains nacceptent les commandes que par Internet) Lextronic. [Link] [Link] Grand choix dont une carte avec borniers. Commandes lyces acceptes Snootlab [Link] [Link] Grand choix de cartes dont une avec borniers. Commandes lyArduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 19
ces acceptes. Vente uniquement par internet. Assez grand choix dont carte avec borniers. Carte avec borniers.
20
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
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
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).
22
Vendu en kit par snootlab. [Link] 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 .
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).
Pour plus de dtail : [Link] 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
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.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
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.
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.
J8
Le fichier Contour [Link] 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.
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
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
J10
J6
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
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
6 7 8 9 10 11 12 13
VDD
1 2
JP3
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)
4 5 3 2
C1 22pF
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
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
J6
VDD
1 2
JP3
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
R6 220k
C6 100n
30
1 lment
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.
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
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.
BP1
U1 LCD_2Lignes
R1 8.2k VDD 3 2
3
POT1 1K BP6
RS R/W E
VO VSS
7 8 9 10 11 12 13 14
Gauche
Bas Haut
4 5 6
Droit
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
Aucun 5
BP2 0
BP3 1
BP4 2
BP5 3
BP6 4
35
La mme mthode [Link] est utilise pour afficher du texte partir dune chaine de caractres et un nombre partir dune variable.
36
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 : [Link] _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 : [Link]
Arduino / Philippe Morenton / Lyce Pierre Emile Martin - Bourges 37
La carte supplmentaire est fabrique par Parallax. Appellation: Board of Education Shield. [Link]
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".
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 [Link] 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.
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 : [Link]
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..[Link]\ 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.
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 : [Link]
41
PROCESSING
interface graphique programmable ct PC pour le systme Arduino Voir [Link]
42