Stage PEIP: Difference between revisions

From air
Jump to navigation Jump to search
Line 89: Line 89:


Processing : Calcul et Affichage
Processing : Calcul et Affichage

[http://processing.org/discourse/yabb2/YaBB.pl?num=1246056757 Snake code]


==Plus belle ma plante==
==Plus belle ma plante==

Revision as of 10:44, 2 June 2011

  • UE/Module: Stage PEIP Polytech'Grenoble RICM
  • Enseignants RICM : Nicolas Palix (coordinateur), Pierre-Louis Aublin, Didier Donsez
  • Organisation des stages PEIP : Patricia Ladret


Thème 2011 : 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.

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
  • A la fin, remplissez ce sondage anonyme pour donner votre avis sur le stage.

Documentation

Mini-projets=

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 Processing + Arduino

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

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

Snake code

Plus belle ma plante

Arduino pour la mesure de l'hygromêtrie d'une plante Cadran à Servomoteur

Processing : Affichage (dont graphe historique)

Hydrometer1.jpg Hydrometer2.jpg

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.

Mélodies :

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:

Projets Arduino seul


Borne d'arcade

  • 1 Arduino Uno
  • 1 joystick
  • 4 buttons

IMG 20110601 171823.jpg

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.

Clockservo1.jpg Clockservo2.jpg

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.



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 !

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

  1. 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 !

Machine à écrire PS2

Matériel

(il faudrait fournir la passerelle Arduino --> Twitter)


Liens


Commande

LOGIN username:password
TWIT Top mon stage PEIP
TWIT Arduino c'est trop top
LOGOUT


Comment brancher le clavier PS/2 :

  • rouge -> VCC +5V
  • noir -> GND
  • marron -> clock
  • blanc -> data

IMG 20110601 174111.jpg

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 Super Nintendo Controller 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

Arduino+hp.jpg

Voici un exemple de code pour jouer la Marche Impériale de la Guerre des Etoiles en mono File:ImperialMarch.pde.txt

Nunchuck

Nunchuck + servomoteur

Exemple de code : File:NunchuckServo.pde.txt

Note : remplacer beginSerial par Serial.begin dans la fonction setup().

Comment relier le nunchuk :

WiiArduino.jpg


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

Connecter le servomoteur à l'arduino

Couleurs (source1, 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

Référence

Une librairie pour utiliser le contrôleur + pin description


Écran LCD EL1602A

Spécifications

Comment le cabler

LCD bb.png


Images

Arduino el1602a 2.jpg Arduino el1602a 1.jpg

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