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