Un punching-ball qui crie = (Interface + Capteurs + Sons).

Pour expérimenter les piezos, je livre ici une proposition d’installation qui pourra être décliné, amélioré, etc. Je propose « Le punching-ball qui crie », voici le principe du dispositif:

• Un punching-ball est accroché dans une pièce. Ce sera notre interface.
• Lorsqu’on tape le punching-ball, surgit différents sons. Il y a des capteurs cachés dans le punching-ball. Cela pourrait être des piezos, ou des capteurs de tension/torsion. À essayer/expérimenter selon les moyens…
• Il y a donc des enceintes, cachées ou non, dans le dispositif, dans la pièce, voire dans le punching-ball.
• Évidemment, il y aura des fichiers sonores qu’on aura préalablement enregistrés et normalisés.

Pour réaliser ceci je vais utiliser Arduino + Processing + VLC.

Pourquoi VLC? Bien qu’on peut importer et faire jouer du son dans Processing, ce sera l’occasion pour moi ici de montrer que Processing permet d’interfacer pas mal de choses entre elles, par exemple ouvrir des logiciels, envoyer des données dans un autre programme etc. Pour cela j’utilise à l’intérieur de Processing des « lignes de commandes ». Sous Mac ou Linux uniquement. Ci-dessous, un terminal, le lieu par excellence où on entre des lignes de commande. Pour l’instant il n’est pas question de l’utiliser, mais c’est bon de savoir que ça existe.

Ici l’intérêt d’utiliser VLC en plus est moindre, mais moins on donnera de chose à faire à Processing (par exemple en donnant le travail de la lecture du son à VLC) plus notre programme sera robuste. Dans le cadre d’une installation, on a besoin d’un programme qui peut tourner des heures sans que l’ordinateur nous laisse tomber. Optimisation je vous dis. Mais il n’y a pas qu’une seule façon de faire, tout est une question de choix, bon sang.

Premièrement on va récupérer les informations des capteurs, ici un piezo. On va pas se fouler: on va utiliser Firmata, une bibliothèque Arduino qui va nous dispenser de programmer notre chère petite carte électronique.

On branche notre carte avec un câble USB et on envoie le programme « Firmata ». Arduino > Fichier > Exemples > Firmata > StandardFirmata. Voilà, il ne reste plus qu’a brancher des capteurs dessus et récupérer puis traiter les données sur Processing avec la librairie « Arduino Firmata » qui va grandement nous faciliter la tâche.

http://playground.arduino.cc/Interfacing/Processing

import processing.serial.*;
import cc.arduino.*;

Arduino arduino;
int ledPin = 13;

void setup()
{
  //println(Arduino.list());
  arduino = new Arduino(this, Arduino.list()[4], 57600);
  for(int i = 0; i < Arduino.list().length; i++){
    println(i + "  " + Arduino.list()[i]);
  }
  
}

void draw(){
  println(arduino.analogRead(0));
  if(arduino.analogRead(0) >= 2){
    jouerSon();
  }
}

void jouerSon() {
  String[] params = {"open", "-a", 
  "/Applications/VLC.app/Contents/MacOS/VLC", 
  "Documents/Processing3/verifArduino2/data/0.wav"};
  exec(params);
  println("oo");
}

Voilà, à chaque pic de violence, un son est joué ! Il ne reste plus qu’à souder les capteurs, les mettre dans le punching ball, ajuster les seuils, les résistances, multiplier les sons, choix aléatoire des sources sonores, etc. Enfin si les essais ont été convaincants, et que ça mérite de sortir l’étain.

Note sur « la » méthode à privilégier.
Il n’y a pas une seule façon de faire. Il y a de nombreux langages (Python, le C++, Java/Processing…), et des nombreux logiciels. Par exemple, le duo Arduino + Python aurait été parfait pour cette simple installation…

Oui et les câbles, l’ordinateur et son écran, on en fait quoi?

Excellente question je vous remercie de me l’avoir posé. Effectivement, il y a du câble. Du piezo jusqu’à la carte Arduino, et un câble USB de la carte à l’ordinateur (qui pourrait avoir un écran qui ne sert à rien dans l’install).

Pour des petits installations comme celle-ci, on peut utiliser des micros ordinateurs qui ne coûtent que 40-45€, des « Raspberry Pi », notamment le « Pi Zéro » qui est vraiment tout rikiki et pas cher (~10€) (presque de la même taille qu’un ticket de métro et moins cher qu’un carnet de 10). [À l’école] il y a également des « Mac mini », des ordinateurs ou l’on peut brancher/débrancher des écrans. Bien protégés, ces ordinateurs peuvent être facilement dissimulés dans un dispositif. Pour le câble usb qui relie la carte et l’ordinateur, on peut également s’en passer. On peut envoyer les informations reçues par la carte via bluetooth vers notre programme Processing. Pour l’alimentation, une pile 9V et un clip feront l’affaire.

Attention, je ne sais pas si c’est toujours d’actualité, mais l’envoi de données en bluetooth avec Firmata, c’est foireux. Il faudra passer par la lecture d’un port série via Processing.serial.