Jag vill bara hålla din Hand - del 2 (3 / 5 steg)
Steg 3: Integrera Arduino och bearbetning
Hämta bearbetning skissen:
1) Stäng programmet arduino kompilator.
2) Hämta processing skiss https://www.dropbox.com/sh/hexeeougg5dulqz/PiA8Mb...
GitHub länk: https://www.dropbox.com/sh/hexeeougg5dulqz/PiA8Mb...
Öppna koden i bearbetning (UPanimation.pde)..."personalizedFunctions.pde" ska vara i samma mapp.
4) säkerställa Arduino är ansluten via usb till din dator
5) säkerställa att bearbetning raden med "myPort = ny följetong (denna, Serial.list() [0], 9600);" är korrekt, där Serial.list() [0] är den seriella porten. För oss var det vanligtvis var 0, men ibland det 1. Detta är den port som talar till din arduino. Du får ett felmeddelande om detta inte är konfigurerad.
6) kör skissen. Förhoppningsvis när du rör de blank trådarna, ser du ändringar på skärmen.
7) OBS bearbetning koden if-then-else struktur. Du kan redigera den och göra olika RGB färg Blom eller lägga till ytterligare tröskelvärden för att få en större spännvidd av färger...
inklistrade koden:
/ *** av Ellen Keith, Yael Braha, Marc Roth, Tosh Chiang och Jasdeep Garcha för SF upp festival 2012 *** /
#include "pitches.h"
ljud int melodi [] = {NOTE_E5 NOTE_B6}; int melody2 [] = {NOTE_F5 NOTE_C6}; int noteDurations [] = {8, 8, 2};
provtagning och io int pairOne = A0; int pairTwo = A1; int ledde = 13. int aOut = 12.
resten
int triggerThresh = 50; Anger den utlösande foroutput boolean stopMusic = sant; int countOut = 0;
void setup() {//configures in- och utgångar
Serial.BEGIN(9600); pinMode (pairOne, ingång); pinMode (pairTwo, ingång); pinMode ledde (, OUTPUT); på arduino pinMode (aOut, produktionen); }
void loop() {int handShakeReadFinal1; //for sista int handShakeReadFinal2; analogReference(INTERNAL1V1); //command varierar mellan arduinos / / analogReference(INTERNAL); / / läsa indata på analoga stift 0 och 1: int handShakeRead1 = analogRead(pairOne); delay(10); //resample pin 0! int handShakeRead1b = analogRead(pairOne); int handShakeRead2 = analogRead(pairTwo); delay(10); //resample stift 1! int handShakeRead2b = analogRead(pairTwo);
produktionen värde endast om båda proven är större än tröskelvärdet och noll om (handShakeRead1 > triggerThresh och handShakeRead1b > triggerThresh) {handShakeReadFinal1 = handShakeRead1;} annat {handShakeReadFinal1 = 0;}
om (handShakeRead2 > triggerThresh och handShakeRead2b > triggerThresh) {handShakeReadFinal2 = handShakeRead2;} annat {handShakeReadFinal2 = 0;}
skriva ut värden till seriell port Serial.print('A'); Serial.println(handShakeReadFinal1); Serial.Print('B'); Serial.println(handShakeReadFinal2);
Delay(50);
ljud
om (handShakeReadFinal1 > triggerThresh || handShakeReadFinal2 > triggerThresh) {digitalWrite (ledde, hög), om (stopMusic) {tune();}} annat {countOut = 0; stopMusic = true; digitalWrite (ledde, låg); / / delay(1000);}}
void tune() {för (int thisNote = 0; thisNote < 2; thisNote ++) {int noteDuration = 1000/noteDurations [thisNote], tonar (Aut, melodi [thisNote], noteDuration), fördröjning (noteDuration + 30);} stopMusic = false;}