Projet Nuage Interactif 2 - Arduino
Cette page est une fiche écrite dans le cadre de l'Inter Semestre ENIB 2017
Le contenu de cette fiche est en cours de rédaction, elle va s'étoffer pendant tout le mois de janvier !
Sommaire
Nuage Intéractif - Arduino
Vous aimez le bricolage et vous êtes capable de lire un code basique Arduino ? Vous aimeriez contrôler un nuage lumineux à l'aide d'une télécommande? Et bien c'est possible si vous suivez ce tutoriel ! Grâce à cette page vous aurez appris à construire la maquette d'un nuage composé de LEDs. Toutes ces LEDs pourront être contrôlées à distance via une télécommande infrarouge. Les instructions émises par la télécommande seront ainsi captées par un dispositif autour d'une carte Arduino.
Auteurs
Ont participé à la rédaction de cette fiche :
Outils et matériaux
Liste du matériel
Électronique :
- Carte Arduino
- LEDs : 2 Rrouges 2 Vertes 2 Jaunes
- Fils conducteurs
- 6 Resistances pour les LEDs ( 300 Ohms pour des LEDs basiques à courant max 20 mA )
- Led émettrice infrarouge
- Récepteur infrarouge : TSOP32138
- Batterie ou cable USB pour l'alimentation de l'Arduino
- Plaque LABDEC
- Télécommande infrarouge
Autres :
- Patafix
- Bouteillete en plastique pour contenir la carte Arduino et la plaque LABDEC
- Adhésif avec fibres exemple
- Coton
- Fil de pêche
- Vieux torchon
Outils
- Colle liquide
- Ciseaux
- Fer à souder
Réaliser le projet
Première Partie
- Programmation
Ouvrez le logiciel Arduino et établissez la connexion avec votre carte Arduino. Créez un programme avec le code suivant :
#include <IRremote.h> // Librairie permettant de gérer le capteur infrarouge int RECV_PIN = 11; // Pin lié au capteur infrarouge int ledy1=2; // Pin lié à la première led jaune int ledy2=3; // Pin lié à la deuxième led jaune int ledg1=4; // Pin lié à la première led verte int ledg2=5; // Pin lié à la deuxième led verte int ledr1=6; // Pin lié à la première led rouge int ledr2=7; // Pin lié à la deuxième led rouge IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ Serial.begin(9600); irrecv.enableIRIn(); // Lance le récepteur d'infrarouge pinMode(ledr1, OUTPUT); pinMode(ledr2, OUTPUT); pinMode(ledg1, OUTPUT); pinMode(ledg2, OUTPUT); pinMode(ledy1, OUTPUT); pinMode(ledy2, OUTPUT); } void loop() { /* Cette partie de code vous permet de trouver les valeurs des touches de votre télécommande. Afin de les déterminer, ouvrez le "Moniteur série" (Ctrl + Maj + M) et appuyez sur les touches de votre télécommande. Vous verrez apparaître des nombres: ceux-ci correspondent aux valeurs des touches de votre télécommande.*/ if (irrecv.decode(&results)) { Serial.println(results.value, DEC); irrecv.resume(); // Receive the next value } switch(results.value){ // //!\\ ATTENTION : les numéros utilisés ici sont ceux correspondant à notre télécommande, vous aurez donc à les changer. // Uniquement les leds rouges sont allumées case 16724175: // num 1 digitalWrite(ledr1, HIGH); digitalWrite(ledr2, HIGH); digitalWrite(ledg1, LOW); digitalWrite(ledg2, LOW); digitalWrite(ledy1, LOW); digitalWrite(ledy2, LOW); break; // Uniquement les leds jaunes sont allumées case 16718055: // num 2 digitalWrite(ledr1, LOW); digitalWrite(ledr2, LOW); digitalWrite(ledg1, LOW); digitalWrite(ledg2, LOW); digitalWrite(ledy1, HIGH); digitalWrite(ledy2, HIGH); break; // Uniquement les leds vertes sont allumées case 16743045: // num 3 digitalWrite(ledr1, LOW); digitalWrite(ledr2, LOW); digitalWrite(ledg1, HIGH); digitalWrite(ledg2, HIGH); digitalWrite(ledy1, LOW); digitalWrite(ledy2, LOW); break; // Toutes les leds sont allumées case 16716015: // num 4 digitalWrite(ledr1, HIGH); digitalWrite(ledr2, HIGH); digitalWrite(ledg1, HIGH); digitalWrite(ledg2, HIGH); digitalWrite(ledy1, HIGH); digitalWrite(ledy2, HIGH); break; // Toutes les leds sont éteintes case 16726215: // num 5 digitalWrite(ledr1, LOW); digitalWrite(ledr2, LOW); digitalWrite(ledg1, LOW); digitalWrite(ledg2, LOW); digitalWrite(ledy1, LOW); digitalWrite(ledy2, LOW); break; // Les leds jaunes et vertes sont allumées case 16734885: // num 6 digitalWrite(ledr1, LOW); digitalWrite(ledr2, LOW); digitalWrite(ledg1, HIGH); digitalWrite(ledg2, HIGH); digitalWrite(ledy1, HIGH); digitalWrite(ledy2, HIGH); break; // Les leds jaunes et rouges sont allumées case 16728765: // num 7 digitalWrite(ledr1, HIGH); digitalWrite(ledr2, HIGH); digitalWrite(ledg1, LOW); digitalWrite(ledg2, LOW); digitalWrite(ledy1, HIGH); digitalWrite(ledy2, HIGH); break; // Les leds rouges et vertes sont allumées case 16730805: // num 8 digitalWrite(ledr1, HIGH); digitalWrite(ledr2, HIGH); digitalWrite(ledg1, HIGH); digitalWrite(ledg2, HIGH); digitalWrite(ledy1, LOW); digitalWrite(ledy2, LOW); break; // Guirlande case 16732845: // Code à compléter break; } }
Notez le "case 16724175" Ce nombre 16724175 correspond à la touche appuyée sur la télécommande. Ces nombres sont spécifiques à chaque télécommande. Il vous faudra donc connaître le nombre correspondant à chaque touche de votre télécommande que vous allez utiliser. Pour cela, la partie de code suivante vous permettra de connaître les valeurs des touches de votre télécommande:
/* Cette partie de code vous permet de trouver les valeurs des touches de votre télécommande. Afin de les déterminer, ouvrez le "Moniteur série" (Ctrl + Maj + M) et appuyez sur les touches de votre télécommande. Vous verrez apparaître des nombres: ceux-ci correspondent aux valeurs des touches de votre télécommande.*/ if (irrecv.decode(&results)) { Serial.println(results.value, DEC); irrecv.resume(); // Receive the next value }
- Câblage
Suivre le schéma fourni en faisant bien attention au sens des LEDs. La patte la plus longue de la LED représente l'anode, qui doit être reliée à l'entrée. Il est conseillé d'espacer les composants pour plus de clarté. C'est dans cette partie que vous allez vous servir du fer à souder. Cet outil vous permettra de souder les fils conducteurs aux LEDS. ( Nous vous conseillons des fils de 30 centimètres au moins pour un nuage de la taille d'une bouteille d'eau )
.
Seconde Partie : Construction du nuage
Pour réaliser le nuage, vous pouvez choisir le support de votre choix, dans ce tutoriel le support utilisé sera une bouteille. Il faudra un espace pour placer la carte Arduino et la plaque LABDEC à l'intérieur de la bouteille ainsi que le passage des fils. Pour réaliser par la suite un accès plus facile à la carte Arduino, découpez le fond d'une bouteille.
Une fois le découpage de la bouteille réalisé, il faudra mettre de la colle sur la bouteille et y déposer un torchon/chiffon. Attendez que tout cela soit sec.
Percez des trous dans la bouteilles : 6 trous pour les 6 Leds et un 1 trou pour le passage de l'alimentation.
Disposez les LEDs de manière hétérogène sur la bouteille, ensuite mettez de la colle sur le torchon/chiffon pour y déposer le coton.
Vous pouvez si vous le souhaitez faire des formes avec le coton pour avoir un beau nuage.
Maintenant placez la carte Arduino et la plaque LABDEC à l'intérieur de la bouteille. Vous pouvez les fixer à la bouteille avec de la patafix. Faites passez les fils avec les leds par les trous associés. Faire de même pour l'alimentation. Maintenant il ne vous reste plus qu'à refermer la bouteille avec le fond qui avait été découpé.
Pour accrocher le nuage vous pouvez soit construire un support au sol ou soit faire deux petits trous dans le plastique de la bouteille pour y faire passer un fil de pêche (afin de suspendre le nuage en hauteur). Sinon le moyen le plus simple sera pour vous de laisser le nuage par terre ou sur une table. En ce qui concerne l'alimentation vous pouvez opter pour une batterie appropriée. Sinon il vous faudra surement une rallonge USB et un adaptateur USB pour les prises secteurs. Une fois que le nuage est alimenté c'est fini : vous pouvez enfin l'utiliser !
Comment ça marche ?
Observations
En appuyant sur différents boutons de la télécommande on peut observer différents modes d'éclairage pour les LEDs.
Explications
En appuyant sur les boutons d'une télécommande, vous envoyez des données via un émetteur infrarouge: chaque bouton de la télécommande possède un(e) code/donnée différent(e). Un capteur permet de recevoir ces données. Grâce à l'Arduino, nous pouvons récupérer les données des capteurs et effectuer différentes actions. Par exemple : En appuyant sur le bouton 1 de la télécommande, le capteur va recevoir "16462326561" et le transmettre à l'Arduino. Dans l'Arduino, nous réalisons un programme qui effectue une action (comme par exemple allumer une LED) s'il reçoit la valeur "16462326561".
Vous aimerez aussi
Réalisez le même projet avec différentes applications pour faciliter la vie de tous les jours. Exemple : détecter que le facteur est passé, savoir quand le repas est prêt. Pour cela il vous faudra modifier le système et installer des capteurs supplémentaires, modifier le programme pour ajouter différentes fonctionnalités etc...
Sources et ressources utiles
Tuto : Exemple de forme : http://www.instructables.com/id/Interactive-Thunder-and-Lightning-Cloud/ ( ! ballons se dégonflent, pas de code arduino) Meilleur tuto http://www.instructables.com/id/IR-Rainbow-Cloud-ver-1/?ALLSTEPS