Drawdio, Drawdino : Faire « bip bip » avec un crayon papier, et un Arduino

Le Drawdio est un crayon fort énervant, qui fait bip bip quand on écrit avec.

Fait étonnant, le MIT (Massachusetts Institute of Technology) a participé au développement du projet

A l’origine, le montage se fait avec la fameuse NE555 (petit timer très pratique avec lequel on peut quasiment tout faire), puis est arrivé sous la forme d’un Kit une version avec la TLC551 (cousine de la NE555, à la différence que celle-ci est moins gourmande et ne nécessite que 1.5 Volts pour fonctionner, contre 4.5 Volts pour la NE555) où l’ensemble du circuit, pile comprise, tient sur un stylo (La version actuelle disponible chez Ladyada est au passage très bien conçue, tout tient sur le crayon et l’ensemble est de qualité) .

Pour ceux qui sont en région Parisienne, nous allons faire des ateliers de construction de Drawdio (avec les Kits de Ladyada), à la Médiathèque des Ulis pour leur Festival les Fabriques Numériques, les :

29 Février 2012
03 Mars 2012
07 Mars 2012
10 Mars 2012

Pour l’atelier du 18 Février à la Maison Populaire (Montreuil), consacré aux Drawdio et à ses différentes versions et réflexions, nous avons du adapter le Drawdio pour l’Arduino, sans code à rallonge trop complexe.

La version disponible sur Internet : http://www.semageek.com/drawduino-fabriquer-le-drawdio-de-celestin-avec-un-arduino/ nous a un peu laissé sur notre fin, dans le sens où le programme est complexe à comprendre, fait appel à des librairies tierces de l’Arduino et le son trop loin de l’esprit original du projet.
On a donc voulu retrouver l’esprit du Drawdio, retrouver ce bruit énervant, cette onde carré qui tape sur les nerfs, et surtout être capable de faire passer l’électricité dans notre corps comme avec le Drawdio original.

Nous sommes arrivés à un premier résultat, en modifiant (à peine) un des exemples du logiciel de l’Arduino

 

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

void loop() {
int sensorReading = analogRead(A0);
Serial.println(sensorReading);
}

int thisPitch = map(sensorReading, 20, 60, 220, 350);
if (sensorReading>=1) {tone(9, thisPitch, 10 );
}

Téléchargez le code complet du Drawdino Simple

Puis, nous avons voulu trouver le moyen de faire passer l’électricité dans notre corps, et pourquoi pas avoir la possibilité de modifier avec un interrupteur les sonorités possibles, qui a donné ceci :

const int buttonPin = 2;

int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
int duration = 0;

void setup() {

pinMode(buttonPin, INPUT);

Serial.begin(9600);
}

void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;

Serial.println(« on »);
Serial.print(« number of button pushes: « );
Serial.println(buttonPushCounter);
}
else {
Serial.println(« off »);
}
}

lastButtonState = buttonState;

if(buttonPushCounter==3) {
(duration = 10);
}
else if(buttonPushCounter==4) {
(duration=100);
}
else if (buttonPushCounter==5) {
(duration=200);
}
else{(duration = buttonPushCounter+1);}

if (buttonPushCounter > 5) {(buttonPushCounter=0);}
int sensorReading = analogRead(A0);

int thisPitch = map(sensorReading, 300, 400, 600, 800);
if (sensorReading>=200) {tone(9, thisPitch, duration);
}
Serial.println(duration);

}

Télécharger le code complet du Body Drawdino

Le résultat est au final proche de la version « analogique » et si vous savez utiliser Pure Data ou Max MSP vous pouvez vous amuser à contrôler du son ou des vidéos.

C’était notre premier essai sur Arduino, et avec un peu de recherche et quelques tatonnements nous y sommes arrivés, alors pourquoi pas vous !

 

One comment

  1. Excellent !

    Je suis celui qui a inventé le drawduino. A l’époque c’était pas vraiment un gros projet, je l’ai finalisé en 1h, mais quand j’y repense, vous avez réussis là ou j’ai échoué !
    J’avais testé le fait de passer le courant à travers le corps, mais le courant était trop faible pour être exploité. Je ne pensais pas à exploiter le capacitif de l’arduino.

Laisser un commentaire

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