Auteur(s)
Damien Bauza, Merlin Andreae
Intentions / Contexte
1 – Afin d’exposer les travaux du studio à la MAC, sous la thématique du flip flop, nous allons concevoir un camion.
Placé sur une grande surface de papier, il va se déplacer aléatoirement. L’idée est qu’il réagira aux sons ambiants, traçant un trait de couleur pour chaque fréquence captée. Au fur et à mesure de l’exposition, la fresque sonore de l’événement se constitue.
2 – Le principe a évolué en fonction des contraintes techniques et matérielles. La partie motrice sur roue a été remplacée par les feutres eux-mêmes qui deviennent les pattes du traceur de son.
Principe de Fonctionnement
1 – Un micro capte les sons ambiants, ces sons sont rangés dans une fourchette de quatre champ de fréquence, 4 feutres sont associés à chaque champ et se baissent ou se lèvent si la bonne fréquence est captée, grâce à des cerveaux moteurs. Le tout est monté sur un chariot à quatre roues dont deux motrices, les moteurs changent de vitesse en alternance pour créer un déplacement aléatoire.
2 – Un micro disposé sur le « dos » de la machine capte le volume du son ambiant, quatre servo-moteurs réagissent donc au son et s’actionnent plus ou moins en fonction du volume. À chaque moteur un feutre est fixé. Le traceur se déplace aléatoirement lorsqu’on siffle ou parle à proximité, tout en créant des formes sur son passage.
Illustration / Schéma
1 –
2 –
Traceur de son automobile (prototype) from Studio Objet Augmente on Vimeo.
Traceur de son automobile from Studio Objet Augmente on Vimeo.
Code Arduino
Le code utilisé se base sur le croquis Knob conçu pour contrôler un ou des moteurs via un potentiomètre :
/*
Controlling a servo position using a potentiometer (variable resistor)
by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
modified on 8 Nov 2013
by Scott Fitzgerald
http://arduino.cc/en/Tutorial/Knob
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
Serial.begin(9600);
}
void loop()
{ Serial.print(val + ‘\n’ );
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 330, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}