Exemple de projet pour l’exercice Baby Jean Michel Jarre

Voici un exemple de l’exercice « Créer un baby Jean-Michel Jarre ».

Exemple pour l’exercice Baby Jean-Michel Jarre du Studio Objet Augmenté from Studio Objet Augmente on Vimeo.

Pour celui-ci sont utilisés comme composants:
– un arduino
– une led orange
– une led RGB
– deux ldr
– un haut-parleur

On utilise aussi la librairie Tone.

Une ldr controle la fréquence de la note envoyé au haut-parleur et la couleur de la led RGB, tandis que l’autre agit sur la rapidité de la note et la vitesse de clignotement de la led orange.

Pour le montage, on branche les deux ldr comme des capteurs sur deux pins analogues de l’arduino. Le haut-parleur est branché sur la pin 11, pin digital mais pwm, car les données qu’ont lui envoie ne sont pas binaires mais varient entre 0 et 255. Enfin, les leds sont l’une en 13 car elle ne fait que clignoter (digital, 0 ou 1)  et deux pattes de la led RGB en pin digital pwm 6 et 5 pour les mêmes raisons que le haut-parleur.

Pour le code:

On commence par appeler la librairie Tone, ensuite on déclare les variables et les pins que l’on va utiliser dans le code.

Dans le setup, on déclare l’état des pins (si elles reçoivent ou émettent des informations). Le protocole de communication entre les l’arduino et l’ordinateur qui nous permettra de lire les valeurs des capteurs. Et on assigne la note qu’on va jouer au haut-parleur en pin 11.

On lit les valeurs des capteurs en analogue, on les adapte aux valeurs du code et on imprime les valeurs dans le serial moniteur. Généralement, on utilise la fonction map() mais on peut aussi plus simplement multiplier ou diviser la valeur directement, comme ici où la valuer de captValue1 est divisé par 4.
Voir ici les différents signes mathématiques que l’on peut utiliser dans un code arduino:
http://www.arduino.cc/en/Reference/Arithmetic

La note est équivalent à la valeur du capteur 2 et est ensuite joué sur le haut-parleur avec une vitesse correspondante au capteur 1.

On utilise la valeur du capteur 1  pour définir un delay de blink de la led orange, cette valeur est divisé par 2 car sinon elle serait trop importante.

Et pour finir la valeur du capteur 2 maper est utilisée pour allumer le vert proportionnellement et éteindre le bleu proportionnellement aussi.

Voici le code commenté ici: ExampleBabyJMJ