Dzisiaj postanowiłem zgłębić tajniki środowiska Processing. Warto się mu przyjrzeć przy poznawaniu Arduino. Razem mogą stanowić ciekawe połączenie. Najnowszą wersję Processing 1.0.9 można pobrać tu. Po rozpakowaniu (nie wymaga instalacji) i uruchomieniu naszym oczom ukazuje się środowisko bardzo podobne do Arduino IDE.
Postanowiłem na początek zmodyfikować przykładową aplikację mouse1D, która będzie korzystała z potencjometru podłączonego do Arduino. Poniżej schemat stworzony w Eagle 5.7.0 z wykorzystaniem biblioteki pobranej tu.
Kod Arduino:
int sensorPin = 0;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue,DEC);
delay(500);
}
Kod Processing:
import processing.serial.*;
Serial port;
int val;
int val2;
int gx = 15;
int gy = 35;
float leftColor = 1.0;
float rightColor = 0.0;
void setup() {
println(Serial.list());
port = new Serial(this, Serial.list()[2], 9600);
size(200, 200);
colorMode(RGB, 1.0);
noStroke();
}
void draw() {
background(0.0);
while (port.available() >= 3) {
if (port.read() == 0xff) {
val = (port.read() << 8) | (port.read());
}
}
val2 = val / 5;
update(val2);
fill(0.0, leftColor + 0.4, leftColor + 0.6);
rect(width/4-gx, width/2-gx, gx*2, gx*2);
fill(0.0, rightColor + 0.2, rightColor + 0.4);
rect(width/1.33-gy, width/2-gy, gy*2, gy*2);
}
void update(int x) {
leftColor = -0.002 * x/2 + 0.06;
rightColor = 0.002 * x/2 + 0.06;
gx = x/2;
gy = 100-x/2;
if (gx < 10) {
gx = 10;
} else if (gx > 90) {
gx = 90;
}
if (gy > 90) {
gy = 90;
} else if (gy < 10) {
gy = 10;
}
}




Komentarze
Prześlij komentarz