arduino e processing non vogliono comunicare

ciao a tutti,
è da un pò di tempo che smanetto tra processing e arduino per farli comunicare, ma fin'ora non sono riuscito a concludere nulla.. ora ho ripreso a picchiarmici e un problema l'ho risolto. Facendo l'upgrade a processing 2.0b7 è scomparso il warning della libreria RXTX (già un passo avanti).
Ora errori non ne spuntano da nessuna delle due parti, ma il tutto continua a non funzionare.
Stò provando lo sketch del bottone (in processing si chiama "simpleRead").

versione di arduino 1.0.1
uso arduino uno
S.O. ubuntu 12.04.1

codice lato arduino

int switchPin = 4;                       // Switch connected to pin 4

void setup() {
  pinMode(switchPin, INPUT);             // Set pin 0 as an input
  Serial.begin(9600);                    // Start serial communication at 9600 bps
}

void loop() {
  if (digitalRead(switchPin) == HIGH)
  {  // If switch is ON,
    Serial.print(1, BYTE);               // send 1 to Processing
  } else {                               // If the switch is not ON,
    Serial.print(0, BYTE);               // send 0 to Processing
  }
  delay(100);                            // Wait 100 milliseconds
}

codice lato processing

import processing.serial.*;

Serial myPort;  // Create object from Serial class
int val;      // Data received from the serial port

void setup() 
{
  size(200, 200);
  // I know that the first port in the serial list on my mac
  // is always my  FTDI adaptor, so I open Serial.list()[0].
  // On Windows machines, this generally opens COM1.
  // Open whatever port is the one you're using.
//  String portName = "ttyACM0";/*Serial.list()[0];*/
  myPort = new Serial(this, "ttyACM0"/*portName*/,9600);
}

void draw()
{
  if ( myPort.available() > 0) {  // If data is available,
    val = myPort.read();         // read it and store it in val
  }
  background(255);             // Set background to white
  if (val == 0) {              // If the serial value is 0,
    fill(0);                   // set fill to black
  } 
  else {                       // If the serial value is not 0,
    fill(204);                 // set fill to light gray
  }
  rect(50, 50, 100, 100);
}

qualche anima pia che mi viene in aiuto??

La versione dell'IDE 1.0.1 ha un bug sul serial monitor a meno di non lavorare con la lingua inglese.
Scarica la più recente (1.0.3) --> http://arduino.cc/en/Main/Software così siamo sicuri che almeno il Serial Monitor funzioni. :wink:

inoltre processing ha il rpoblema rxtxserial, cosi' come lo ha l'ide arduinica.
ci sono casini su questo fronte, io riesco a non avere problemi tenendomi su 1.5 processing e 1.5 arduino come versioni, il che significa la vecchia processing e la nuova arduino

questo su win7, ubuntu non so, non ho rpovato. tu puoi rpovare su win7 ?

grazie per le tempestive risposte, allora:
PaoloP grazie per la dritta sulla versione dell'IDE arduino proverò prima a muovermi nella versione in inglese per vedere se cambia qualcosa, in caso contrario aggiorno l'IDE e riprovo.
per Testato, purtroppo non ho win7 ma il terribile vista, e proprio per questo non volevo abbandonare il buon linux.. se i suggerimenti di PaoloP non funzionassero proverò con vista e ti farò sapere..
ora mi ci metto

allora l'aggiornamento dell'IDE arduino non ha portato a miglioramenti, inoltre vi chiedo:

  • perchè mi da problemi qui -> Serial.print(1, BYTE); mi dice che BYTE non è dichiarato giustamente..
  • e poi ho modificato il secondo parametro new Serial(this, "ttyACM0",9600); è corretto?

ora provo a scaricare la versione 1.5 di processing

Si, hanno modificato il print e il write dalla versione 1.0 in poi. (parlo dell'IDE di Arduino)
--> Serial.print() - Arduino Reference

Per mandare un singolo byte usa serial.write()
--> Serial.write() - Arduino Reference

allora ho modificato Serial.print(1, BYTE); con Serial.write(1); ma non funziona comunque.. ho provato tutte le combinazioni IDE arduino e IDE processing ma niente cambiamenti.
inoltre ho notato che quanto apro il serial monitor arduino il led TX lampeggia ma non mostra nulla (con serial.print invece si ma direi che è corretto), mentre invece quando avvio processing il led TX rimane fisso.

se a nessuno viene in mente nulla, potete passarmi una qualche guida su come fare utilizzando la comunicazione seriale?

Ciao jas1989,
con Processing e Linux, la seriale devi inserirla con path completo.
Quindi:

...
myPort = new Serial(this, "/dev/ttyACM0",9600);
...

grazie mille pitusso!! alla fine ci sono riuscito il problema era proprio quello.. modificando quel parametro usando processing 2.0b7 e arduino 1.5.2 funziona tutto!! grazie mille!
grazie anche agli altri!

ottimo grazie del feedback.
inoltre visto che stai usando le versioni piu' nuove di entrambi i sw ti garantisci un bel vantaggio per le prossime release, perche' i tuoi codici saranno compatibili sicuramente.

con Processing e Linux, la seriale devi inserirla con path completo.

... vale per versioni vecchie e nuove.