Stap 5: De programma's instellen
Sluit de Arduino op uw computer (een verbinding zelfs ik aankan!) en upload de onderstaande code met het label "ARDUINO". Open van Processing en voer de onderstaande code met het label "Verwerking".ARDUINO CODE:
=====================
www.plusea.at
analoge ingang leest van de vijf ingangen van uw arduino board
en stuurt het via seriële
/ variabelen voor input pinnen en
int analogInput0 = 0;
int analogInput1 = 1;
int analogInput2 = 2;
int analogInput3 = 3;
int analogInput4 = 4;
int analogInput5 = 5;
variabele de waarde op te slaan
int value0 = 0;
int waarde1 = 0;
int waarde2 = 0;
int Waarde3 = 0;
int Waarde4 = 0;
int value5 = 0;
VOID Setup {}
verklaring van pin modi
pinMode (analogInput0, INPUT);
pinMode (analogInput1, INPUT);
pinMode (analogInput2, INPUT);
pinMode (analogInput3, INPUT);
pinMode (analogInput4, INPUT);
pinMode (analogInput5, INPUT);
beginnen met het verzenden via seriële poort
Serial.begin(9600);
} / / einde van setup
void loop {}
luiden naar de waarde op de analoge ingang
value0 = analogRead(analogInput0);
waarde1 = analogRead(analogInput1);
waarde2 = analogRead(analogInput2);
Waarde3 = analogRead(analogInput3);
Waarde4 = analogRead(analogInput4);
value5 = analogRead(analogInput5);
waarde uitprinten via de seriële poort
Serial.Print (1 BYTE); voorvoegsel
Serial.Print(value0);
Serial.Print (10, BYTE); einde signaal
Serial.Print (2, BYTE);
Serial.Print(Value1);
Serial.Print (10, BYTE);
Serial.Print (3 bytes);
Serial.Print(Value2);
Serial.Print (10, BYTE);
Serial.Print (4 BYTE);
Serial.Print(value3);
Serial.Print (10, BYTE);
Serial.Print (5, BYTE);
Serial.Print(value4);
Serial.Print (10, BYTE);
Serial.Print (6, BYTE);
Serial.Print(value5);
Serial.Print (10, BYTE);
wachten op een beetje om de poort niet te veel
delay(100);
} / / einde lus
VERWERKING CODE:
=====================
/*
* Gebaseerd op code door Hannah Perner-Wilson, www.plusea.at
* Gewijzigd door Sam Kronick www.newuntitledpage.com
*/
importeren van processing.serial.*;
definitie van de venstergrootte
u kunt de grootte van het venster als u nodig hebt
de thresholdGraph zal worden aangepast aan
de optimale grootte voor de thresholdGraph is 1000 x 400
int xWidth = 800;
int yHeight = 600;
Huidige waarden
int [] waarden = {0,0,0,0,0,0};
Tijd-gemiddelde waarden
int [] avgCounter = {0,0,0,0,0,0};
int [] avgs = {0,0,0,0,0,0};
statische definitieve int INTERVAL = 5;
Nul dwingen waarden, gewijzigd op de SPATIEBALK drukt
int [] nullen = {0,0,0,0,0,0};
variabelen voor seriële verbinding. portname en baudrate zijn specifieke gebruiker
Seriële port1;
Stel uw seriële poort hier (zie lijst afgedrukt wanneer u de toepassing opnieuw uitvoert)
String V3 = Serial.list() [0];
Portname1 koord = V3;
int baudrate = 9600;
int prefix = 1;
Booleaanse myCatch = true;
int serialIN = 0;
int serialINPUT = 0;
Tekenreeksbuffer = "";
int waarde = 0;
VOID Setup {}
instellen van de grootte en de framerate
grootte (xWidth, yHeight);
frameRate(25);
Background(255);
strokeWeight(5);
Stroke(0);
Smooth();
colorMode(HSB);
verbinding maken met seriële poort
port1 = nieuwe Serial (, portname1, baudrate);
println(Serial.List()); seriële afdruklijst
} //end setup
ongeldig keyPressed() {}
Als (sleutel == ' ') {}
for (int i = 0; ik nullen [i] = avgs [i];
}
}
}
loting luistert naar seriële poort, trekken
VOID draw() {}
Background(255);
Luister naar seriële poort en trigger seriële gebeurtenis
while(port1.available() > 0) {}
serialIN = port1.read();
serialEvent(serialIN);
}
for (int i = 0; ik < 4; i ++) {}
Als (frameCount % INTERVAL > 0) {}
avgCounter [i] += waarden [i];
}
else {}
AVGs [i] = avgCounter [i] / INTERVAL;
avgCounter [i] = 0;
}
Als (avgs [i] - nullen [i] < 0)
vulling (0, 20 *-(avgs [i] - zeros[i]), 250);
anders
vulling (100, 20 * (avgs [i] - zeros[i]), 250);
rect (breedte/2, hoogte/4 * i, 10*(avgs[i]-zeros[i]), hoogte/4);
}
}
VOID serialEvent (int serialINPUT) {}
if(myCatch == True) {}
Als (serialINPUT! = 10) {}
gebeurtenis toevoegen aan buffer
buffer += char(serialINPUT);
println(serialINPUT);
}
else {}
als seriële ligt regeleinde waarde voor waarde buffer en buffer leeg
waarde = int(buffer);
values[(prefix-1)] = waarde;
myCatch = false;
buffer = "";
}
}
myCatch is de beginging van de elk gestuurd nummer gebruikt om te definiëren van de poort
myCatch krijgt true als seriële is minder dan 10 omdat kop 1-9
Als (! myCatch & & serialINPUT < 10) {}
myCatch = true;
voorvoegsel = int(serialINPUT);
}
}