Étape 3: Intégrer l’Arduino et traitement
Télécharger le schéma de traitement :
1) fermer le programme de compilateur d’arduino.
2) Télécharger le croquis de traitement https://www.dropbox.com/sh/hexeeougg5dulqz/PiA8Mb...
GitHub lien : https://www.dropbox.com/sh/hexeeougg5dulqz/PiA8Mb...
Ouvrez le code dans la transformation (UPanimation.pde)..."personalizedFunctions.pde" doit être dans le même dossier.
4) assurer l’Arduino est accroché via usb à votre ordinateur
5) faire en sorte que la ligne de traitement avec "myPort = nouvelle série (ce, Serial.list() [0], 9600);" est correct, où Serial.list() [0] est votre port série. Pour nous c’était habituellement 0, mais parfois il était 1. C’est le port qui parle à votre arduino. Vous obtiendrez une erreur si ce paramètre n’est pas configuré.
6) exécuter le croquis. Si tout va bien, chaque fois que vous touchez les fils nus, vous verrez des changements sur l’écran.
7) note la structure if-then-else du code de traitement. Vous pouvez modifier cela pour faire différentes fleurs de couleur RVB ou ajouter plus de seuils pour obtenir une plus grande étendue de couleurs...
collé le code :
/ *** par Ellen Keith, Yael Braha, Marc Roth, Tosh Chiang et Jasdeep Garcha SF UP Festival 2012 *** /
#include « pitches.h »
la mélodie d’audio int [] = {NOTE_E5, NOTE_B6} ; int melody2 [] = {NOTE_F5, NOTE_C6} ; int noteDurations [] = {8, 8, 2} ;
échantillonnage et io pairOne int = A0 ; int pairTwo = A1 ; int mené = 13 ; aOut int = 12 ;
le reste
int triggerThresh = 50 ; définit le déclencheur foroutput boolean stopMusic = true ; décompte à l’extérieur int = 0 ;
void setup() {//configures entrées et sorties
Serial.Begin(9600) ; pinMode (pairOne, entrée) ; pinMode (pairTwo, entrée) ; pinMode (led, sortie) ; sur l’arduino pinMode (aOut, sortie) ; }
void loop() {int handShakeReadFinal1 ; //for mutable int handShakeReadFinal2 ; analogReference(INTERNAL1V1) ; //command varie entre arduinos / / analogReference(INTERNAL); / / lecture de l’entrée sur la broche analogique 0 et 1: int handShakeRead1 = analogRead(pairOne) ; delay(10) ; //resample pin 0! int handShakeRead1b = analogRead(pairOne) ; int handShakeRead2 = analogRead(pairTwo) ; delay(10) ; //resample broche 1! int handShakeRead2b = analogRead(pairTwo) ;
valeur de la production que si les deux échantillons ont plus de seuil et non nul si (handShakeRead1 > triggerThresh et handShakeRead1b > triggerThresh) {handShakeReadFinal1 = handShakeRead1;} else {handShakeReadFinal1 = 0;}
Si (handShakeRead2 > triggerThresh et handShakeRead2b > triggerThresh) {handShakeReadFinal2 = handShakeRead2;} else {handShakeReadFinal2 = 0;}
imprimer les valeurs de port série Serial.print('A') ; Serial.println(handShakeReadFinal1) ; Serial.Print('B') ; Serial.println(handShakeReadFinal2) ;
Delay(50) ;
audio
Si (handShakeReadFinal1 > triggerThresh || handShakeReadFinal2 > triggerThresh) {digitalWrite (led, HIGH); si (stopMusic) {tune();}} else {décompte à l’extérieur = 0; stopMusic = true ; digitalWrite (led, faible); / / delay(1000);}}
void tune() {pour (int thisNote = 0; thisNote < 2; thisNote ++) {int noteDuration = 1000/noteDurations [thisNote]; ton (aOut, mélodie [thisNote], noteDuration); retard (noteDuration + 30);} stopMusic = false;}