Atelier pratique : capter et mesurer une intensité sonore

L’Atelier, FabLab en devenir a vu le jour il y a tout juste un mois… L’heure est à un premier point d’étape après un lancement tout en douceur. La fréquence de ces billets n’est pas encore déterminée même si il est probable qu’il s’agisse d’une feuille de route mensuelle. Concernant le format, la première partie sera consacrée à un résumé des activités qui ont eu lieu durant le mois, la seconde partie, plus technique, détaillera la procédure à effectuer en vue d’accomplir une tâche spécifique avec le matériel mis à disposition.

Activités

Mardi 22 janvier 2013
Séance consacrée aux concepts fondamentaux de la programmation illustrés grâce à l’utilisation de la plateforme Arduino et quelques LEDs. Nous avons également échangé sur les attentes et projets de chacun concernant ces sessions. Deux thématiques ont été mentionnées : les objets communicants et la photographie.

Mardi 29 janvier 2013
Présentation de 3 projets :

  • Light Painting interactif. En fonction du volume sonore d’un endroit, il serait question de représenter ce dernier grâce à l’utilisation d’une bande de LEDs. Le mouvement de cette bande dans l’espace formerait une onde représentative de l’intensité sonore mesurée

  • Lampe interactive : Cette lampe aurait pour objectif de s’actionner lors de la tombée du jour. De même, dans le cas où celle-ci serait située en intérieur plutôt qu’en extérieur, elle basculerait automatiquement sur un mode permettant de l’activer en fonction de la présence d’un individu dans la pièce. Il serait également question de munir cette lampe de différents capteurs (présence, son, luminosité…) et d’envoyer les données sur COSM permettant ainsi le monitoring de l’activité de l’endroit où se situe la lampe. (réf artistique : Alain Bublex Etre utile (quotidiennement) 2012 : lien

  • Scratch-machine tactile : récupération de touchpad d’ordinateur obsolètes afin de réaliser un dispositif permettant de reproduire l’action musicale du “scratching”.

En vue de réaliser ces projets, certains composants électroniques basiques tels que les photo-résistances, potentiomètres, interrupteurs, capteurs piezo ont été présentés aux étudiants. Il en va de même concernant une brève introduction sur l’utilité du Raspberry Pi en tant que dispositif interactif ou micro-ordinateur utile par exemple dans la réalisation d’une installation artistique “low-cost”, non pas dans les fonctionnalités mais dans le coût de celle-ci. A titre d’exemple, l’installation « Voyage » (visible ici) a été réalisée à l’aide de Raspberry Pi et d’Arduino.

Mardi 5 février 2013

  • Comment capter, mesurer et exploiter une intensité sonore avec Arduino (voir tutoriel ci-dessous)

  • Câbler et lire un potentiomètre

  • Présentation d’outils pour le mapping vidéo (MWServerSE, Syphon)

Mardi 12 février 2013
Atelier d’initiation à Processing. Introduction aux possibilités offertes par ce langage en terme de « creative coding ». Initiation à l’IDE (Integrated Development Environement) et aux fonctionnalités de base : structure d’un sketch P5, définition de la taille, paramètres de couleurs et de formes, déclaration de variables… Afin de s’exercer, j’ai proposé aux étudiants un exercice simple consistant à reproduire un Mondrian.

Tutoriel : Capter, mesurer et exploiter une intensité sonore avec Arduino

Montages électroniques

Il existe plusieurs manières pour mesurer l’intensité sonore d’un endroit avec Arduino. La plus simple étant de se munir de l’excellente Breakout Board for Electret Microphone de chez Sparkfun :

electret_breakout

On peut aussi reproduire un montage de ce type sur une breadboard. Je vous renvoie d’ailleurs vers les très bonnes explications de Dimitar Kovachev qui a écrit un article utilisant un amplificateur opérationnel LM386 pour amplifier le signal du microphone electret. J’ai eu l’occasion de faire ce montage avant d’acquérir la breakout board de chez Sparkfun, le résultat ressemble à ceci (les LEDs en moins) :

electret_lm386

 

Suivant le montage que vous aurez choisi, il convient maintenant de l’alimenter avec du 5V, le relier au GND et lire la valeur sur le pin A5.

Programme Arduino

Les pins analogiques de l’Arduino renvoient un nombre entier compris entre 0 et 1023. Lorsque l’endroit est silencieux, la valeur lue sur un de ces pins doit être théoriquement de 512. En revanche, lors d’une activité sonore plus importante, les valeurs analogiques s’échelonnent par exemple entre 200 à 1000. Ces données ne sont pas exploitables en l’état. Il est donc nécessaire de mesurer l’écart entre ces deux valeurs.


const int analogPin = A5;
int delta = 0;

void setup() {
Serial.begin(9600);
}

void loop() {

int mn = 1024;
int mx = 0;

// On effectue 500 mesures en updatant à chaque fois le min et le max
for (int i = 0; i < 500; ++i) {
int val = analogRead(analogPin);
mn = min(mn, val);
mx = max(mx, val);
}

// Envoi les valeurs min, max et delta sur le port série
Serial.print("Min=");
Serial.print(mn);
Serial.print(" Max=");
Serial.print(mx);
Serial.print(" D=");
Serial.print(mx-mn);
Serial.println();

delta = map(mx-mn, 0, 1024, 0, 255);
Serial.println(delta);

}

Plus le delta est grand, plus l’intensité sonore est importante. Il est par exemple possible de mapper cette valeur suivant les différents applications souhaitées…


mapDelta = map(delta, 0, 1023, 0, 10); // Renvoie une valeur comprise entre 0 et 10

Source de l’article original


Une réflexion sur « Atelier pratique : capter et mesurer une intensité sonore »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *