Oeuvre sonore avec une carte Arduino Yun

Dans le cadre de notre MID (Module Inter Disciplinaire) Art plastique Physique, en seconde notre objectif était de créer une oeuvre à exposer pendant une petite heure au musée de Oiron. Autant dire que notre champ d’action était très vague nos seules limites étaient la transportabilité de l’oeuvre et notre imagination. En tant que passionné de sons l’idée m’est tout de suite venu de proposer une oeuvre interactive entre le public et des sons, idée retenue pour notre production finale.

Introduction

Une fois l’idée arrivée à maturité je me suis décidé a utiliser une carte Arduino, carte que j’utilise depuis 6 mois. La problématique était simple, mais les solutions multiples. Je me suis donc focalisé dans un premiers temps sur une solution Arduino et ordinateur, l’Arduino s’occuperait de la partie avec le capteur et l’ordinateur d’exécuter les volontés de l’Arduino. Sur le papier ça paraissait très simple, mais en pratique très complexe. Et l’idée m’est venu d’aller questionner les profs de SI  du lycée. Après avoir parlé avec M.Pers et ayant exclus la solution Arduino plus ordinateur, deux solutions s’offraient à moi :  la solution d’une carte Arduino avec un shield (petit module complémentaire et dans notre cas avec sortie audio) et une carte Arduino Yun avec une carte son USB. Après avoir expérimenté plusieurs combinaisons de matériel, l’oeuvre finale fut composée de l’Arduino Yun avec une carte son.

Fonctionnement et explication

Le principe de l’oeuvre est de jouer une série de dialogues lorsque le capteur directionnel détecte quelqu’un.

Le but est donc dans un premier temps de détecter une personne. Pour ce faire j’ai utilisé un capteur à ultrason le SRF02

 

Quand une personne ou un objet passe à moins de six mètres du capteur celui-ci envoie la distance de la personne à l’Arduino Yun qui analyse ces informations. Je l’ai programmé de telle sorte que lorsqu’il détecte une personne à moins de deux mètres il envoie une commande au second processeur de la carte qui fonctionne sous Linux qui lui va lancer le son en l’occurrence un fichier nommé 01.mp3. Pour ce faire il faut avoir préalablement installé les drivers de la carte son et le software pour lancer les sons. Pour l’Arduino Yun le plus pratique est madplay.

En pratique

Sur place l’installation fut assez simple, mais nous nous sommes heurtés à un gros problème : le son se déclenchait seul. Après plusieurs recherches je découvris que le capteur ne détectant rien avant six mètres renvoyait 0 en valeur et ma condition était codée de telles sorte que lorsque l’Arduino recevait une donnée inférieure à 200, la distance en centimètres, il déclenche le son. Il fallut donc opposer une paroie à moins de six mètres du capteur.

Sources et code Source

Pour de plus amples information sur l’Arduino Yun je vous invite à consulter cette article :

Pour savoir comment jouer des sons avec l’Arduino Yun je vous invite a consulter cette article : http://dev.mikamai.com/post/69775973742/arduino-yun-with-sound-the-supereasy-way

et  pour le code que j’ai rédigé le voici :

 
#include 
#include 

Process p;

void setup()
{
 Wire.begin();
 Serial.begin(57600); 
 Bridge.begin();
 
}

int reading = 0;

void loop()
{
 Wire.beginTransmission(112);
 Wire.write(byte(0x00)); 
 Wire.write(byte(0x51));
 Wire.endTransmission();
 delay(70);
 Wire.beginTransmission(112);
 Wire.write(byte(0x02));
 Wire.endTransmission();
 Wire.requestFrom(112, 2);
 if(2 <= Wire.available()) 
 {
 reading = Wire.read(); 
 reading = reading << 8; 
 reading |= Wire.read(); 
 }
 if (reading <= 200){
 p.runShellCommand("madplay -a +5 /root/01.mp3");
 while(p.running()); 
 Serial.println("it works!");
} 
}