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.