Objet interactif en Bluetooth

Porteur(s) du projet : Damien MUTI DESGROUAS

Date : 13/11/2020

Licence : libre !

Contexte : Apprentissage

Présentation

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.

Carte 1 - fixée sur l'habit

Montage

La carte Arduino comporte :

un capteur de capteur de distance à ultrason et

un module Bluetooth.

Le schéma de câblage est le suivant :

Le code Fritzing est le suivant : envoie_donnees_distance_bt.fzz.zip

Programme Arduino

Carte 2 - connectée au PC

Montage

La carte Arduino comporte uniquement :

un module Bluetooth.

Le schéma de câblage est le suivant :

Le code Fritzing est le suivant : reception_donneesbt_et_envoie_vers_processing.fzz.zip

Programme Arduino

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

Programme Processing

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.