Travaux Pratiques Arduino: Difference between revisions
(Created page with "=Travaux Pratiques ETIA : Faire parler les choses avec Arduino= ==Introduction== La plateforme utilisée pour les travaux pratiques est la carte Arduino. ==Préliminaires=…") |
|||
(120 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
=Travaux Pratiques |
=Travaux Pratiques : Faire parler les choses avec Arduino= |
||
Line 6: | Line 6: | ||
==Préliminaires== |
==Préliminaires== |
||
* installez sur votre poste de travail l'environnement de développement |
* installez sur votre poste de travail l'environnement de développement [[Arduino]] http://arduino.cc |
||
* installez sur votre poste de travail l'environnement de développement |
* installez sur votre poste de travail l'environnement de développement [[Processing]] http://processing.org |
||
* ''optionnel'' : installez l'éditeur de montage [[Fritzing]]. Il vous sera utile pour garder en mémoire les montages réalisés. http://fritzing.org/ |
|||
* choisissez un mini-projet à réaliser : si vous terminez plutot, permuttez votre projet avec un autre groupe |
|||
* '''téléchargez et dézippez les [http://air.imag.fr/mediawiki/images/8/82/Projects.zip sources des projets]''' |
|||
* choisissez un mini-projet à réaliser : si vous terminez plus tôt, permuttez votre projet avec un autre groupe |
|||
* récupérez la boite concernant le matériel nécessaire à la manipulation |
* récupérez la boite concernant le matériel nécessaire à la manipulation |
||
* branchez la carte Arduino Uno en installant éventuellement le pilote présent dans le répertoire arduino-0022\drivers |
* branchez la carte Arduino Uno en installant éventuellement le pilote présent dans le répertoire arduino-0022\drivers |
||
Line 15: | Line 17: | ||
==Documentation== |
==Documentation== |
||
* Les transparents de cours [[Media: |
* Les transparents de cours [[Media:Phy-comp-etia.pdf | Physical Computing avec Arduino]] ([http://www.craslab.org/arduino/LivretArduinoFr06.pdf d'autres transparents pas mal]) |
||
* Une anti-séche sur Arduino [[Media:arduinocheatsheet.pdf]] ([http://sites.google.com/site/mechatronicsguy/arduinocheatsheet/Arduinocheatsheetv02c.pdf?attredirects=0&d=1 original]) |
* Une anti-séche sur Arduino [[Media:arduinocheatsheet.pdf]] ([http://sites.google.com/site/mechatronicsguy/arduinocheatsheet/Arduinocheatsheetv02c.pdf?attredirects=0&d=1 original]) |
||
* Les montages électroniques possibles avec le ''Sparkfun Inventor Kit'' : s'en inspirer |
* Les montages électroniques possibles avec le ''Sparkfun Inventor Kit'' : s'en inspirer |
||
** http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-PRINT-85.pdf |
** [http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-PRINT-85.pdf livret en VO] |
||
** [http://ardx.org/src/guide/2/ARDX-EG-SPAR-FR-WEB.pdf livret en VF] ([http://air.imag.fr/mediawiki/images/5/5d/ARDX-EG-SPAR-FR-WEB.pdf copie de secours]) |
|||
** http://www.sparkfun.com/tutorial/AIK/CIRC00-sheet-SPAR.pdf |
|||
** [http://www.sparkfun.com/tutorial/AIK/CIRC00-sheet-SPAR.pdf les schémas de branchement en VO] |
|||
** en VF http://www.sparkfun.com/news/636 |
|||
* Code couleur résistance http://www.robives.com/sites/default/files/premium/resistor.pdf |
* Code couleur résistance http://www.robives.com/sites/default/files/premium/resistor.pdf |
||
* Code Arduino et Processing [[Media:Projects.tgz]] [[Media:Projects.zip]] |
* Code Arduino et Processing [[Media:Projects.tgz]] [[Media:Projects.zip]] |
||
==Premières Manipulations== |
==Premières Manipulations== |
||
Dans cette première partie, vous allez tester quelques programmes (appelés ''sketch'') de base et les montages associés. |
|||
===Clignotement d'une LED=== |
===Clignotement d'une LED=== |
||
Cette première manipulation permet de s'acclimater avec l'atelier Arduino, au chargement du programme sur la carte. |
|||
L'Arduino Uno est équipé de 13 entrées-sorties digitales (0,1) d'une tension de 0V ou 5V. Les ES 0 et 1 sont généralement affectées à la liaison série (RX TX de l'UART). |
|||
Cette manipulation montre la configuration d'une ES (13) en mode sortie (OUTPUT) et le positionnement en 0 ou 1 (LOW pour 0V et HIGH pour 5V). |
|||
[http://ardx.org/CIRC01 explications, code et montage (CIRC01)] |
|||
===Gradation d'une LED avec le PWM=== |
===Gradation d'une LED avec le PWM=== |
||
L'Arduino possède plusieurs sorties [http://fr.wikipedia.org/wiki/Modulation_de_largeur_d%27impulsion PWM] (3,5,6,9,10,11) émulant des sorties analogiques entre 0 et 5V en envoyant à haute fréquence des implusions pour ou plus longues en fonction du voltage souhaité. Les valeurs à écrire sont entre 0 et 255 avec la fonction analogWrite(pin,val). |
|||
Ce montage montre comment faire une tension entre 0 et 5V avec potentiomètre. |
|||
'''Attention ce montage nécessite une photo-résistance" |
|||
[http://ardx.org/CIRC09 explications, code et montage (CIRC09)] |
|||
===Boutons poussoirs=== |
|||
Cette manipulation permet de récupérer l'état d'un bouton. Un montage avec résistance est requis pour fixer la valeur par défaut (''Pull UP'' sur ''+vcc'' et ''Pull Down'' sur ''Gnd''). |
|||
[http://ardx.org/CIRC07 explications, code et montage (CIRC07)] |
|||
===Boutons=== |
|||
===Potentiomètre=== |
===Potentiomètre=== |
||
L'Arduino Uno est équipé de 6 entrées analogiques (A0 à A5) qui mesure une tension entre 0 et 5V et codée par un entier de 0 à 1023. |
|||
Dans cette manipulation, vous utiliserez un potentiomètre (en pont diviseur variable) pour faire varier la tension. |
|||
[http://ardx.org/CIRC08 explications, code et montage (CIRC08)] |
|||
Modifiez ce sketch pour changer la fréquence de clignotement de la LED branchée sur le port 13. |
|||
===Communication série=== |
|||
Complétez le sketch pour écrire sur la sortie série les valeurs lues sur l'entrée analogique (voir le programme Arduino '''Projects/SensorGrapher/graph'''). Visualisez les en utilisant le moniteur série de l'environnement Arduino. |
|||
Affichez ces valeurs transmises par l'Arduino sur votre hôte en utilisant le sketch ''[[Processing]]'' fourni dans les sources: '''/Projects/SensorGrapher/grapher.pde''' |
|||
Générez une application autonome à partir du sketch ''grapher'' (File>Export Application) |
|||
Retestez la communication avec l'application générée pour votre machine. |
|||
'''ATTENTION''' Il faut fermer les applications au fur et mesure afin de libérer le port série (COM ou /dev/ttyXX) |
|||
External ressource: [http://arduino.cc/en/Tutorial/Graph http://arduino.cc/en/Tutorial/Graph] |
|||
===Servomoteur=== |
===Servomoteur=== |
||
Un [[servomoteur]] est un actionneur simple positionnant un "bras" d'un angle variant de 0 à 180°. Ce type d'actionneur est utilisé dans le modélisme. |
|||
Cette manipulation montre l'usage de la bibliothèque Servo qui utilise les sorties PWM. |
|||
[http://ardx.org/CIRC04 explications, code et montage (CIRC04)] |
|||
Remarque: la couleur des 3 fils est |
|||
* Ground: black or brown |
|||
* Power: red |
|||
* Control/Signal: orange, yellow or white (à connecter sur une sortie PWM) |
|||
===Musique Maestro !=== |
===Musique Maestro !=== |
||
[http://ardx.org/CIRC06 explications, code et montage (CIRC06)] |
|||
Vous pouvez compléter le sketch pour écrire sur la sortie série les notes jouées. |
|||
=Projets par binome= |
=Projets par binome= |
||
Line 43: | Line 97: | ||
* 3 servomoteurs qui indiquent l'heure |
* 3 servomoteurs qui indiquent l'heure |
||
* 1 haut-parleur |
* 1 haut-parleur |
||
* 1 [[Real Time Clock Module RTC1307]] (optionnel) |
|||
L'heure courante est récupérée par le port série de l'Arduino lors de l'initialisation |
L'heure courante est récupérée par le port série de l'Arduino lors de l'initialisation. Elle peut être sauvegardée dans le module [[Real Time Clock Module RTC1307]]. |
||
Le format est sur 6 chiffres 095410 pour 9h55 et 10 secondes |
Le format est sur 6 chiffres 095410 pour 9h55 et 10 secondes |
||
L'heure courante peut être aussi réglée au moyen de boutons poussoirs branchés sur l'Arduino. |
|||
L'horloge peut fonctionner aussi en mode chronomètre (minute, seconde, centième) avec 4 boutons start, lap, stop, heure branchés sur l'Arduino. |
L'horloge peut fonctionner aussi en mode chronomètre (minute, seconde, centième) avec 4 boutons start, lap, stop, heure branchés sur l'Arduino. |
||
Comme les coucous suisses, l'horloge peut jouer une mélodie à chaque demi-heure. |
Comme les coucous suisses, l'horloge peut jouer une mélodie à chaque demi-heure. |
||
Le coucou suisse peut être inhibé quand la pièce est dans le noir (utilisation de photoresistance). |
|||
[[Image:clockservo1.jpg|400px]] [[Image:clockservo2.jpg|400px]] |
[[Image:clockservo1.jpg|400px]] [[Image:clockservo2.jpg|400px]] |
||
==ARD02 |
==ARD02 Contrôleur de Jeux : Snake== |
||
* 1 Arduino Uno |
|||
* 1 joystick |
|||
* 4 buttons |
|||
[[Image:IMG_20110601_171823.jpg|400px]] |
|||
===Jeu de serpent (Snake)=== |
|||
Arduino pour la capture des 3+1 changements de direction |
Arduino pour la capture des 3+1 changements de direction |
||
Line 70: | Line 120: | ||
Processing : Calcul et Affichage |
Processing : Calcul et Affichage |
||
Le code du jeu Snake est dans les exemples de l'atelier Processing. |
|||
[http://processing.org/discourse/yabb2/YaBB.pl?num=1246056757 Snake code] |
[http://processing.org/discourse/yabb2/YaBB.pl?num=1246056757 Snake code] |
||
Line 81: | Line 133: | ||
* 1 nunchuck + adaptateur |
* 1 nunchuck + adaptateur |
||
* 1 servo-moteur |
* 1 servo-moteur |
||
http://diydrones.com/profiles/blogs/705844:BlogPost:31713 |
|||
[[Image:IMG_20110601_174111.jpg|400px]][[Image:IMG 20110601 174132.jpg|400px]] |
[[Image:IMG_20110601_174111.jpg|400px]][[Image:IMG 20110601 174132.jpg|400px]] |
||
Line 95: | Line 149: | ||
* 1 Arduino + câble USB |
* 1 Arduino + câble USB |
||
* 1 breadboard |
* 1 breadboard |
||
* 1 écran Nokia 5110 BW |
* 1 écran Nokia 5110 BW:[[Graphic_LCD_84x48_-_Nokia_5110]] |
||
[[Image:IMG 20110601 174132.jpg|400px]] |
[[Image:IMG 20110601 174132.jpg|400px]] |
||
==ARD05 Machine à écrire/Piano== |
==ARD05 Machine à écrire/Piano PS2== |
||
Les claviers et souris PS2 dorment dans vos placards. Ils peuvent être recyclés pour des manipulations rigoles (machines à écrire des SMS ou des tweets, pianos, gamepads, ...) avec l'Arduino. |
|||
Vous pouvez le brancher sur une prise femelle brochée sur une carte fille. Si vous n'en avez pas, découpez carrement le cable et sondez les fils sur un support d'IC. Voici les codes couleurs http://en.wikipedia.org/wiki/PS/2_connector#Color_code . |
|||
Matériel |
Matériel |
||
* Clavier PS2 |
* Clavier PS2 |
||
* [http://www.sparkfun.com/products/10168 Graphic LCD 84x48 - Nokia 5110] ? |
* [http://www.sparkfun.com/products/10168 Graphic LCD 84x48 - Nokia 5110] ? |
||
* Twitter depuis Arduino ? |
* Twitter depuis Arduino ? (il faudrait fournir la passerelle Arduino --> Twitter via [[RXTX]]) |
||
(il faudrait fournir la passerelle Arduino --> Twitter) |
|||
Comment brancher le clavier PS/2 : |
|||
* rouge -> VCC +5V |
|||
* noir -> GND |
|||
* marron -> clock |
|||
* blanc -> data |
|||
[[Image:IMG_20110601_174111.jpg|400px]] |
|||
Liens |
Liens |
||
Line 115: | Line 177: | ||
* http://www.arduino.cc/playground/Main/PS2Keyboard |
* http://www.arduino.cc/playground/Main/PS2Keyboard |
||
===PS2TWIT=== |
|||
Voici quelles pourraient etre les commandes. |
|||
Commande |
|||
<pre> |
<pre> |
||
LOGIN username:password |
LOGIN username:password |
||
Line 123: | Line 185: | ||
LOGOUT |
LOGOUT |
||
</pre> |
</pre> |
||
Comment brancher le clavier PS/2 : |
|||
* rouge -> VCC +5V |
|||
* noir -> GND |
|||
* marron -> clock |
|||
* blanc -> data |
|||
[[Image:IMG_20110601_174111.jpg|400px]] |
|||
==ARD06 Clavier musical 7 buttons== |
==ARD06 Clavier musical 7 buttons== |
||
Line 150: | Line 203: | ||
[[Image:IMG 20110601 174148.jpg|400px]] |
[[Image:IMG 20110601 174148.jpg|400px]] |
||
==ARD08 Afficheur LCD 2 lignes== |
==ARD08 Horloge Réveil avec Afficheur LCD 2 lignes== |
||
Complexité : ++++ |
|||
* 1 Arduino |
* 1 Arduino Uno |
||
* 1 afficheur EL1602A ou une carte [[LCD Keypad Shield]] |
|||
* 1 breadboard |
|||
* 1 haut-parleur |
|||
* 1 alimentation externe |
|||
* 1 thermo-résistance [[LM35]] ou 1 capteur [[DS1820]] |
|||
* 1 potentiomètre |
|||
* 1 photo-résistance |
|||
* 1 afficheur EL1602A |
|||
* 1 [[Real Time Clock Module RTC1307]] (optionnel) |
|||
L'heure courante est récupérée par le port série de l'Arduino lors de l'initialisation. Elle peut être sauvegardée dans le module [[Real Time Clock Module RTC1307]]. |
|||
[[Image:IMG 20110601 174148.jpg|400px]] |
|||
L'heure courante peut être aussi réglée au moyen de boutons poussoirs du shield. |
|||
L'horloge peut fonctionner aussi en mode chronomètre (minute, seconde, centième) avec 4 boutons start, lap, stop, heure branchés sur l'Arduino. |
|||
L'afficheur l'heure, le jour, le réveil la température de la pièce, ... |
|||
Comme les coucous suisses, l'horloge peut jouer une mélodie à chaque demi-heure. |
|||
Le coucou suisse peut être inhibé quand la pièce est dans le noir (utilisation de photo-resistance). |
|||
==ARD09 Jeux de reflexe== |
==ARD09 Jeux de reflexe== |
||
Line 200: | Line 265: | ||
* exporter les mesures vers le port série au format CSV. Une application [[Processing]] ou Processing.JS peut afficher ou qu'un pont peut publier vers [[Pachube]]). |
* exporter les mesures vers le port série au format CSV. Une application [[Processing]] ou Processing.JS peut afficher ou qu'un pont peut publier vers [[Pachube]]). |
||
* proposer des seuils d'alarme programmable par l'utilisateur. Le franchissement de seuil fait bipper le haut parleur de la station pendant 30 secondes. |
* proposer des seuils d'alarme programmable par l'utilisateur. Le franchissement de seuil fait bipper le haut parleur de la station pendant 30 secondes. |
||
[[Image:SEN-08942.jpg|300px|thumb|SEM 08942 Weather station sensors]] |
|||
Matériel : |
Matériel : |
||
Line 225: | Line 293: | ||
Voir le chapitre 13 du livre Jonathan Oxer, Hugh Blemings, Practical Arduino: Cool Projects for Open Source Hardware, http://www.practicalarduino.com/projects/weather-station-receiver qui récupère les données des capteurs météo d'une station WS2355 en RF 433 MHz. |
Voir le chapitre 13 du livre Jonathan Oxer, Hugh Blemings, Practical Arduino: Cool Projects for Open Source Hardware, http://www.practicalarduino.com/projects/weather-station-receiver qui récupère les données des capteurs météo d'une station WS2355 en RF 433 MHz. |
||
==ARD11 Jeu de mémoire Simon== |
|||
[http://fr.wikipedia.org/wiki/Simon_%28jeu%29 Simon] est un jeu de mémoire très populaire fin des années 70. |
|||
Il peut être implémenté très simplement au moyen d'un Arduino. |
|||
==Jeu de la vie (conway) interactif== |
|||
Matériel : |
|||
Arduino pour la capture des 3+1 changements de direction |
|||
* 1 Arduino + câble USB |
|||
* 1 breadboard |
|||
* 4 [http://www.sparkfun.com/products/10442 boutons poussoirs intégrant des LED] (en 2 couleurs) (protégez les Led intégrées au moyen de résistance). |
|||
* 1 buzzer |
|||
==ARD12 Arduino sur Pachube== |
|||
Plusieurs pad possibles |
|||
[[Pachube]] est un serveur de stockage et d'affichage (ie publication) de mesures collectés par des capteurs. L'API est basée sur REST et le format de représentation des mesures collectées est EEML (Extended Environments Markup Language). Il existe une implémentation d'un client REST EEML en java : [http://code.google.com/p/jpachube/wiki/BasicJPachubeTutorial JPachube]. |
|||
* 4 boutons sur mini-breadboard |
|||
* 1 nunchuk acceleration |
|||
* 1 nunchuk joystick |
|||
En utilisant la bibliothèque [[RXTX]] et JPachube, écrivez un pont publiant sur Pachube les mesures d'un entrée analogique d'un Arduino connecté par le port série. |
|||
Manette pour déplacement entre cellule |
|||
A => tue |
|||
B => crée |
|||
==ARD13 DIY Wattmeter== |
|||
Le Jeu de Conway est fourni au départ |
|||
ATTENTION: cette manipulation comporte des risques car on manipule des fils en 220 V ! |
|||
Matériel: une pince ampérométrique, une rallonge électrique (courte), un boitier électrique isolant |
|||
Processing : Calcul et Affichage |
|||
Le programme est assez simple : : [[File:WattmeterSerial.pde.txt]] |
|||
==Jeu d'attrapage de boules== |
|||
Arduino pour la capture de 2 mouvements droite - gauche |
|||
[[Image:ArduiWattmeter.jpg|300px|ArduiWattMeter]] |
|||
Plusieurs pad possibles |
|||
* 2 boutons sur mini-breadboard |
|||
* 1 potentiometre |
|||
* 1 nunchuk acceleration |
|||
* 1 nunchuk joystick |
|||
Processing : Calcul et Affichage |
|||
== |
==ARD 14 Réveil matin== |
||
Arduino pour la |
Arduino : utilisé pour déclencher la mélodie (une partition) à une heure définie |
||
Cadran à Servomoteur |
|||
Processing : Affichage (dont graphe historique) |
|||
[[Image:hydrometer1.jpg|300px]] [[Image:hydrometer2.jpg|300px]] |
|||
==Réveil matin== |
|||
Arduino : utilisé pour déclencher la mélodie (une particition) à une heure définie |
|||
Processing : communique avec l'arduino sur le port série pour configurer l'heure courante, l'heure de réveil, et la mélodie choisie. Dans un premier temps, le moniteur série de l'IDE Ardiuno est suffisant. |
Processing : communique avec l'arduino sur le port série pour configurer l'heure courante, l'heure de réveil, et la mélodie choisie. Dans un premier temps, le moniteur série de l'IDE Ardiuno est suffisant. |
||
Line 275: | Line 330: | ||
* [http://yg.typepad.com/pcomp/2010/11/playing-music-with-buzzers-.html Two tigers song] (nécessite 2 hauts-parleurs; à tester) |
* [http://yg.typepad.com/pcomp/2010/11/playing-music-with-buzzers-.html Two tigers song] (nécessite 2 hauts-parleurs; à tester) |
||
* [http://www.youtube.com/watch?v=Se7P1oSKSog Les Simpson] (partition á trouver http://up.sur-la-toile.com/s9m6 ) |
* [http://www.youtube.com/watch?v=Se7P1oSKSog Les Simpson] (partition á trouver http://up.sur-la-toile.com/s9m6 ) |
||
* [http://www.youtube.com/watch?v=s_SfYyKltoI Zelda Lost Woods] (partition à trouver) |
|||
Matériel : |
Matériel : |
||
Line 281: | Line 335: | ||
* 1 Haut-parleur (de PC) |
* 1 Haut-parleur (de PC) |
||
* 1 Haut-parler supplémentaire pour la stéréo |
* 1 Haut-parler supplémentaire pour la stéréo |
||
* 1 LCD |
* 1 LCD ou écran Nokia |
||
* 1 |
* 1 Photorésistance pour le reglage automatique de la luminosité de l'écran LCD |
||
* 1 Thermorésistance pour mesurer la température de la chambre |
|||
Une extension possible est le réveil moniteur physiologique [[iCoolSleep]]. |
Une extension possible est le réveil moniteur physiologique [[iCoolSleep]]. |
||
Line 289: | Line 344: | ||
* MidiNotate Player - convertissez des fichiers MIDI en partitions http://www.libellules.ch/dotclear/index.php?post/2005/07/15/491-midinotate-player---convertissez-des-fichiers-midi-en-partitions |
* MidiNotate Player - convertissez des fichiers MIDI en partitions http://www.libellules.ch/dotclear/index.php?post/2005/07/15/491-midinotate-player---convertissez-des-fichiers-midi-en-partitions |
||
==ARD15 Arduinoscope (aka Poorman scope)== |
|||
==Piano== |
|||
http://code.google.com/p/arduinoscope |
|||
Matériel : clavier + haut parleur |
|||
En fonction de la touche appuyée sur le clavier, le haut parleur joue une fréquence donnée. |
|||
==ARD16 Centrale d'alarme anti intrusion== |
|||
On peut rajouter un second haut-parleur et utiliser les touches de modification |
|||
Cette centrale d'alarme anti intrusion fonctionne selon le principe suivante: |
|||
* Dans la phase d'initialisation, l'utilisateur configure le code d'activation ou de désactivation de l'alarme au moyen du keypad. Le code est stocké dans l'[http://www.arduino.cc/en/Reference/EEPROM EEPROM] de l'Arduino. |
|||
* Pour activer l'alarme, l'utilisateur entre le code. L'alarme bippe lentement pendant 15 secondes. Seul le contacteur de l'entrée principale peut être ouvert pendant cette période. Si un autre contacteur est resté ouverte, l'alarme prévient l'usager avec un autre son. |
|||
* Pour désactiver l'alarme, l'utilisateur qui a ouvert la porte principale a 10 secondes pour entrer le code. Si le code n'est pas entré ou qu'il est erroné, l'alarme fait hurler la sirène. |
|||
* Quand elle est active, l'alarme fait immédiatement hurler la sirène quand les contacteurs (autre que celui de la porte principale sont ouverts. |
|||
Matériel |
|||
* 1 Arduino |
|||
* 1 Buzzer simple |
|||
* 1 [[Keypad]] 12 touches |
|||
* 1 ou plus détecteurs de contact |
|||
** [http://www.seeedstudio.com/depot/magnetic-door-switch-p-666.html?cPath=156_160 Magnetic Door Switch] |
|||
** [http://www.sparkfun.com/products/9312 Hall effect sensor] |
|||
Matériel optionnel |
|||
(Idée de Gautier "Mushroom" B.) |
|||
* 1 afficheur LCD |
|||
* 1 [http://www.seeedstudio.com/depot/scream-out-loud-110dba-fixed-tone-siren-p-301.html?cPath=156_159 scream out loud - 110dBA fixed tone Siren] |
|||
* 1 alimentation 12V |
|||
* 1 modem AT GSM (vieux téléphone portable possédant une liaison série) pour l'envoi de SMS. |
|||
* 1 ou plus détecteurs (radar) de mouvement |
|||
** [[SEN-08630 PIR Motion Sensor]] |
|||
==ARD17 Feu de passage pieton== |
|||
Cette manipulation consiste à gérer les feux d'un passage piéton. |
|||
Matériel |
|||
* 1 Arduino |
|||
* 3 LED rouge, jaune et verte pour le feu voiture |
|||
* 2 LED rouge et verte pour le feu piéton |
|||
* 1 bouton pour l'appel piéton |
|||
Matériel optionnel |
|||
* 1 buzzer |
|||
==ARD18 Plus belle ma plante== |
|||
==Mailbox== |
|||
# [[iMailbox]] (Didier Donsez) |
|||
Arduino pour la mesure de l'hygromêtrie d'une plante |
|||
Cadran à Servomoteur |
|||
Processing : Affichage (dont graphe historique) |
|||
[[Image:hydrometer1.jpg|300px]] [[Image:hydrometer2.jpg|300px]] |
|||
==ARD19 Borne d'arcade== |
|||
===Commandes=== |
|||
* 1 Arduino Uno |
|||
* 1 joystick |
|||
* 4 buttons |
|||
Arduino pour la capture des 3+1 changements de direction |
|||
Plusieurs pad possibles |
|||
* 4 boutons sur mini-breadboard |
|||
* 1 nunchuk acceleration |
|||
* 1 nunchuk joystick |
|||
[[Image:IMG_20110601_171823.jpg|400px]] |
|||
===Calcul et Affichage des jeux=== |
|||
En [[Processing]] : de nombreuses collections de jeux sont disponibles sur http://www.openprocessing.org |
|||
Bonus: |
|||
# ajoutez un menu d'accueil pour la selection des jeux |
|||
# ajoutez un Hall of Fame pour les joueurs |
|||
====Jeu de serpent (Snake)==== |
|||
http://www.openprocessing.org/visuals/?visualID=27164 |
|||
[http://processing.org/discourse/yabb2/YaBB.pl?num=1246056757 Snake code] |
|||
[[Media:Snake.pde.txt]] |
|||
====Autres==== |
|||
* Tetris http://null-null.net/works/sketch/3dp5tetris/ |
|||
* Space Invaders http://www.openprocessing.org/visuals/?visualID=6572 |
|||
* Game console shield http://homes.esat.kuleuven.be/~kdecraem/IEEESB_Arduino_Gameshield.pdf |
|||
===Version plus sophistiquée du contrôleur=== |
|||
Arcade cabinet |
|||
* http://spectrum.ieee.org/geek-life/tools-toys/building-your-own-arcade-game |
|||
* http://www.projectarcade.com |
|||
* http://mame.velociworks.com et http://mame.velociworks.com/plans.html |
|||
* [http://www.sparkfun.com/tutorials/35 Giant Nintendo Controller] |
|||
==ARD20 Arduway = Arduino + Lego NXT== |
|||
Le Segway est un véhicule à 2 roues tenant en équilibre |
|||
* http://www.youtube.com/watch?v=Tw9Jr-SPL0Y |
|||
* http://www.robotshop.com/gorobotics/articles/lego-mindstorm-nxt-arduino |
|||
==ARD21 Au feu les pompiers !== |
|||
Ce manipulation consiste à rendre communicant un [[Smoke detector|détecteur de fumée]] du commerce. |
|||
Ces détecteurs bas de gamme (5 à 10 euros) peuvent être ''hackés'' pour récupérer les informations suivantes : |
|||
* présence de fumée : déclenchement de la sirène intégrée pendant plusieurs dizaines de secondes |
|||
* appui du boutons de test : déclenchement de la sirène intégrée pendant quelques secondes |
|||
* batterie faible : déclenchement d'un twit faible et court de temps en temps. |
|||
Le hack consiste à mesurer le voltage (entre 0 et 9 volt) au niveau de la LED temoin ou du haut parleur. Certains modèles intègrent 2 pins qui sont wrappables ou soudables. |
|||
Le programme Arduino consiste à déterminer ces 3 cas ! |
|||
==ARD22 Tablette d'écriture manuscrite== |
|||
Cette manipulation consiste à saisir des formes (symbole, caractère) manuscrite sur une surface "tactile" (écran tactile de Nintendo DS) et à afficher les formes saisies au moyen d'une application Processing. |
|||
On ne vous demandera dans cette exercice de reconnaître les formes. Cependant, il sera intéressant de reconnaître la forme correspondant à la suppression de dernière forme écrite (par exemple, droite horizontale partant de droite à gauche. |
|||
Matériel |
|||
* 1 Arduino |
|||
* 1 écran de [[DS Touch screen|DS Nintendo]] + connecteur |
|||
==ARD23 Metronome tactile== |
|||
http://www.wayneandlayne.com/projects/metronome |
|||
Matériel |
|||
* 1 Arduino |
|||
* 1 [[Afficheur TM1638]] |
|||
* 1 HP Piezo |
|||
==ARD24 Cage d'ascenseur == |
|||
Cette manipulation propose de réaliser le programme de pilotage d'une cage d'ascenceur |
|||
Matériel |
|||
* 1 Arduino |
|||
* 1 [[Afficheur TM1638]] |
|||
* 1 HP |
|||
* 1 Servo moteur (pour la porte) |
|||
* 1 moteur pas a pas (pour le cable) |
|||
==ARD25 Airmonica== |
|||
Matériel |
|||
* 1 Arduino |
|||
* 1 HP |
|||
* 1 Nunchunk + adapteur |
|||
Voir http://www.engeldinger.com/services/latest-project/airmonica |
|||
==Guitar Hero== |
==Bonus : Guitar Hero== |
||
Arduino : gamepad : breadboard avec 4 ou 6 boutons, haut parleur, diode LED, afficheur graphique, ... |
Arduino : gamepad : breadboard avec 4 ou 6 boutons, haut parleur, diode LED, afficheur graphique, ... |
||
Line 311: | Line 487: | ||
Processing : affichage (ie c'est tres proche de l'attrapage des boules ! |
Processing : affichage (ie c'est tres proche de l'attrapage des boules ! |
||
==Servo Face Driven== |
|||
Webcam + Arduino + 2 servomoteurs + 2 balles de ping pong + 1 masque |
|||
Voir http://www.instructables.com/id/Servo-driven-face/?ALLSTEPS |
|||
==Ping Pong Clock== |
|||
PingPong Clock, PingPong Game Score Display, ... |
|||
** How to build a ping-pong ball display http://hackaday.com/2011/01/31/how-to-build-a-ping-pong-ball-display/ |
|||
** http://www.dealextreme.com/p/14000mcd-10packs-white-5mm-led-1105 |
|||
==Bonus : Robot Lamp== |
|||
=Matériels= |
|||
* http://www.instructables.com/id/The-IKEA-Robot-Lamp-Adding-the-servos/?ALLSTEPS |
|||
* 3 écrans [[Graphic LCD 84x48 - Nokia 5110]] |
|||
* IKEA TERTIAL Lamp http://www.ikea.com/fr/fr/catalog/products/60370183/ |
|||
* 1 écran [[LCD EL 1602A]] |
|||
* 3 Nunchunks |
|||
* 1 Arcade Box DIY (4 boutons, 1 joystick, 1 rocket launcher switch) |
|||
* 4 Speaker PC (PWM sur HP de PC/buzzer) + 1 haut-parleur stéréo de pc portable |
|||
* DIY game pad (à monter avec 4 boutons momentanés sur une mini breadboard) |
|||
* 1 contrôleur [http://www.sparkfun.com/products/8978 Super Nintendo Controller] [http://pinouts.ru/Game/snescontroller_pinout.shtml Brochage] |
|||
* 1 hygromètre pour plante |
|||
* 4-5 thermo-résistances |
|||
* 5-6 Potentiomètre (pad, réglage luminosité, music speed, ...) |
|||
==Bonus: noduino== |
|||
noduino :JavaScript and Node.js Framework for accessing basic Arduino controls from Web Applications http://bit.ly/T8mJsf |
|||
==Bonus: Firmata== |
|||
=Annexes= |
|||
[[Firmata]] est un portocole d'échange de données entre un micro-controleur et un hôte (Linux, Windows, MacOS X) via une liaison série (USB, RS323, Bluetooth, Zigbee) |
|||
Cadran à Servomoteur |
|||
Carton schotch double face |
|||
[[Image:firmata-processing.png|thumb|200px|right|Processing Shetch with Processing]] |
|||
==Haut-parleurs== |
|||
La photo ci dessous presente un montage simple de 2 haut-parleurs récupérés sur un vieux portable pour jouer des morceaux en stéreo |
|||
1.1) Téléchargez et décompressez http://firmata.org/wiki/Download#Arduino.2FWiring dans ~/Arduino |
|||
[[Image:arduino+hp.jpg|400px]] |
|||
Voici un exemple de code pour jouer la Marche Impériale de la Guerre des Etoiles en mono [[Media:ImperialMarch.pde.txt]] |
|||
==Nunchuck== |
|||
1.2) Depuis Arduino, Ouvrez et chargez Exemples > Firmata > AllInputsFirmata |
|||
Nunchuck + servomoteur |
|||
2.1) Telechargez http://arduino.cc/playground/uploads/Interfacing/processing-arduino.zip et décompressez dans ~/Processing/Libraries |
|||
Exemple de code : [[Media:NunchuckServo.pde.txt]] |
|||
Note : remplacer beginSerial par Serial.begin dans la fonction setup(). |
|||
2.2) Depuis Processing, Ouvrez et Lancez Sketchbook > Libraries > arduino > examples > arduino_output |
|||
Comment relier le nunchuk : |
|||
[[Image:WiiArduino.jpg|400px]] |
|||
===Liens=== |
|||
[http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/ Relier le nunchuck à l'arduino] |
|||
* http://arduino.cc/playground/Interfacing/ProcesssHackForFirmata |
|||
* http://www.arduino.cc/playground/Interfacing/Processing |
|||
* http://mediawiki.e-apprendre.net/index.php/Firmata_et_Java |
|||
=Annexe 1 : matériel= |
|||
Ce lien contient également un programme qui permet de récupérer les valeurs pour les différents contrôles (accéléromètre, joystick et boutons). |
|||
=Toolbox= |
|||
[[Image:amicase.jpg|300px|thumb|AmI Teaching Case]] |
|||
* 3 écrans [[Graphic LCD 84x48 - Nokia 5110]] |
|||
* 1 écran [[LCD EL 1602A]] |
|||
* 3 Nunchunks |
|||
* 4 Speaker PC (PWM sur HP de PC/buzzer) + 1 haut-parleur stéréo de pc portable |
|||
* 1 contrôleur [http://www.sparkfun.com/products/8978 Super Nintendo Controller] [http://pinouts.ru/Game/snescontroller_pinout.shtml Brochage] |
|||
* 4 thermo-résistances LM335 |
|||
* 2 DS1820 |
|||
* 18 Potentiomètre (pad, réglage luminosité, music speed, ...) |
|||
* Cadran et aiguille pour Servomoteur (utilisez les couvercles de boite de ramette de papier) |
|||
* Carton schotch double face |
|||
==Haut-parleurs== |
|||
La photo ci dessous presente un montage simple de 2 haut-parleurs récupérés sur un vieux portable pour jouer des morceaux en stéreo |
|||
[[Image:arduino+hp.jpg|400px]] |
|||
Voici un exemple de code pour jouer la Marche Impériale de la Guerre des Etoiles en mono [[Media:ImperialMarch.pde.txt]] |
|||
==Nunchuck== |
|||
[[Nunchuck]] + servomoteur |
|||
==Ventilateur== |
==Ventilateur== |
||
Line 370: | Line 561: | ||
==Servomoteur== |
==Servomoteur== |
||
voir [[servomoteurs]] |
|||
[http://diydrones.com/profiles/blogs/705844:BlogPost:31713 Connecter le servomoteur à l'arduino] |
|||
Couleurs ([http://www.headsuprc.com/servlet/the-1410/SERVO--dsh---9g/Detail source1], [http://principialabs.com/arduino-serial-servo-control/ source2]) |
|||
A standard RC servo has three wires: |
|||
* Ground: black or brown |
|||
* Power: red |
|||
* Control/Signal: orange, yellow or white |
|||
A besoin de l'alimentation externe sur la carte Arduino ! |
|||
Le code ci-dessus ne semble pas fonctionner... |
|||
==Super Nintendo Controller== |
==Super Nintendo Controller== |
||
Line 388: | Line 569: | ||
[http://code.google.com/p/nespad/ Une librairie pour utiliser le contrôleur + pin description] |
[http://code.google.com/p/nespad/ Une librairie pour utiliser le contrôleur + pin description] |
||
<pre> |
|||
NES female connector |
|||
1 +5v White |
|||
2 Data Clock Yellow/Red |
|||
3 Data Latch Orange |
|||
4 Serial Data Red/Yellow |
|||
--- separator - |
|||
5 N/C - |
|||
6 N/C - |
|||
7 Ground Brown |
|||
</pre> |
|||
==Écran LCD EL1602A== |
==Écran LCD EL1602A== |
||
Line 416: | Line 609: | ||
==Écran LCD Philips PCD8544 (Nokia 3310 & 5110)== |
==Écran LCD Philips PCD8544 (Nokia 3310 & 5110)== |
||
Écran graphique 84x48 pixels NB |
Écran graphique 84x48 pixels NB: [[Graphic_LCD_84x48_-_Nokia_5110]] |
||
* Boutique http://www.sparkfun.com/products/10168 |
* Boutique http://www.sparkfun.com/products/10168 |
||
* Code pour l'Arduino http://www.arduino.cc/playground/Code/PCD8544 |
* Code pour l'Arduino http://www.arduino.cc/playground/Code/PCD8544 |
||
* Bitmap convertor http://en.radzio.dxp.pl/bitmap_converter/ |
* Bitmap convertor http://en.radzio.dxp.pl/bitmap_converter/ |
||
==Molette de Souris== |
|||
[[MoletteSouris|Molette de Souris]] |
|||
==NXT Sensors== |
|||
Il est possible de brancher des capteurs et actuateurs [[I2C]] du [[Lego Mindstorm NXT]] sur l'Arduino |
|||
* https://launchpad.net/nxti2cdevice |
|||
* http://www.robotshop.com/gorobotics/articles/lego-mindstorm-nxt-arduino |
|||
* http://robotclub.ab.ca/articles/33 |
Latest revision as of 09:46, 26 April 2016
Travaux Pratiques : Faire parler les choses avec Arduino
Introduction
La plateforme utilisée pour les travaux pratiques est la carte Arduino.
Préliminaires
- installez sur votre poste de travail l'environnement de développement Arduino http://arduino.cc
- installez sur votre poste de travail l'environnement de développement Processing http://processing.org
- optionnel : installez l'éditeur de montage Fritzing. Il vous sera utile pour garder en mémoire les montages réalisés. http://fritzing.org/
- téléchargez et dézippez les sources des projets
- choisissez un mini-projet à réaliser : si vous terminez plus tôt, permuttez votre projet avec un autre groupe
- récupérez la boite concernant le matériel nécessaire à la manipulation
- branchez la carte Arduino Uno en installant éventuellement le pilote présent dans le répertoire arduino-0022\drivers
- A la fin, pensez à remplir ce sondage anonyme pour donner votre avis sur le stage.
Documentation
- Les transparents de cours Physical Computing avec Arduino (d'autres transparents pas mal)
- Une anti-séche sur Arduino Media:arduinocheatsheet.pdf (original)
- Les montages électroniques possibles avec le Sparkfun Inventor Kit : s'en inspirer
- Code couleur résistance http://www.robives.com/sites/default/files/premium/resistor.pdf
- Code Arduino et Processing Media:Projects.tgz Media:Projects.zip
Premières Manipulations
Dans cette première partie, vous allez tester quelques programmes (appelés sketch) de base et les montages associés.
Clignotement d'une LED
Cette première manipulation permet de s'acclimater avec l'atelier Arduino, au chargement du programme sur la carte.
L'Arduino Uno est équipé de 13 entrées-sorties digitales (0,1) d'une tension de 0V ou 5V. Les ES 0 et 1 sont généralement affectées à la liaison série (RX TX de l'UART).
Cette manipulation montre la configuration d'une ES (13) en mode sortie (OUTPUT) et le positionnement en 0 ou 1 (LOW pour 0V et HIGH pour 5V). explications, code et montage (CIRC01)
Gradation d'une LED avec le PWM
L'Arduino possède plusieurs sorties PWM (3,5,6,9,10,11) émulant des sorties analogiques entre 0 et 5V en envoyant à haute fréquence des implusions pour ou plus longues en fonction du voltage souhaité. Les valeurs à écrire sont entre 0 et 255 avec la fonction analogWrite(pin,val).
Ce montage montre comment faire une tension entre 0 et 5V avec potentiomètre.
Attention ce montage nécessite une photo-résistance" explications, code et montage (CIRC09)
Boutons poussoirs
Cette manipulation permet de récupérer l'état d'un bouton. Un montage avec résistance est requis pour fixer la valeur par défaut (Pull UP sur +vcc et Pull Down sur Gnd).
explications, code et montage (CIRC07)
Potentiomètre
L'Arduino Uno est équipé de 6 entrées analogiques (A0 à A5) qui mesure une tension entre 0 et 5V et codée par un entier de 0 à 1023.
Dans cette manipulation, vous utiliserez un potentiomètre (en pont diviseur variable) pour faire varier la tension.
explications, code et montage (CIRC08)
Modifiez ce sketch pour changer la fréquence de clignotement de la LED branchée sur le port 13.
Communication série
Complétez le sketch pour écrire sur la sortie série les valeurs lues sur l'entrée analogique (voir le programme Arduino Projects/SensorGrapher/graph). Visualisez les en utilisant le moniteur série de l'environnement Arduino.
Affichez ces valeurs transmises par l'Arduino sur votre hôte en utilisant le sketch Processing fourni dans les sources: /Projects/SensorGrapher/grapher.pde
Générez une application autonome à partir du sketch grapher (File>Export Application)
Retestez la communication avec l'application générée pour votre machine.
ATTENTION Il faut fermer les applications au fur et mesure afin de libérer le port série (COM ou /dev/ttyXX)
External ressource: http://arduino.cc/en/Tutorial/Graph
Servomoteur
Un servomoteur est un actionneur simple positionnant un "bras" d'un angle variant de 0 à 180°. Ce type d'actionneur est utilisé dans le modélisme.
Cette manipulation montre l'usage de la bibliothèque Servo qui utilise les sorties PWM.
explications, code et montage (CIRC04)
Remarque: la couleur des 3 fils est
- Ground: black or brown
- Power: red
- Control/Signal: orange, yellow or white (à connecter sur une sortie PWM)
Musique Maestro !
explications, code et montage (CIRC06)
Vous pouvez compléter le sketch pour écrire sur la sortie série les notes jouées.
Projets par binome
ARD01 Horloge 3 cadrans
- 1 Arduino Uno
- 3 servomoteurs qui indiquent l'heure
- 1 haut-parleur
- 1 Real Time Clock Module RTC1307 (optionnel)
L'heure courante est récupérée par le port série de l'Arduino lors de l'initialisation. Elle peut être sauvegardée dans le module Real Time Clock Module RTC1307. Le format est sur 6 chiffres 095410 pour 9h55 et 10 secondes L'heure courante peut être aussi réglée au moyen de boutons poussoirs branchés sur l'Arduino.
L'horloge peut fonctionner aussi en mode chronomètre (minute, seconde, centième) avec 4 boutons start, lap, stop, heure branchés sur l'Arduino.
Comme les coucous suisses, l'horloge peut jouer une mélodie à chaque demi-heure.
Le coucou suisse peut être inhibé quand la pièce est dans le noir (utilisation de photoresistance).
ARD02 Contrôleur de Jeux : Snake
Arduino pour la capture des 3+1 changements de direction
Plusieurs pad possibles
- 4 boutons sur mini-breadboard
- 1 nunchuk acceleration
- 1 nunchuk joystick
Processing : Calcul et Affichage
Le code du jeu Snake est dans les exemples de l'atelier Processing.
ARD03a Asservissement par nunchuck
- 1 arduino + câble USB
- 1 breadboard
- 1 nunchuck + adaptateur
- 1 servo-moteur
http://diydrones.com/profiles/blogs/705844:BlogPost:31713
ARD03b Asservissement par nunchuck de deux aiguilles
- 1 arduino + câble USB
- 1 breadboard
- 1 nunchuck + adaptateur
- 2 servo-moteur + aiguilles
ARD04 Affichage sur écran Nokia
- 1 Arduino + câble USB
- 1 breadboard
- 1 écran Nokia 5110 BW:Graphic_LCD_84x48_-_Nokia_5110
ARD05 Machine à écrire/Piano PS2
Les claviers et souris PS2 dorment dans vos placards. Ils peuvent être recyclés pour des manipulations rigoles (machines à écrire des SMS ou des tweets, pianos, gamepads, ...) avec l'Arduino. Vous pouvez le brancher sur une prise femelle brochée sur une carte fille. Si vous n'en avez pas, découpez carrement le cable et sondez les fils sur un support d'IC. Voici les codes couleurs http://en.wikipedia.org/wiki/PS/2_connector#Color_code .
Matériel
- Clavier PS2
- Graphic LCD 84x48 - Nokia 5110 ?
- Twitter depuis Arduino ? (il faudrait fournir la passerelle Arduino --> Twitter via RXTX)
Comment brancher le clavier PS/2 :
- rouge -> VCC +5V
- noir -> GND
- marron -> clock
- blanc -> data
Liens
- http://www.arduino.cc/playground/ComponentLib/Ps2mouse
- http://www.practicalarduino.com/projects/ps2-keyboard-or-mouse
- Clavier testé avec le programme disponible ici : http://www.arduino.cc/playground/Main/PS2KeyboardExt2
- http://blog.blprnt.com/blog/blprnt/quick-tutorial-twitter-processing
- http://www.arduino.cc/playground/Main/PS2Keyboard
PS2TWIT
Voici quelles pourraient etre les commandes.
LOGIN username:password TWIT Top mon stage PEIP TWIT Arduino c'est trop top LOGOUT
ARD06 Clavier musical 7 buttons
- 1 Arduino + câble USB
- 1 breadboard
- 7 buttons
- 1 haut-parleur
ARD07 Système stéréo
- 1 Arduino + câble USB
- 1 breadboard
- 2 haut-parleurs
ARD08 Horloge Réveil avec Afficheur LCD 2 lignes
Complexité : ++++
- 1 Arduino Uno
- 1 afficheur EL1602A ou une carte LCD Keypad Shield
- 1 haut-parleur
- 1 thermo-résistance LM35 ou 1 capteur DS1820
- 1 photo-résistance
- 1 Real Time Clock Module RTC1307 (optionnel)
L'heure courante est récupérée par le port série de l'Arduino lors de l'initialisation. Elle peut être sauvegardée dans le module Real Time Clock Module RTC1307. L'heure courante peut être aussi réglée au moyen de boutons poussoirs du shield.
L'horloge peut fonctionner aussi en mode chronomètre (minute, seconde, centième) avec 4 boutons start, lap, stop, heure branchés sur l'Arduino.
L'afficheur l'heure, le jour, le réveil la température de la pièce, ...
Comme les coucous suisses, l'horloge peut jouer une mélodie à chaque demi-heure.
Le coucou suisse peut être inhibé quand la pièce est dans le noir (utilisation de photo-resistance).
ARD09 Jeux de reflexe
Matériel : boutons (1 par joueur), LED, afficheur 7 segments (1 par joueur), bouton de reset
Jeu de reflexe à 2,3,4.
- Chaque joueur qui appuie le premier sur son bouton après un signal (sonore ou lumineux) gagne 1 point. Les joueurs doit enfoncer en moins de 5 secondes.
- Un joueur appuyant avant le signal est pénalisé des 2 points (-2 pts). Un signal lunimeux ou sonore indique la fin du tour et marque le début du tour suivant.
- La partie est terminée quand un joueur atteint 10 points.
- Au reset, les joueurs recommencent une partie (prévoir un bouton pour le reset)
- Les points de chaque joueur peuvent s'afficher sur une afficheur 7 segments et être envoyé par le port série à une application Processing pour affichage.
- Fonction de tirage pseudo aléatoire sur Arduino : fonction random() http://www.arduino.cc/en/Reference/Random
- Fonction de tirage aléatoire sur Arduino (requiert du hard): http://robseward.com/misc/RNG2/
- Base de code Media:Reflexe.pde.txt
ARD09b Reflexe II : le retour
Matériel : boutons (2 par joueur), LED de 2 couleurs différentes, afficheur 7 segments (1 par joueur), bouton de reset
Variante du Jeu de reflexe à 2,3,4.
- Chaque joueur qui appuie le premier sur un bouton correspondant à un signal lumineux de la couleur correspondante gagne 1 point. S'il se trompe, il ne gagne pas de points
- Un joueur appuyant avant le signal est pénalisé des 2 points (-2 pts).
- La suite est identique ensuite !
ARD10 Station Météo (Homebrew Weather Station)
Ce projet propose la réalisation d'une station météo basique mesurant les températures, l'indice UV, ... L'affichage sur l'écran Nokia 5110 présente les mesures courantes, minimales et maximales. La version minimale utilise un ou deux capteurs de température.
La version élaborée peut
- comporter des capteurs supplémentaires : hygrometrie, anémomêtre, girouette, pluie ...
- afficher des icones bitmap sur l'écran (soleil, pluie, ...). Elles peuvent être générées avec l'outil http://en.radzio.dxp.pl/bitmap_converter/ .
- exporter les mesures vers le port série au format CSV. Une application Processing ou Processing.JS peut afficher ou qu'un pont peut publier vers Pachube).
- proposer des seuils d'alarme programmable par l'utilisateur. Le franchissement de seuil fait bipper le haut parleur de la station pendant 30 secondes.
Matériel :
- 1 Arduino + câble USB
- 1 breadboard
- 1 écran Nokia 5110 BW
- 1 photo résistance (optionnel)
- 2 capteurs (DS1820 ou TMP36) pour les températures (intérieure, extérieure)
- 3 boutons pour changer le mode d'affichage les données en alternatif (courant, min, max, ...) ou le réglage des seuils (température min ou max)
- 1 haut parleur pour bipper lors de franchissement de seuil
- capteurs météo additionnels
Liens:
- DS1820
- TMP36
- Capteurs météo
Voir le chapitre 13 du livre Jonathan Oxer, Hugh Blemings, Practical Arduino: Cool Projects for Open Source Hardware, http://www.practicalarduino.com/projects/weather-station-receiver qui récupère les données des capteurs météo d'une station WS2355 en RF 433 MHz.
ARD11 Jeu de mémoire Simon
Simon est un jeu de mémoire très populaire fin des années 70.
Il peut être implémenté très simplement au moyen d'un Arduino.
Matériel :
- 1 Arduino + câble USB
- 1 breadboard
- 4 boutons poussoirs intégrant des LED (en 2 couleurs) (protégez les Led intégrées au moyen de résistance).
- 1 buzzer
ARD12 Arduino sur Pachube
Pachube est un serveur de stockage et d'affichage (ie publication) de mesures collectés par des capteurs. L'API est basée sur REST et le format de représentation des mesures collectées est EEML (Extended Environments Markup Language). Il existe une implémentation d'un client REST EEML en java : JPachube.
En utilisant la bibliothèque RXTX et JPachube, écrivez un pont publiant sur Pachube les mesures d'un entrée analogique d'un Arduino connecté par le port série.
ARD13 DIY Wattmeter
ATTENTION: cette manipulation comporte des risques car on manipule des fils en 220 V !
Matériel: une pince ampérométrique, une rallonge électrique (courte), un boitier électrique isolant
Le programme est assez simple : : File:WattmeterSerial.pde.txt
ARD 14 Réveil matin
Arduino : utilisé pour déclencher la mélodie (une partition) à une heure définie Processing : communique avec l'arduino sur le port série pour configurer l'heure courante, l'heure de réveil, et la mélodie choisie. Dans un premier temps, le moniteur série de l'IDE Ardiuno est suffisant.
Réglage initial de l'heure [1]
Mélodies :
- Star Wars, marche impériale
- Two tigers song (nécessite 2 hauts-parleurs; à tester)
- Les Simpson (partition á trouver http://up.sur-la-toile.com/s9m6 )
Matériel :
- 1 Arduino Uno
- 1 Haut-parleur (de PC)
- 1 Haut-parler supplémentaire pour la stéréo
- 1 LCD ou écran Nokia
- 1 Photorésistance pour le reglage automatique de la luminosité de l'écran LCD
- 1 Thermorésistance pour mesurer la température de la chambre
Une extension possible est le réveil moniteur physiologique iCoolSleep.
Utilitaires:
- MidiNotate Player - convertissez des fichiers MIDI en partitions http://www.libellules.ch/dotclear/index.php?post/2005/07/15/491-midinotate-player---convertissez-des-fichiers-midi-en-partitions
ARD15 Arduinoscope (aka Poorman scope)
http://code.google.com/p/arduinoscope
ARD16 Centrale d'alarme anti intrusion
Cette centrale d'alarme anti intrusion fonctionne selon le principe suivante:
- Dans la phase d'initialisation, l'utilisateur configure le code d'activation ou de désactivation de l'alarme au moyen du keypad. Le code est stocké dans l'EEPROM de l'Arduino.
- Pour activer l'alarme, l'utilisateur entre le code. L'alarme bippe lentement pendant 15 secondes. Seul le contacteur de l'entrée principale peut être ouvert pendant cette période. Si un autre contacteur est resté ouverte, l'alarme prévient l'usager avec un autre son.
- Pour désactiver l'alarme, l'utilisateur qui a ouvert la porte principale a 10 secondes pour entrer le code. Si le code n'est pas entré ou qu'il est erroné, l'alarme fait hurler la sirène.
- Quand elle est active, l'alarme fait immédiatement hurler la sirène quand les contacteurs (autre que celui de la porte principale sont ouverts.
Matériel
- 1 Arduino
- 1 Buzzer simple
- 1 Keypad 12 touches
- 1 ou plus détecteurs de contact
Matériel optionnel
- 1 afficheur LCD
- 1 scream out loud - 110dBA fixed tone Siren
- 1 alimentation 12V
- 1 modem AT GSM (vieux téléphone portable possédant une liaison série) pour l'envoi de SMS.
- 1 ou plus détecteurs (radar) de mouvement
ARD17 Feu de passage pieton
Cette manipulation consiste à gérer les feux d'un passage piéton. Matériel
- 1 Arduino
- 3 LED rouge, jaune et verte pour le feu voiture
- 2 LED rouge et verte pour le feu piéton
- 1 bouton pour l'appel piéton
Matériel optionnel
- 1 buzzer
ARD18 Plus belle ma plante
Arduino pour la mesure de l'hygromêtrie d'une plante Cadran à Servomoteur
Processing : Affichage (dont graphe historique)
ARD19 Borne d'arcade
Commandes
- 1 Arduino Uno
- 1 joystick
- 4 buttons
Arduino pour la capture des 3+1 changements de direction
Plusieurs pad possibles
- 4 boutons sur mini-breadboard
- 1 nunchuk acceleration
- 1 nunchuk joystick
Calcul et Affichage des jeux
En Processing : de nombreuses collections de jeux sont disponibles sur http://www.openprocessing.org
Bonus:
- ajoutez un menu d'accueil pour la selection des jeux
- ajoutez un Hall of Fame pour les joueurs
Jeu de serpent (Snake)
http://www.openprocessing.org/visuals/?visualID=27164
Autres
- Tetris http://null-null.net/works/sketch/3dp5tetris/
- Space Invaders http://www.openprocessing.org/visuals/?visualID=6572
- Game console shield http://homes.esat.kuleuven.be/~kdecraem/IEEESB_Arduino_Gameshield.pdf
Version plus sophistiquée du contrôleur
Arcade cabinet
- http://spectrum.ieee.org/geek-life/tools-toys/building-your-own-arcade-game
- http://www.projectarcade.com
- http://mame.velociworks.com et http://mame.velociworks.com/plans.html
- Giant Nintendo Controller
ARD20 Arduway = Arduino + Lego NXT
Le Segway est un véhicule à 2 roues tenant en équilibre
- http://www.youtube.com/watch?v=Tw9Jr-SPL0Y
- http://www.robotshop.com/gorobotics/articles/lego-mindstorm-nxt-arduino
ARD21 Au feu les pompiers !
Ce manipulation consiste à rendre communicant un détecteur de fumée du commerce. Ces détecteurs bas de gamme (5 à 10 euros) peuvent être hackés pour récupérer les informations suivantes :
- présence de fumée : déclenchement de la sirène intégrée pendant plusieurs dizaines de secondes
- appui du boutons de test : déclenchement de la sirène intégrée pendant quelques secondes
- batterie faible : déclenchement d'un twit faible et court de temps en temps.
Le hack consiste à mesurer le voltage (entre 0 et 9 volt) au niveau de la LED temoin ou du haut parleur. Certains modèles intègrent 2 pins qui sont wrappables ou soudables.
Le programme Arduino consiste à déterminer ces 3 cas !
ARD22 Tablette d'écriture manuscrite
Cette manipulation consiste à saisir des formes (symbole, caractère) manuscrite sur une surface "tactile" (écran tactile de Nintendo DS) et à afficher les formes saisies au moyen d'une application Processing. On ne vous demandera dans cette exercice de reconnaître les formes. Cependant, il sera intéressant de reconnaître la forme correspondant à la suppression de dernière forme écrite (par exemple, droite horizontale partant de droite à gauche.
Matériel
- 1 Arduino
- 1 écran de DS Nintendo + connecteur
ARD23 Metronome tactile
http://www.wayneandlayne.com/projects/metronome
Matériel
- 1 Arduino
- 1 Afficheur TM1638
- 1 HP Piezo
ARD24 Cage d'ascenseur
Cette manipulation propose de réaliser le programme de pilotage d'une cage d'ascenceur Matériel
- 1 Arduino
- 1 Afficheur TM1638
- 1 HP
- 1 Servo moteur (pour la porte)
- 1 moteur pas a pas (pour le cable)
ARD25 Airmonica
Matériel
- 1 Arduino
- 1 HP
- 1 Nunchunk + adapteur
Voir http://www.engeldinger.com/services/latest-project/airmonica
Bonus : Guitar Hero
Arduino : gamepad : breadboard avec 4 ou 6 boutons, haut parleur, diode LED, afficheur graphique, ...
Processing : affichage (ie c'est tres proche de l'attrapage des boules !
Servo Face Driven
Webcam + Arduino + 2 servomoteurs + 2 balles de ping pong + 1 masque
Voir http://www.instructables.com/id/Servo-driven-face/?ALLSTEPS
Bonus : Robot Lamp
- http://www.instructables.com/id/The-IKEA-Robot-Lamp-Adding-the-servos/?ALLSTEPS
- IKEA TERTIAL Lamp http://www.ikea.com/fr/fr/catalog/products/60370183/
Bonus: noduino
noduino :JavaScript and Node.js Framework for accessing basic Arduino controls from Web Applications http://bit.ly/T8mJsf
Bonus: Firmata
Firmata est un portocole d'échange de données entre un micro-controleur et un hôte (Linux, Windows, MacOS X) via une liaison série (USB, RS323, Bluetooth, Zigbee)
1.1) Téléchargez et décompressez http://firmata.org/wiki/Download#Arduino.2FWiring dans ~/Arduino
1.2) Depuis Arduino, Ouvrez et chargez Exemples > Firmata > AllInputsFirmata
2.1) Telechargez http://arduino.cc/playground/uploads/Interfacing/processing-arduino.zip et décompressez dans ~/Processing/Libraries
2.2) Depuis Processing, Ouvrez et Lancez Sketchbook > Libraries > arduino > examples > arduino_output
Liens
- http://arduino.cc/playground/Interfacing/ProcesssHackForFirmata
- http://www.arduino.cc/playground/Interfacing/Processing
- http://mediawiki.e-apprendre.net/index.php/Firmata_et_Java
Annexe 1 : matériel
Toolbox
- 3 écrans Graphic LCD 84x48 - Nokia 5110
- 1 écran LCD EL 1602A
- 3 Nunchunks
- 4 Speaker PC (PWM sur HP de PC/buzzer) + 1 haut-parleur stéréo de pc portable
- 1 contrôleur Super Nintendo Controller Brochage
- 4 thermo-résistances LM335
- 2 DS1820
- 18 Potentiomètre (pad, réglage luminosité, music speed, ...)
- Cadran et aiguille pour Servomoteur (utilisez les couvercles de boite de ramette de papier)
- Carton schotch double face
Haut-parleurs
La photo ci dessous presente un montage simple de 2 haut-parleurs récupérés sur un vieux portable pour jouer des morceaux en stéreo
Voici un exemple de code pour jouer la Marche Impériale de la Guerre des Etoiles en mono Media:ImperialMarch.pde.txt
Nunchuck
Nunchuck + servomoteur
Ventilateur
Couleurs :
- Rouge : +
- Noir : -
- Blanc : signal ?
Bien qu'il tourne, je pense que l'alimentation par le port usb seule n'est pas suffisante : il faudrait ajouter le connecteur AC-DC.
Servomoteur
voir servomoteurs
Super Nintendo Controller
Une librairie pour utiliser le contrôleur + pin description
NES female connector 1 +5v White 2 Data Clock Yellow/Red 3 Data Latch Orange 4 Serial Data Red/Yellow --- separator - 5 N/C - 6 N/C - 7 Ground Brown
Écran LCD EL1602A
Spécifications
Comment le cabler
Images
Notes :
- La résistance est une résistance de 10k.
- Le potentiomètre permet de régler le contraste. Sans cela l'écran apparaît vide.
- L'alimentation externe n'est pas nécessaire mais préférable : sans cela l'affichage est faible.
Exemples de code
Dans le logiciel Arduino, des exemples peuvent être trouvés dans le menu File -> Examples -> LiquidCrystal
Écran LCD Philips PCD8544 (Nokia 3310 & 5110)
Écran graphique 84x48 pixels NB: Graphic_LCD_84x48_-_Nokia_5110
- Boutique http://www.sparkfun.com/products/10168
- Code pour l'Arduino http://www.arduino.cc/playground/Code/PCD8544
- Bitmap convertor http://en.radzio.dxp.pl/bitmap_converter/
Molette de Souris
NXT Sensors
Il est possible de brancher des capteurs et actuateurs I2C du Lego Mindstorm NXT sur l'Arduino