Ti posto un pò di codice preso dall'ottimo testo Programming Intereactivity della O'Reilly.
Questa parte riguarda arduino e invia dei messaggi alla porta seriale se il pin digitale 13 riporta un valore HIGH.
int buttonPin = 13;
void setup()
{
// 9600 sono i bps con i quali si vuole lavorare
Serial.begin(9600);
}
void loop()
{
if(digitalRead(buttonPin) == HIGH) {
Serial.print("1");
} else {
Serial.print("0");
}
delay(200);
}
questo invece è processing, si mette in ascolto sulla porta e printa i dati che riceve:
import processing.serial.*;
Serial arduinoPort;
void setup()
{
arduinoPort = new Serial(this, Serial.list()[0], 9600);
}
void draw()
{
byte[] inBuffer = new byte[7];
while(arduinoPort.available() > 0) {
inBuffer = arduinoPort.readBytes();
arduinoPort.readBytes(inBuffer);
if(inBuffer != null) {
String myString = new String(inBuffer);
println(myString);
}
}
}