Ceci est une ancienne révision du document !
En s'inspirant des affiches interactives, il est possible de créer des objets interactifs capables de réagir en lançant un médiat (son, vidéo, animation). Cette interaction intervient par exemple lorsque la valeur renvoyée par la mesure d'un paramètre associée à un capteur est inférieure à un seuil.
On choisit exemple un capteur de distance à ultrason.
Le système comporte deux cartes Arduino équipée chacune d'un module Bluetooth leur permettant de communiquer.
La carte Arduino comporte :
Le schéma de câblage est le suivant :
Le code Fritzing est le suivant : envoie_donnees_distance_bt.fzz.zip
La carte Arduino comporte uniquement :
Le schéma de câblage est le suivant :
Le code Fritzing est le suivant : reception_donneesbt_et_envoie_vers_processing.fzz.zip
Le programme Arduino permettant la réception des données envoyées par la Carte 1 est le suivant :
/* Réception des données issues du port Bluetooth - Module HC06 Envoie des données reçues via le port série vers le programme Processing*/ #include <SoftwareSerial.h> SoftwareSerial hc06(2, 3); // réception des données envoyées sur le port bluetooth String cmd = ""; int distance = 0; // Gestion de la led byte led = 13; int Tblink = 20; // période de clignotement float isBlink = false; // drapeau pour lancer le clignotement... ou non void setup() { // pin 13 OUTPUT pinMode(led, OUTPUT); //Initialiser le Serial Monitor Serial.begin(9600); //Initialiser le Bluetooth Serial Port hc06.begin(9600); } void loop() { //Lecture des données depuis le module HC06 while (hc06.available() > 0) { cmd += (char)hc06.read(); } //Select function with cmd if (cmd != "") { // convertir la comande en un entier distance = cmd.toInt(); // conversion de la chaine de caractère en un entier : distance mesurée cmd = ""; //reset cmd } // envoie des données sur le port Série -> Processing Serial.println(distance); clignoterLed(led, Tblink, Tblink); // allumer la led à chaque envoie de donnée // patienter x ms delay(100); } void clignoterLed(int led, int Ta, int Te) { // led : patte connécéet à la led, Ta: temps d'allumage, Te: temps led éteinte digitalWrite(led, HIGH); delay(Ta); digitalWrite(led, LOW); delay(Te); }
Le code Arduino est directement disponible sur le lien suivant : reception_donnees_capteur_hc06_1.zip
Le programme Processing permettant la réception et le traitement des données envoyées par la Carte 2 est le suivant :
Ce programme est identique à celui effectué pour les objets interactifs : Objet interactif avec détection de distance grâce une carte Arduino et un capteur de distance à ultrasons. Dans ce dernier exemple, les capteurs sont directement branchés à la carte Arduino qui est connectée au PC, sans passer par un module Bluetooth.