Projet Nuage Interactif 2 - Arduino

De Les Fabriques du Ponant
Révision datée du 18 janvier 2017 à 16:05 par EtienneL (discussion | contributions) (Comment ça marche ?)
Aller à : navigation, rechercher

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 !

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
    • Filtre de réception : condensateur 0.1 uF
    • Résistance pour le récepteur : 47 ohms
    • Deux résistances pour adapter la portée de l'émission : conditions peu ou très perturbées (150 ohms et 68 ohms)
  • Batterie ou cable USB pour l'alimentation de l'Arduino
  • Plaque LABDEC

Autres :

  • Patafix
  • Bouteillete en plastique pour contenir la carte Arduino et la plaque LABDEC
  • Adhésif avec fibres exemple
  • Coton
  • Fil de pêche
  • Télécommande infrarouge

Outils

  • Colle liquide
  • Ciseaux

Réaliser le projet

Première Partie

  • Programmation

Ouvrez le logiciel Arduino et établissez la connexion avec votre carte ( ******* ). Ecrivez le code suivant :

   /////*
   //// * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
   //// * An IR detector/demodulator must be connected to the input RECV_PIN.
   //// * Version 0.1 July, 2009
   //// * Copyright 2009 Ken Shirriff
   //// * http://arcfn.com
   //// */
   ////
   #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){
     
     // uniquement les leds rouges
     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
     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
     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é.

Schema arduino nuage interactif.png










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 l'ouverture de la carte Arduino, découpez le fond d'une bouteille.

IMG 20170118 110310.jpg










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.

Erreur lors de la création de la miniature : Fichier avec des dimensions supérieures à 12,5 MP









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é.


(photo)


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éaliser 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