Violano-Lilypad Arduino XBee instrument (4 / 6 steg)
Steg 4: Ansluta Lilypad med bearbetning
Innan du går vidare till trådlösa delen är det nödvändigt att ansluta Arduino med bearbetning. Bearbetning koden ges i slutet av detta avsnitt. Följ stegen nedan för att göra Arduino kommunicera med bearbetning.
[Test]
Börja med första provning genom att skicka siffror från Arduino till bearbetning.
1. [Arduino] skicka ASCII 0 ~ 255 till följetong.
void setup() {
Serial.BEGIN(9600);
}
byte i.
void loop() {
Serial.write(i++);
Delay(500);
}
2. Öppna seriell övervaka och kontrollera om nummer dyker upp på den seriella port bildskärmen. Se till att du stänger den seriella monitorn. Det är mycket viktigt att stänga seriell övervaka inlägget nummer kontrollen för att säkerställa att fel inte dyker upp.
3. [bearbetning] ta emot detta nummer formuläret bearbetning och visar på konsolen.
import processing.serial.*;
Seriella myPort;
int val;
void setup() {
storlek (200, 200);
Sträng portName = Serial.list() [2].
myPort = ny följetong (här, portName, 9600); }
void draw() {
om (myPort.available() > 0) {
Val = myPort.read();
println(val);
}}
a. det är viktigt att identifiera portnumret för bearbetning så börja genom att kontrollera portnumret.
b. du får fel när portnumret är felaktig. Använd bearbetning koden nedan för att kontrollera din portnummer.
import processing.serial.*;
Seriella myPort;
int val;
void setup() {
println(Serial.list());
}
void draw() {}
c. resultat exempel:
/ dev/cu. Bluetooth-Incoming-Port/dev/cu.usbmodem1421 /dev/tty. Bluetooth-inkommande-Port /dev/tty.usbmodem1421
d. Dessutom kontrollerar du seriell monitor. Det fungerar en i taget.
När du får numret från bearbetning, är det dags för dig att lägga till kod.
Önskat resultat:
Koden nedan är en remixad bearbetning kod som interaktivt drar en färg varierar med ljus värde bearbetning får. För att kontrollera ritningen med ljussensorn, bör det finnas viss mängd ljus. Om det finns för mycket eller för mindre ljus fungerar det inte.
Ursprungliga koden: http://www.openprocessing.org/sketch/132225
[Bearbetning code]
import processing.serial.*;
Seriella p;
int a;
float x = random (50, 650);
float y = random (50, 650);
flyta r = random(700);
flyta b = random(700);
flyta t = 0;
flyta xspeed = 2;
flyta yspeed = 2;
flyta xspeed2 = 2;
flyta yspeed2 = -2;
flyta xspeed3 = -2;
flyta yspeed3 = -2;
flyta xspeed4 = -2;
flyta yspeed4 = 2;
void setup() {
p = ny följetong (denna, Serial.list() [1], 9600); Läs följetong
storlek (700, 700);
Background(255);
frameRate(60);
}
void randomImgDraw() {
t = t + 1.
float m1=random(3);
float m2=random(3);
Fill(x/random(4),Random(255), y/3);
strokeWeight(0.2);
Storke(200);
om (t < = 140) {
xspeed = xspeed + m1*random(2); stora rects
yspeed = yspeed + m2*random(2);
rect (x + xspeed, y + yspeed, 10, 10);
xspeed2 = xspeed2 + m1*random(2);
yspeed2 = yspeed2 + m2*random(-2);
rect (x + xspeed2, y + yspeed2, 10, 10);
xspeed3 = xspeed3 + m1*random(-2);
yspeed3 = yspeed3 + m2*random(-2);
rect (x + xspeed3, y + yspeed3, 10, 10);
xspeed4 = xspeed4 + m1*random(-2);
yspeed4 = yspeed4 + m2*random(2);
rect (x + xspeed4, y + yspeed4, 10, 10);
Fill(r/random(4), random(255), b/3); medelstora rects
xspeed = xspeed2 + m1 * random (-4, 4);
yspeed = yspeed2 + m2 * random (-4, 4);
rect (x + xspeed2, y + yspeed2, 5, 5);
xspeed2 = xspeed3 + m1 * random (-4, 4);
yspeed2 = yspeed3 + m2 * random (-4, 4);
rect (x + xspeed3, y + yspeed3, 5, 5);
xspeed3 = xspeed4 + m1 * random (-4, 4);
yspeed3 = yspeed4 + m2 * random (-4, 4);
rect (x + xspeed4, y + yspeed4, 5, 5);
xspeed4 = xspeed + m1 * random (-4, 4);
yspeed4 = yspeed + m2 * random (-4, 4);
rect (x + xspeed, y + yspeed, 5, 5);
fyllning (x / random (4)-100, random (255)-80, y/3-80); små rects
xspeed = xspeed2 + m1 * random (-4, 4);
yspeed = yspeed2 + m2 * random (-4, 4);
rect (x + xspeed, y + yspeed, 2, 2);
xspeed2 = xspeed3 + m1 * random (-4, 4);
yspeed2 = yspeed3 + m2 * random (-4, 4);
rect (x + xspeed2, y + yspeed2, 2, 2);
xspeed3 = xspeed4 + m1 * random (-4, 4);
yspeed3 = yspeed4 + m2 * random (-4, 4);
rect (x + xspeed3, y + yspeed3, 2, 2);
xspeed4 = xspeed + m1 * random (-4, 4);
yspeed4 = yspeed + m2 * random (-4, 4);
rect (x + xspeed4, y + yspeed4, 2, 2);
xspeed = xspeed4 + m1 * random (-4, 4);
yspeed = yspeed4 + m2 * random (-4, 4);
rect (x + xspeed3, y + yspeed3, 2, 2);
xspeed2 = xspeed2 + m1 * random (-4, 4);
yspeed2 = yspeed2 + m2 * random (-4, 4);
rect (x + xspeed, y + yspeed, 2, 2);
xspeed3 = xspeed + m1 * random (-4, 4);
yspeed3 = yspeed + m2 * random (-4, 4);
rect (x + xspeed4, y + yspeed4, 2, 2);
xspeed4 = xspeed3 + m1 * random (-4, 4);
yspeed4 = yspeed3 + m2 * random (-4, 4);
rect (x + xspeed2, y + yspeed2, 2, 2);
fyllning (r/random (4)-80, random (255)-80, b/3-80). 2: a G små rects
xspeed = xspeed2 + m1 * random (-7, 7);
yspeed = yspeed2 + m2 * random (-7, 7);
rect (x + xspeed, y + yspeed, 2, 2);
xspeed2 = xspeed3 + m1 * random (-7, 7);
yspeed2 = yspeed3 + m2 * random (-7, 7);
rect (x + xspeed2, y + yspeed2, 2, 2);
xspeed3 = xspeed4 + m1 * random (-7, 7);
yspeed3 = yspeed4 + m2 * random (-7, 7);
rect (x + xspeed3, y + yspeed3, 2, 2);
xspeed4 = xspeed + m1 * random (-7, 7);
yspeed4 = yspeed + m2 * random (-7, 7);
rect (x + xspeed4, y + yspeed4, 2, 2);
xspeed = xspeed4 + m1 * random (-7, 7);
yspeed = yspeed4 + m2 * random (-7, 7);
rect (x + xspeed3, y + yspeed3, 2, 2);
xspeed2 = xspeed2 + m1 * random (-7, 7);
yspeed2 = yspeed2 + m2 * random (-7, 7);
rect (x + xspeed, y + yspeed, 2, 2);
xspeed3 = xspeed + m1 * random (-7, 7);
yspeed3 = yspeed + m2 * random (-7, 7);
rect (x + xspeed4, y + yspeed4, 2, 2);
xspeed4 = xspeed3 + m1 * random (-7, 7);
yspeed4 = yspeed3 + m2 * random (-7, 7);
rect (x + xspeed2, y + yspeed2, 2, 2);
}
om (t > 140) {
t = 0;
x = random (50, 650);
y = random (50, 650);
xspeed = 0;
yspeed = 0;
xspeed2 = 0;
yspeed2 = 0;
xspeed3 = 0;
yspeed3 = 0;
xspeed4 = 0;
yspeed4 = 0;
}
om ((x > width) || (x<0)) {
t = 0;
}
om ((y > height) || (y<0)) {
t = 0;
}
}
int th1 = 8 + 20.
int th2 = 180-20;
int lightValue;
void draw() {
IF(p.available() > 0) {
lightValue=p.read();
println(lightValue);
}
om (lightValue > th1 & & lightValue
om (mousePressed & & (musknapp == vänster)) {
backround(255);
}
}
[Arduino Code]
int myLed [] = {A2, A3, A4};
int ljud [] = {523, 539, 587}; C, D, E
int lightScope [] = {30,120,200,280}.
int jag = 0;
int sensor = A5;
int sPin = 9.
byte val; Spara variabel
int buzzerPin = 9;
int en = Serial.read();
void setup() {
Serial.BEGIN(9600);
för (jag = 0; jag < 3; i ++) {
pinMode (myLed [i], produktionen);
}
}
void loop() {
int sensorValue = analogRead(sensor/4);
Serial.write(sensorValue/4);
Delay(100);
om (sensorValue < 20) {/ / Tur alla LED av, om värdet är högre än 40
digitalWrite (myLed [i], låg);
}
annars om (sensorValue > lightScope [0], sensorValue < lightScope [1]) {
lightPin (myLed [0], 100);
tonen (buzzerPin, 523, 1000);
Delay(100);
Serial.println('0');
}
annars om (sensorValue > lightScope [1], sensorValue < lightScope[2]) {
lightPin (myLed [1], 100);
tonen (buzzerPin, 587, 1000);
Delay(100);
Serial.println('1');
}
annars om (sensorValue > lightScope [2], sensorValue < lightScope[3]) {
lightPin (myLed [2], 100);
tonen (buzzerPin, 659, 1000);
Delay(100);
Serial.println('2');
}
annat
{
Light();
}
}
void light() {
för (jag = 0; jag < 3; i ++) {
digitalWrite (myLed [i], låg);
Delay(100);
}
}
void lightPin (int ledPin, int ledDelay) {
digitalWrite (ledPin, hög);
Delay(ledDelay);
digitalWrite (ledPin, låg);
Delay(ledDelay);
}