Stage PEIP: Difference between revisions
Jump to navigation
Jump to search
(màj 2012) |
|||
(6 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
* UE/Module: Stage PEIP Polytech'Grenoble RICM |
* UE/Module: Stage PEIP Polytech'Grenoble RICM |
||
* Enseignants RICM : |
* Enseignants RICM : Pierre-Louis Aublin, Didier Donsez |
||
* Organisation des stages PEIP : Patricia Ladret |
* Organisation des stages PEIP : Patricia Ladret |
||
'''Thème |
'''Thème 2012 : Le Physical Computing''' |
||
==Introduction== |
==Introduction== |
||
Line 14: | Line 14: | ||
La plateforme utilisée pour le développement est la carte [[Arduino]]. |
La plateforme utilisée pour le développement est la carte [[Arduino]]. |
||
==Travaux Pratiques== |
|||
==Préliminaires== |
|||
* installez sur votre poste de travail l'environnement de développement Processing http://processing.org |
|||
* installez sur votre poste de travail l'environnement de développement Arduino http://arduino.cc |
|||
* choisissez un mini-projet à réaliser : si vous terminez plutot, 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 |
|||
[[Travaux Pratiques Arduino]] |
|||
* A la fin, remplissez ce sondage anonyme pour donner votre avis sur le stage. |
|||
==Documentation== |
|||
* Les transparents de cours [[Media:Arduino.pdf]] [[Media:Sujet.pdf]] |
|||
* 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 |
|||
** http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-PRINT-85.pdf |
|||
** http://www.sparkfun.com/tutorial/AIK/CIRC00-sheet-SPAR.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]] |
|||
=Projets 2010 - 2011= |
|||
12 en // |
|||
* 1 - écran Nokia 5110 BW |
|||
* 2 - écran Nokia 5110 BW |
|||
* 3 - écran Nokia 5110 BW |
|||
* 4 - écran EL 1602A |
|||
* 5 - Nunchunk |
|||
* 6 - Nunchunk |
|||
* 7 - Nunchunk |
|||
* 8 - 1 Arcade Box DIY (4 boutons, 1 joystick, 1 rocket launcher switch) |
|||
* 9 - speaker PC (PWM sur HP de PC/buzzer) |
|||
* 10 - monter un pad (4 boutons momentanés sur une mini breadboard) |
|||
* 11 - un contrôleur Super Nintendo |
|||
* 12 - un hygomètre pour plante |
|||
=Projets= |
|||
==ARD01 Horloge 3 cadrans== |
|||
* 1 Arduino Uno |
|||
* 3 servomoteurs qui indiquent l'heure |
|||
* 1 haut-parleur |
|||
L'heure courante est récupérée par le port série de l'Arduino lors de l'initialisation |
|||
Le format est sur 6 chiffres 095410 pour 9h55 et 10 secondes |
|||
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. |
|||
[[Image:clockservo1.jpg|400px]] [[Image:clockservo2.jpg|400px]] |
|||
==ARD02 Jeux Snake sur borne d'arcade== |
|||
* 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 |
|||
Plusieurs pad possibles |
|||
* 4 boutons sur mini-breadboard |
|||
* 1 nunchuk acceleration |
|||
* 1 nunchuk joystick |
|||
Processing : Calcul et Affichage |
|||
[http://processing.org/discourse/yabb2/YaBB.pl?num=1246056757 Snake code] |
|||
[[Media:Snake.pde.txt]] |
|||
==ARD03a Asservissement par nunchuck== |
|||
* 1 arduino + câble USB |
|||
* 1 breadboard |
|||
* 1 nunchuck + adaptateur |
|||
* 1 servo-moteur |
|||
[[Image:IMG_20110601_174111.jpg|400px]][[Image:IMG 20110601 174132.jpg|400px]] |
|||
==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 |
|||
[[Image:IMG 20110601 174132.jpg|400px]] |
|||
==ARD05 Machine à écrire/Piano== |
|||
Matériel |
|||
* Clavier PS2 |
|||
* [http://www.sparkfun.com/products/10168 Graphic LCD 84x48 - Nokia 5110] ? |
|||
* Twitter depuis Arduino ? |
|||
(il faudrait fournir la passerelle Arduino --> Twitter) |
|||
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 |
|||
Commande |
|||
<pre> |
|||
LOGIN username:password |
|||
TWIT Top mon stage PEIP |
|||
TWIT Arduino c'est trop top |
|||
LOGOUT |
|||
</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== |
|||
* 1 Arduino + câble USB |
|||
* 1 breadboard |
|||
* 7 buttons |
|||
* 1 haut-parleur |
|||
[[Image:IMG 20110601 174132.jpg|400px]] |
|||
==ARD07 Système stéréo== |
|||
* 1 Arduino + câble USB |
|||
* 1 breadboard |
|||
* 2 haut-parleurs |
|||
[[Image:IMG 20110601 174148.jpg|400px]] |
|||
==ARD08 Afficheur LCD 2 lignes== |
|||
* 1 Arduino + câble USB |
|||
* 1 breadboard |
|||
* 1 alimentation externe |
|||
* 1 potentiomètre |
|||
* 1 afficheur EL1602A |
|||
[[Image:IMG 20110601 174148.jpg|400px]] |
|||
==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]] |
|||
[[Image:IMG 20110601 174155.jpg|400px]] |
|||
==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 |
|||
* [http://www.sparkfun.com/products/8942 capteurs météo additionnels] |
|||
Liens: |
|||
* DS1820 |
|||
** http://www.arduino.cc/playground/Learning/OneWire |
|||
** http://datasheets.maxim-ic.com/en/ds/DS18S20.pdf |
|||
** http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1209105786/2 |
|||
* TMP36 |
|||
** http://www.ladyada.net/learn/sensors/tmp36.html |
|||
** http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-WEB-REV10.pdf#page=28 |
|||
* Capteurs météo |
|||
** [[SEN-08942]] |
|||
** [http://www.lextronic.fr/P18058-anemometre-de-recharge-pour-ws2350-ws2300-et-ws2308.html Rechange WS2300] |
|||
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. |
|||
==Jeu de la vie (conway) interactif== |
|||
Arduino pour la capture des 3+1 changements de direction |
|||
Plusieurs pad possibles |
|||
* 4 boutons sur mini-breadboard |
|||
* 1 nunchuk acceleration |
|||
* 1 nunchuk joystick |
|||
Manette pour déplacement entre cellule |
|||
A => tue |
|||
B => crée |
|||
Le Jeu de Conway est fourni au départ |
|||
Processing : Calcul et Affichage |
|||
==Jeu d'attrapage de boules== |
|||
Arduino pour la capture de 2 mouvements droite - gauche |
|||
Plusieurs pad possibles |
|||
* 2 boutons sur mini-breadboard |
|||
* 1 potentiometre |
|||
* 1 nunchuk acceleration |
|||
* 1 nunchuk joystick |
|||
Processing : Calcul et Affichage |
|||
==Plus belle ma plante== |
|||
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]] |
|||
==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. |
|||
Réglage initial de l'heure [http://processing.org/reference/day_.html] |
|||
Mélodies : |
|||
* [http://paste2.org/p/123617 Star Wars, marche impériale] |
|||
* [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=s_SfYyKltoI Zelda Lost Woods] (partition à trouver) |
|||
Matériel : |
|||
* 1 Arduino Uno |
|||
* 1 Haut-parleur (de PC) |
|||
* 1 Haut-parler supplémentaire pour la stéréo |
|||
* 1 LCD |
|||
* 1 Thermoresistance pour le reglage automatique de la luminosité de l'écran LCD |
|||
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 |
|||
==Piano== |
|||
Matériel : clavier + haut parleur |
|||
En fonction de la touche appuyée sur le clavier, le haut parleur joue une fréquence donnée. |
|||
On peut rajouter un second haut-parleur et utiliser les touches de modification |
|||
(Idée de Gautier "Mushroom" B.) |
|||
==Mailbox== |
|||
# [[iMailbox]] (Didier Donsez) |
|||
==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 ! |
|||
==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 |
|||
=Matériels= |
|||
* 3 écrans [[Graphic LCD 84x48 - Nokia 5110]] |
|||
* 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, ...) |
|||
=Annexes= |
|||
Cadran à Servomoteur |
|||
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 |
|||
Exemple de code : [[Media:NunchuckServo.pde.txt]] |
|||
Note : remplacer beginSerial par Serial.begin dans la fonction setup(). |
|||
Comment relier le nunchuk : |
|||
[[Image:WiiArduino.jpg|400px]] |
|||
[http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/ Relier le nunchuck à l'arduino] |
|||
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). |
|||
==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== |
|||
[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== |
|||
[http://www.sparkfun.com/products/8978 Référence] |
|||
[http://code.google.com/p/nespad/ Une librairie pour utiliser le contrôleur + pin description] |
|||
==Écran LCD EL1602A== |
|||
===Spécifications=== |
|||
*[http://www.geniusnet.sk/om3bc/datasheets/el1602a.pdf Référence rapide (1 page)] |
|||
*[http://www.geniusnet.sk/om3bc/datasheets/elatec_lcd_family.pdf Référence complète - comment le programmer] |
|||
===Comment le cabler=== |
|||
[[Image:LCD_bb.png|400px]] |
|||
===Images=== |
|||
[[File:Arduino_el1602a_2.jpg|300px]] |
|||
[[File:Arduino_el1602a_1.jpg|300px]] |
|||
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 |
|||
* 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/ |
|||
==NXT Sensors== |
|||
Il est possible de brancher des capteurs et actuateurs [[I2C]] du Lego Mindstorms 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 12:17, 30 May 2012
- UE/Module: Stage PEIP Polytech'Grenoble RICM
- Enseignants RICM : Pierre-Louis Aublin, Didier Donsez
- Organisation des stages PEIP : Patricia Ladret
Thème 2012 : Le Physical Computing
Introduction
Le stage PEIP se déroule en Juin. Il présente quelques aspects des compétences et des connaissances qui seront acquises par les élèves ingénieurs des filières en RICM et également en 3I.
Il consiste dans la programmation d'applications informatiques qui préfigurent le futur Internet des Objets.
La plateforme utilisée pour le développement est la carte Arduino.