Porta seriale con Processing su Ubuntu 10.04

Ciao a tutti
vorrei usare processing su ubuntu 10.04
ma quando devo configurare la porta seriale non sò cosa devo inserire in String portName = Serial.list()[che cosa devo scrivere???];

per caricare i programmi su arduino utilizzo tool --> serial port -->/dev/ttyACM0 e funziona tutto correttamente

se nelle [] inserisco /dev/ttyACM0 oppure '/dev/ttyACM0' oppure ACM0 mi da sempre errore

import processing.serial.*;
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
void setup()
{
size(200, 200);
String portName = Serial.list()[0]; //
myPort = new Serial(this, portName, 9600);
}

Qualcuno può aiutarmi?

Grazie mille

Paolc,
alla variabile portName viene assegnata la prima posizione dell'array Serial.list().
Quindi, se vuoi definire una porta seriale in specifico, puoi farlo assegnadola direttamente alla variabile portName, così (la mia porta seriale Arduino è /dev/ttyUSB0):

//String portName = Serial.list()[0];
String portName = "/dev/ttyUSB0";

Ti consiglio un'infarinata minima di linguaggio di programmazione, che risulta molto utile per superare questi casi.
Se Processing è lo strumento che vuoi usare, puoi partire da Java (su cui è basato).

Ciao, grazie per aver risposto....
purtroppo è poco che uso ubuntu...con windows non avevo incontrato questo problema proverò a fare come indichi tu.........

ho fatto un attimo di confusione perchè
da terminale ho scritto:

:~$ cd /dev
i:/dev$ ls | grep tty

ed in tutta la lista che è apparsa non è mai stata citata ttyUSB0

quindi il problema non è nella programmazione ma nell'identificare correttamente la porta corretta...

Grazie

Ciao,
su linux (come su windows, se prima lo utilizzavi) per aiutarti ad identificare la porta seriale, puoi usare l'IDE Arduino:

per caricare i programmi su arduino utilizzo tool --> serial port -->/dev/ttyACM0 e funziona tutto correttamente

Attenzione che /dev/ttyUSB0 è la MIA porta seriale Arduino, non è detto che tu abbia la stessa.

Ciao

per caricare i programmi su arduino utilizzo tool --> serial port -->/dev/ttyACM0 e funziona tutto correttamente

Ho provato come tu hai suggerito
import processing.serial.*;

Serial myPort; // Create object from Serial class

void setup()
{

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

}

ma ancora ho problemi!!!
non riesco a capire dov'è il problema ed ormai ho finito anche le idee

Altri uggerimenti?

Ciao,
puoi postare gli errori che vengono generati nenll'IDE Processing?

Questi sono gli errori escono nel momento in cui il mouse è sul quadrato

Stable Library

Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
java.lang.NullPointerException
at processing.serial.Serial.write(Unknown Source)
at processing.serial.Serial.write(Unknown Source)
at sketch_jan12f.draw(sketch_jan12f.java:46)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
java.lang.NullPointerException
at processing.serial.Serial.write(Unknown Source)
at processing.serial.Serial.write(Unknown Source)
at sketch_jan12f.draw(sketch_jan12f.java:53)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)

import processing.serial.*;

Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
boolean cStatus; //variabile di controllo per evitare continuo write su seriale

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 = Serial.list()[0];
String portName = "/dev/ttyACM0";
myPort = new Serial(this, portName, 9600);
cStatus = false;
}

void draw() {
background(255);
if (mouseOverRect() == true) { // If mouse is over square,
fill(204); // change color and
if (!cStatus) {
myPort.write("H"); // send an H to indicate mouse is over square
cStatus = true;
}
}
else { // If mouse is not over square,
fill(0); // change color and
if (cStatus) {
myPort.write("L"); // send an L otherwise
cStatus = false;
}
}
rect(50, 50, 100, 100); // Draw a square
}

boolean mouseOverRect() { // Test if mouse is over square
return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150));
}