Sommaire
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Prsentation de lArduino Description du projet Arduino Tlchargement et installation du logiciel Conguration du port srie-USB Interface du logiciel Arduino et fonctionnement dun programme Apprendre programmer un fonctionnement autonome Structure dun programme Introduction la syntaxe Arduino Pas--pas: Introduction Pas--pas: Dnition des variables Pas--pas: Conguration logicielle de la carte Pas--pas: Programmation des interactions Pas--pas: Finitions Pas--pas: Test et chargement du programme sur la carte Pas--pas: Montage des composants Syntaxe du langage Arduino Syntaxe du langage Arduino suite Librairies additionnelles Un peu dlectronique interactive: prcautions Equipement pour llectronique interactive Electronique interactive : reconnaitre les composants 1 Electronique interactive : reconnaitre les composants 2 Electronique interactive : reconnaitre les composants 3 Electronique interactive : reconnaitre les composants 4 25. Alimenter lArduino 26. Quelques montages avec lArduino 27. Quelques schmas exprimenter 28. Montage dun capteur rsistif 29. Montage dinterrupteurs et bouton-poussoirs 30. Exercices non corrigs 1 31. Exercices non corrigs 2 32. Le programme du montage de latelier 33. Squiper en composants 34. Lexique Anglais technique/ Franais 35. Ressources, remerciements, contact.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Prsentation de lArduino LArduino est une carte lectronique en Matriel Libre pour la cration artistique interactive. Elle peut servir:
1/ pour des dispositifs interactifs autonomes simples 2/ comme interface entre capteurs/actionneurs et ordinateur 3/ comme programmateur de certains microcontrleurs.
lArduino mini
lArduino USB
Le projet Le projet Arduino comprend la fois le dveloppement matriel de cette carte, mais aussi le dveloppement de son environnement de programmation, adaptation du logiciel de programmation pour la carte Wiring, luimme construit sur le Logiciel Libre de gestion dvnements multimdia interactifs Processing (http:// www.processing.org ). LArduino nest cependant pas exclusivement lie Processing, et peut tre utilise en fonctionnement pilot avec la quasi totalit des logiciels de gestion dvnements multimdia interactifs. LArduino peut galement tre utilise comme carte de programmation pour des microcontrleurs AVR ( http://fr.wikipedia.org/wiki/AVR ) utilisables dans dautres montages lectroniques autonomes ou pilots. Pour les utilisateurs chevronns, la carte peut galement tre programme en langage AVR-C. La licence LArduino est un Logiciel Libre et Matriel Libre sous license Creative Commons paternit, non commercial et licence contaminante, disponible ici : http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr : toute libert est permise qui voudrait faire voluer le matriel ou la plateforme de programmation dans le respect de la licence. Le site officiel du projet Arduino est http://www.arduino.cc Technologie LArduino est une carte base sur un microcontrleur (mini-ordinateur) Atmel ATMEGA8 ou ATMEGA168. Elle dispose dans sa version de base de 1 Ko de mmoire vive, et 8Ko de mmoire flash pour stocker ses programmes. Elle peut tre connecte 13 entres ou sorties numriques, dont 3 PWM (pouvant donner 3 sorties analogiques : cf http://fr.wikipedia.org/wiki/PWM) et 6 entres analogiques convertissant en 10 bit. Dans la version la plus courante, la communication avec lordinateur se fait par un port USB. Il existe plusieurs versions de lArduino, dont une version miniaturise, et dautres projets sont galement en gestation. La carte dispose dun logiciel systme interne (modifiable) et des programmes utilisateur.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Version USB
LED jaune de test Trou de xation par vis (xer sur un support non conducteur)
Description de la carte
Port Srie In/out RX TX (supprime une entre-sortie numrique si utilis)
13 entres/sorties numriques numrotes de 1 13 LED verte tmoin dalimentation Port USB: pour le transport des donnes et pour lalimentation lectrique
3 broches, avec un cavalier de slection dalimentation: -cavalier sur les deux broches du haut: alimentation par le port USB, comme sur cette photo -cavalier sur les deux broches du bas si alimentation par connecteur cidessous
Microcontrleur
Connecteur dalimentation de lArduino (si besoin) 9v 12 V Connecteur 2,1 mm avec le + au centre courant continu (DC)
2 LEDs jaunes ou vertes, actives lors dun tlchargement de programme 3 connecteurs numriques pouvant galement tre utiliss en gnrateurs dimpulsions (par ex: sortie analogique avec montage spcique PWM numrots de 0 2 )
6 entres analogiques numrotes de 0 5 Masse (2 connecteurs) (GND) Source 9V faible puissance pour alimenter des montages divers
Source 5V faible puissance pour alimenter des montages divers comme des capteurs 0-5 V par exemple
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Sur MacOSX
Sur Windows
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Le logiciel:
Le logiciel Arduino
Cest un logiciel de programmation par code, code qui contient une cinquantaine de commandes diffrentes. A louverture, linterface visuelle du logiciel ressemble ceci: des boutons de commande en haut, une page blanche vierge, une bande noire en bas
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Les deux pages suivantes vont tre bases sur un exemple simple de programmation : faire clignoter une led. - On verra tout dabord quelle est la structure gnrale dun programme - On verra sur la page suivante la composition dtaille de ce mme programme, en expliquant dja quelques mots de la syntaxe Arduino
void setup()
void loop()
Une fois la dernire ligne excute, la carte revient au dbut de la troisime phase et recommence sa lecture et son excution des instructions successives. Et ainsi de suite. Cette boucle se droule des milliers de fois par seconde et anime la carte.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Commentaires Toujours crire des commentaires sur le programme: soit en multiligne, en crivant entre des /****/, soit sur une ligne de code en se sparant du code avec // Dnition des variables: Pour notre montage, on va utiliser une sortie numrique de la carte, qui est par exemple la 13 me sortie numrique. Cette variable doit tre dnie et nomme ici: on lui donne un nom arbitraire BrocheLED . Le mot de la syntaxe est pour dsigner un nombre entier est int Conguration des entres-sorties void setup(): Les broches numriques de lArduino peuvent aussi bien tre congures en entres numriques ou en sorties numriques. Ici on va congurer BrocheLED en sortie. pinMode ( nom, tat) est une des quatre fonctions relatives aux entres-sorties numriques. Programmation des interactions void loop(): Dans cette boucle, on dnit les oprations effectuer, dans lordre: digitalWrite ( nom, tat) est une autre des quatre fonctions relatives aux entres-sorties numriques.
deux autres instruction Chaque ligne dinstruction est termine par un point virgule Ne pas oublier les accolades, qui encadrent la boucle.
(Syntaxe en marron, paramtres utilisateur en vert) /* Ce programme fait clignoter une LED branche sur la broche 13 * et fait galement clignoter la diode de test de la carte */
void loop() { digitalWrite(BrocheLED, HIGH); // met la sortie num. l'tat haut (led allume) delay(3000); // attente de 3 secondes digitalWrite(BrocheLED, LOW); // met la sortie num. l'tat bas (led teinte) delay(1000); // attente de 1 seconde }
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
1/ Dfinition des variables 2/ Configuration logicielle du matriel 3/ Programmation des interactions 4/ Finitions 5/ Test et tlchargement 6/ Montage
Pas pas:
Quest ce quune variable ? Une variable est un espace de stockage nomm qui permet de stocker une valeur utilisable par la suite dans la boucle dun programme. Une variable peut aussi bien reprsenter des donnes lues ou envoyes sur un des ports analogiques ou numriques, une tape de calcul pour associer ou traiter des donnes, que le numro physique de ces entres ou sorties sur la carte. Une variable nest donc pas exclusivement un paramtre variant dans le programme.
Pour composer un programme ex-nihilo, il est ncessaire de dfinir toutes les composantes dentre et de sortie qui vont affecter le montage matriel et les calculs effectuer. Chaque entre et chaque sortie sera une variable.
Exemple:
Si on a un capteur ( une cellule photo-lectrique qui capte les variations de lumire par exemple) branch une entre de lArduino, et un actionneur ( une LED ) branch une sortie lArduino, et si on veut que la valeur de luminosit change la valeur de lintervalle de clignotement de la LED, alors on a 2 variables stables pour la dfinition du matriel et, en thorie, 2 variables pour les calculs dclarer en dbut de programme. En thorie seulement, car on va se servir directement de la valeur issue du capteur pour dfinir la valeur de lintervalle de temps de dure dextinction et dure dallumage. On a donc besoin que de trois variables en tout. On va leur donner des noms arbitraires mais prcis afin de bien les reconnatre dans le programme.
Le montage, ici ralis sur une plaque dexprimentation spcifique que lon peut fixer sur lArduino Matriel: -cellule photo-electrique -LED -2 rsistances on verra ce montage en dtail plus loin dans le livret
Le code ci-dessous dclare (et dnomme arbitrairement) la variable capteur1, puis lui affecte (par exemple) le numro de l'entre analogique numro 0. (LArduino possde 6 entres analogiques numrotes de 0 5) :
int capteur1 = 0; // dclaration de la identifiant le portanalogique 0 de la carte variable
La ligne ci-dessous dclare (et dnomme arbitrairement) la variable LED1, puis lui affecte (par exemple) le numro de la sortie numrique numro 13 . (LArduino possde 13 entres ou sorties numriques numrotes de 1 13) :
int LED1 = 13; // dclaration de la variable identifiant le autre port numrique 13 de la carte
La ligne suivante dclare (et dnomme arbitrairement) la variable qui correspond la valeur de luminosit envoye par le capteur. De plus, sa premire valeur lallumage de la carte sera (arbitrairement) 0 :
int lum1 = 0; // dclaration de la variable identifiant la valeur de la luminosit du capteur 1
Nos trois variables sont maintenant dclares et dfinies, passons la configuration des entres-sorties de la carte.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Pas pas:
int capteur1 = 0; // variable identifiant le port ana. 0 de la carte int LED1 = 13; // variable identifiant le port num. 13 de la carte int lum1 = 0; // variable identifiant la valeur de la luminosit du capteur 1
et on ferme la phase de configuration par une accolade ( touche clavier alt -parenthse)
On peut maintenant passer la boucle, cest dire le coeur du programme, qui dfinit les actions effectuer avec ces variables.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Pas pas:
int capteur1 = 0; // variable identifiant un port ana. 0 de la carte int LED1 = 13; // variable identifiant le port num. 13 de la carte int lum1 = 0; // variable identifiant la valeur de la luminosit du capteur 1 void setup() { pinMode(LED1, OUTPUT); }
3/ Programmation de linteraction
! ! ! ! ! ! !
}
Puis on effectue la premire opration: lire la valeur du capteur = lire la variable lum1 identifiant la valeur de luminosit lum1 = analogRead( capteur1); On peut maintenant allumer la LED digitalWrite(LED1, HIGH); On patiente un certain temps: en fonction de la valeur de la variable luminosit lum1 delay(lum1); On peut maintenant teindre la LED digitalWrite(LED1, LOW); On patiente un certain temps: en fonction de la valeur de la variable luminosit lum1 delay(lum1); On peut maintenant boucler, avec une accolade, cest--dire faire remonter automatiquement au dbut de la boucle pour lire la nouvelle valeur du capteur et ainsi de suite...jusqu ce quon teigne lArduino.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Pas pas:
4/ Finitions
Notre programme est termin, terminons les commentaires si cela nest pas dja fait
(Syntaxe en marron, paramtres utilisateur en vert) /* Ce programme fait clignoter une LED branche sur la broche 13 * avec une vitesse de clignotement proportionnelle lclairage ambiant * capt par une cellule photo-lectrique. * JNM, 2006, Centre de Ressources Art Sensitif. */
int capteur1 = 0; // variable identifiant un port ana. 0 de la carte int LED1 = 13; // variable identifiant le port num. 13 de la carte int lum1 = 0; // variable identifiant la valeur de la luminosit du capteur 1 void setup() { pinMode(LED1, OUTPUT); }
void loop() { lum1 = analogRead( capteur1); // lire la donne capteur digitalWrite(LED1, HIGH); // allumer la LED 1 delay(lum1); // attendre pendant la valeur donne par le capteur en millisecondes digitalWrite(LED1, LOW); // teindre la LED 1 delay(lum1); // attendre pendant la mme valeur }
-Vrifions maintenant quun point-virgule finit bien chaque ligne de code, que les espaces soient bien placs -Testons le programme sur le logiciel, avant de le transfrer sur la carte:
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Pas pas:
/* Ce programme fait clignoter une LED branche sur la broche 13 * avec une vitesse de clignotement proportionnelle lclairage ambiant * capt par une cellule photo-lectrique. * JNM, Centre de Ressources Art Sensitif. */
int capteur1 = 0; // variable identifiant un port ana. 0 de la carte int LED1 = 13; // variable identifiant le port num. 13 de la carte int lumT = 0; // variable identifiant la valeur de la luminosit du capteur 1 void setup() { pinMode(LED1, OUTPUT); sortie }
5/ Test et tlchargement
Vrifier
void loop() { lum1 = analogRead( capteur1); // lire la donne capteur digitalWrite(LED1, HIGH); // allumer la LED 1 delay(lum1); // attendre pendant la valeur donne par le capteur en millisecondes digitalWrite(LED1, LOW); // teindre la LED 1 delay(lum1); // attendre pendant la mme valeur }
Sil ny a pas derreurs on verra safficher: done compiling, suivi de la taille du programme.
Tlcharger Et enfin, tlcharger le programme sur lArduino: attention, vous avez 5 secondes aprs lappui sur le bouton de r-initialisation pour cliquer sur le bouton Upload !
On peut sauver le fichier sur lordinateur, puis appuyer sur le bouton de r-initialisation de la carte, ci-dessous.
R-initialiser
Et voil ! les deux petites LEDs TX RX sur la carte clignotent pendant le chargement, puis, quelques secondes plus tard, le programme se met en route.....jusqu ce quon teigne la carte...
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Pas pas:
Le montage du tutoriel : Ce programme fait clignoter une LED branche sur la broche 13
avec une vitesse de clignotement proportionnelle lclairage ambiant capt par une cellule photo-lectrique.
Matriel :une LED, une cellule photolectrique, du cable, deux rsistances ( appairer en fonction de la cellule et de la LED)...
Ana 0
Masse (GND)
5v
Num13
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Masse (GND)
Variables
Variables char (variable caractre) int (variable nombre entier) long (variable nombre entier de ts grande taille) string (variable chaine de caractres) array (tableau de variables)
Contrle et conditions if (si...) if...else (si...alors...) for (pour...) switch case (dans le cas o...) while (pendant que ...) Oprations de comparaison == (quivalent ) != (diffrent de) < (infrieur ) > (suprieur ) <= (infrieur ou gal ) >= (suprieur ou gal )
Niveaux logiques des connecteurs numriques HIGH (tat 1) LOW (tat 0) INPUT (configur en entre) OUTPUT (configur en sortie)
Fonctions
Entres-sorties numriques pinMode(broche, tat) (configuration des broches) digitalWrite(broche, tat) (crire un tat sur une broche num.) digitalRead(broche) (lire un tat sur une broche num.) unsigned long pulseIn(broche, tat) (lire une impulsion sur une broche num.) Entres analogiques int analogRead(broche) (lire la valeur dune broche ana.) analogWrite(broche, valeur) (PWM : crire une valeur analogique sur les broches 9, 10 ou 11) Gestion du temps unsigned long millis() (temps de fonctionnement du programme) delay(ms) (attente, en millisecondes) delayMicroseconds(us) (attente, en microsecondes)
Autres commandes // (commentaire simple ligne) /* */ (commentaire multi-lignes) #define ( donner une valeur un nom)
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Suite de la page daccueil du document rfrences (menu Aide du logiciel) , qui renvoie vers les explications de chaque commande de la syntaxe Arduino et dont voici la table des matires. Chaque instruction est suivie de sa traduction, entre-parenthses et en noir.
Nombres alatoires randomSeed(seed) (alatoire pilot) long random(max) (alatoire partir de telle valeur) long random(min, max) (alatoire entre deux valeurs)
Communications srie entre Arduino et autres machines ou ordinateur Serial.begin(speed) (configuration de la vitesse de communication Srie) Serial.available() (donne combien de caractres disponibles dans la zone tampon Srie) Serial.read() (lit les donnes Srie) Serial.print(data) (envoie des donnes Srie) Serial.println(data) (envoie des donnes Srie suivies de caractres spcifiques)
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Librairies additionnelles Matrix ( gestion dune matrice de LEDs par contrleur MAX7219) matrix(data, load, clock) (Pour configurer des matrices de LEDs) matrix.write(x, y, value) (Pour envoyer des donnes aux matrices de LEDs) matrix.write(x, y, sprite) (Pour envoyer des donnes aux matrices de LEDs) matrix.clear() (efface lcran de LEDs). matrix.setBrightness(value) (rgle la brillance de lcran) Sprite ( gestion de formes sur matrice de LEDs) Sprite(largeur, hauteur, colonne1, colonne2...) (Starts the LCD library.) sprite.width() (Returns the width in pixels of the sprite.) sprite.height() (Returns the height in pixles of the sprite.) sprite.write(x, y, valeur) (Writes data to an x, y position of the sprite.) sprite.read(x, y) (Returns the data stored on the x, y position of the sprite.)
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Faire des montages lectroniques simples est la porte de tous et les ressources sur llectronique interactive (physical computing) sont multiples sur le web, il y a cependant des notions de base avoir pour se lancer dans la ralisation de ses propres montages, mme si on ne fait que copier un montage sans le comprendre :
il est toujours utile de savoir reconnatre les composants il est toujours utile de savoir dterminer la valeur dun composant (le code visuel des couleurs, les sigles et les abrviations) il est (souvent) utile de connatre la fonction dun composant il est (parfois) utile de savoir lire un schma, cest--dire reconnatre les symboles des composants, et la raison des cablages.
Eviter de faire des court-circuits Utiliser les sources lectriques recommandes Certains composants lectroniques ont un sens = ils sont polariss. Exemple: la LED, certains condensateurs, les diodes.. Certains composants ne peuvent pas fonctionner seuls , comme la LED, qui a besoin dune rsistance approprie pour
limiter le courant. Certains composants se ressemblent mais nont pas du tout la mme fonction: toujours bien regarder leur signaltique Ne pas manipuler de 230V sans connaissances appropries. Prferer faire les essais et les montages avec une alim externe plutt que celle de lUSB Les ressources du web, et notamment de Wikipedia vous aideront sur les concepts les plus difciles.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Une plaque dexprimentation (breadbord en anglais) permet de cabler de nombreux composants sans faire de soudure, et en gardant un montage entirement dmontable. Le projet Arduino propose une plaque adapte lArduino, dote de connecteurs reproduisant exactement le plan dimplantation de la carte. On peut aussi se la bricoler soi-mme avec quelques composants comme montr sur le site http://todbot.com/blog/2006/07/11/ arduino-breadboard-shield/
La plaque dexprimentation Arduino ofcielle: ici dmonte, car elle vient normalement couvrir lArduino
Une pile, une LED, sa rsistance , voil un bon dbut pour commencer sur une plaque. Si les ls souples de la pile ne veulent pas rentrer, on peut les tamer avec un peu de soudure. Rien ne vaut une bonne plaque pour cabler proprement et clairement ici, lArduino pilote un moteur pas--pas, avec un composant supplmentaire, et un potentiomtre pour dnir la vitesse.
Electronique interactive
Reconnaitre les composants/1
Savoir reconnaitre quelques composants lectroniques, savoir reconnaitre leur symbole, connaitre leur usage, vous permettra de concevoir vos propres expriences et de progresser partir de donnes trouves sur le web. Vous saurez ainsi fabriquer quelques capteurs, et actionner quelques matriels.
La rsistance
La rsistance soppose au passage du courant, proportionnellement sa rsistance exprime en Ohm. Un code de couleurs, ci dessous permet de reconnatre cette valeur. Symbole europen
Les condensateurs
Les condensateurs peuvent stocker un peu de courant si on les charge, mais comme un tonneau perc, ils renvoient ce courant instantanment si ils sont branchs un organe consommateur de courant. Ils peuvent tre polariss ou non, dans des boitiers trs divers. Leur valeur sexprime en Farad ( F)
Le transistor
Le transistor est gnralement utilis comme une sorte de multiplicateur de puissance: lorsquon lui fait passer un courant faible, mais variable dans un de ses 3 pattes, il autorise proportionnellement le passage dun gros courant dans une autre des 3 pattes.
non polaris
Symbole Reconnaissance de leur valeur: A cause de la diversit des modles, se reporter aux ressources sur le web
au del de 1000 Ohms, on parle en KiloOhms, par exemple 10 K est 10 KiloOhms, puis en MegaOhms nots M
100 220 K
1000
10000
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Electronique interactive
Reconnaitre les composants /2
Linterrupteur
Le piezo
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Electronique interactive
Reconnaitre les composants /3
Le servo moteur
Le potentiomtre
Le relais
Le potentiomtre
Le relais
Le servo-moteur est un moteur (rotatif) qui peut effectuer des rotations trs prcises (dans une portion de tour seulement) et en un certain nombre de pas ( de micro-dplacements). Il y a toutes sortes de servo moteurs.. Un des avantages des servo moteurs est sa possibilit de maintenir avec force une position donne. On peut piloter des rotations avec lArduino, quelques fois directement avec la carte si le moteur nest pas trop puissant, sinon en passant par un montage associ.
Le potentiomtre, rotatif comme ici, ou glissire, est une rsistance variable. Entre les extrmits, il y a la rsistance maximale. La patte centrale est le curseur. Cest la rsistance entre cette patte centrale et une extrmit que lon peut faire varier en tournant le bouton. Le potentiomtre est donc un capteur. Il se branche sur les entres analogiques de lArduino. De trs nombreux capteurs sont bass sur le principe de rsistance variable et se cablent presque de la mme faon: la cellule photo-lectrique, le capteur de pression, le l rsistif, etc
Le relais est un composant 4 broches minimum. Cest un interrupteur que lon peut commander en envoyant un petit courant. Au repos, il est normalement ferm, ou normalement ouvert, selon le modle. On peut sen servir avec lArduino pour commander des machines en haute tension ( 230V par exemple), ou pour dclencher toute machine ou lumire.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Electronique interactive
La diode La LED
La diode
La diode ne laisse passer le courant que dans un seul sens. Cest un composant polaris: on reconnait toujours son anneau color dun cot du composant, correspondant la cathode.
La diode lectroluminescente (LED) met de la lumire. Elle est polarise: la patte + est la plus longue, lautre patte est la patte - . Les broches numriques de lArduino, lorsquelles sont congures en sorties et quelles sont ltat 1 ou haut ( HIGH) , fournissent une tension de 5 volts, suprieure ce que peut accepter une LED. Les LED doivent donc tre couples en srie avec une rsistance.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Alimenter lArduino
en mode autonome sans ordinateur
Texte
Avec un adaptateur secteur 9 12 V Connecteur 2,1 mm avec le + au centre, courant continu (DC)
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Quelques montages, dont on trouvera les schmas et les programmes sur le web, notamment ici: http://www.tigoe.net/pcomp/code/archives/avr/arduino/index.shtml et sur le site dArduino avec toutes sortes de ressources sur llectronique interactive ici: http://www.tigoe.net/pcomp/index.shtml
A note
rie >
Monta
ple
Pilotage
de LEDs
par joyst
ick
Pilo
nL a r c te d
e LE d e g a t Pilo
Ds
Capteu
r de d
istance
ultra
-sons
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Quelques schmas exprimenter Brancher un joystick Piloter un moteur courant continu: (Rsistance, transistor, moteur, diode, alim 5 V
Piloter un clairage Leds RVB en milliers de couleurs, avec les sorties PWM (Rsistance, LED rouge, verte et bleue)
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
+5V
cellule photolectrique
Signal
Masse ( GND)
Schma lectronique ( symboles U.S.A)
Montage dun capteur rsistif, type cellule photolectrique, capteur de pression, capteur de exion, etc: La rsistance additionnelle doit tre au moins quivalente la plus forte valeur de rsistance du capteur
Conseil :Pour viter quun l ou quun composant branch au + vienne endommager un port USB dans lordinateur, isoler le mtal du port USB avec un scotch dlectricien. Attention galement au dessous de la carte, ne pas poser sur un support conducteur.
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Il y a deux solutions et donc deux congurations pour le montage de boutons poussoirs ou dinterrupteurs: il est ncessaire de respecter le cablage suivant, qui permet de se passer de rsistances, car elles sont incluses dans le microcontroleur de lArduino. Le montage ci-dessous comporte trois boutons poussoirs.
deuxime solution: sans rsistances mais avec ce code (ici pour trois interrupteurs)
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Exercices
(non corrigs)
Atelier matriel Libre au CRAS : le programme du montage livr avec votre Arduino
/ * D e m o A r d u i n o 1 c a p t e u r ( p o t e n t i o m t re ) * et 2 actioneurs (1 buzzer et 1 LED) * --------------* * C e p ro g r a m m e g re u n c l i g n o t e m e n t d e l a L E D e t d u b u z z e r s u i v a n t l e p o t e n t i o m t re * * Branchement : * ' D i g i t a l P i n 1 3 ' e t G N D ( g ro u n d a c o t d u c o n n e c t e u r 5 V / 9 V ) : l a L E D. * ' D i g i t a l P i n 1 0 ' e t G N D ( s u r l e c o n n e c t e u r ave c l e s 1 4 p i n s d i g i t a l e s ) : l e b u z z e r. * ' A n a l o g I n 0 ' e t 5 V e t G N D ( s u r l e c o n n e c t e u r 5 V / 9 V ) : l e p o t e n t i o m t re . * * ( c o py l e f t ) 2 0 0 6 M a u r i n D o n n e a u d , V i n c e n t R o u d a u t p o u r l e C R A S M a i n s d ' O e u v re s ( c r a s l a b . o r g ) */ int ledPin = 13; // attention la pin 13 contient deja une rsistance int buzzPin = 10; int potPin = 0; /* * i n i t i a l i s a t i o n ( o n y e n t re q u ' u n e s e u l e f o i s a u d b u t ) */ vo i d s e t u p ( ) { / / c o n f i g u re l e s e n s d e s p i n s d i g i t a l e s pinMode(ledPin, OUTPUT); pinMode(buzzPin, OUTPUT); } /* * boucle */ vo i d l o o p ( ) { int attente = analogRead(potPin)/8; // calcul o lon passe de 1024 maximum (la rsolution de la carte en entre) a 256 maximum digitalWrite(ledPin, HIGH); // clignotement LED digitalWrite(buzzPin, HIGH); // beep! d e l ay ( a t t e n t e ) ; d i g i t a l W r i t e ( l e d P i n , L OW ) ; / / c l i g n o t e m e n t L E D d i g i t a l W r i t e ( b u z z P i n , L OW ) ; / / s i l e n c e p o u r l e b u z z e r d e l ay ( a t t e n t e ) ; } digitalWrite(buzzPin, HIGH); // beep!
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Des actionneurs
On trouve des actionneurs divers dans les magasins rels et en ligne qui diffusent des composants lectroniques et les ressources sur le web ( mot cl: actuators en anglais)
Du matriel
Une grande plaque dexprimentation, un bon fer souder dlectronicien avec une panne ne ( partir de 15/20 euros), une troisime main (petit support avec deux pinces et une loupe), du cable de qualit, et de plusieurs couleurs ( toujours reprer la masse en noir, les tensions en rouge, le signal en orange ou en jaune) sont des achats considrer pour continuer en lectronique interactive
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
ANALOG : Analogique. AREF : Abrviation pour Analog REFerence, rfrence analogique. AVAILABLE : Disponible. BEGIN : Dbut. BIT : bit, unit d'information informatique pouvant prendre soit la valeur 0 soit la valeur 1. BUFFER : Tampon, dans le sens de "zone tampon". BYTE : Octet, soit un groupe de 8 bits. bps : Abrviation pour Bits Per Second, Bits Par Seconde. Attention, abrviation toujours en minuscules. BREADBOARD: plaque dexprimentation CAPACITOR: condensateur CHAR : Abrviation de CHARacter, caractre (typographique). Type de variable d'une taille d'un octet. C'est un synonyme de "byte" utilis pour dclarer des variables stocka un caractre ou des chaines de caractres. DEFINE : Dfinit. DIGITAL : Numrique. DO : Faire. FALSE : Faux. FOR : Pour. GND : Abrviation pour GrouND, la terre. C'est la masse, 0 Volt. HIGH : Haut. ICSP : Abrviation pour In Cicuit Serial Programming, programmation srie sur circuit. IF / THEN/ ELSE : Si / Alors / Sinon. IN : Souvent l'abrviation pour INput, Entre. Est toujours en rapport avec le sens extrieur vers carte Arduino. INCLUDE : Inclut. INPUT : Entre. IS : Est (souvent dans le sens d'une question : Est ?). INT : Abrviation pour INTeger, entier. Groupe de 16 bits, 2 octets groups, considrs comme reprsentant un nombre entier ngatif ou positif. LONG : Abrviation pour "entier long". Groupe de 32 bits, 4 octets groups, considrs comme reprsentant un nombre entier ngatif ou positif. LOOP : Boucle. LOW : Bas. OUT : Souvent l'abrviation pour OUTput, Sortie. Est toujours en rapport avec le sens carte Arduino vers extrieur. OUTPUT : Sortie. PIN : Broche. POWER : Puissance, alimentation. PWM : Abrviation de (Pulse Width Modulation), soit Modulation en Largeur d'Impulsion. PWR : Abrviation pour PoWeR, puissance, alimentation. READ: Lire. RESISTOR: rsistance. RELAY: relais. RX : Abrviation pour Receive, rception. SERIAL : Srie. SETUP : Initialisation. SENSOR: capteur TRUE : Vrai. TX: Abrviation Transmit, transmission (mission). WIRE: cable WHILE : Tant que. WORD : mot, soit dans le mot de langage ; soit dans le sens d'un groupe de 16 bits, 2 octets groups considrs comme reprsentant un nombre entier positif (>= 0). WRITE: Ecrire.
Lexique
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr
Quelques ressources:
Le site ARDUINO.CC, et notamment laire de jeux , (Arduino playground) pour savoir notamment comment interfacer lArduino avec tous les logiciels courants
comme Processing ou Pure Data, pour savoir comment transmettre les signaux sans l, et toute utilisation autre Les forums pour tout problmes, ne pas hsiter aller voir les autres langues, qui ont parfois la solution le site de Tom Igoe http://tigoe.net/pcomp/ les sites Make, Hackaday, Sensorwiki, We make money not art, et bien dautres encore pour avoir des conseils, des schmas, des ides.... les sites de service de liens, de video et d image ( google, delicious, youtube, ickr,) pour avoir des images, des videos, des liens trs utiles . ( par exemple: http:// del.icio.us/search/?setcount=100&all=arduino )
Remerciements
Livret conu avec des ressources en ligne de Tom Igoe,, M.Banzi, Tod Spooky Kurt, Francis Bras, Kitdashit, D. Cuartielles, Benoit Rousseau, H Barragan, Hans Steiner et bien dautres encore que je remercie tous ici. contact: jnm rom. fr
Livret Arduino en franais par Jean-Nol Montagn, Centre de Ressources Art Sensitif, novembre 2006, sous licence CC , http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr http://www.craslab.org http://www.artsens.org