Salve a tutti, volevo chiedere delucidazioni su un problema forse banale ma che non riesco proprio a comprendere.
Ho creato un semplicissimo esempio con 2 schede Arduino 1 connesse a due diverse porte seriali e 2 sketch Processing collegati alle stesse seriali.
-
PRIMO ARDUINO (COM 6)
void setup(){ Serial.begin(9600); }
void loop(){ Serial.println("1"); delay(1000);} -
SECONDO ARDUINO (COM 7)
void setup(){ Serial.begin(9600); }
void loop(){ Serial.println("1"); delay(1000);} -
PRIMO PROCESSING
import processing.serial.*;
Serial myPort_1;
//String portName1 = Serial.list()[0]; // equivalente ad esplicitare COM6
String portName1 = "COM6";
String val="";
void setup() { myPort_1 = new Serial(this, portName1, 9600); }
void draw() {
while ( myPort_1.available() > 0) {
val = myPort_1.readStringUntil('\n');
println(val);
}
}
SECONDO PROCESSING
import processing.serial.*;
Serial myPort_2;
//String portName2 = Serial.list()[1]; // equivalente ad esplicitare COM7
String portName2 = "COM7";
String val2="";
void setup() { myPort_2 = new Serial(this, portName2, 9600); }
void draw() {
while ( myPort_2.available() > 0) {
val2 = myPort_2.readStringUntil('\n');
println(val2);
}
}
Come vedete il codice è davvero elementare.
Ora la domanda da 1 milione di dollari...perchè su entrambe le seriali di processing ottengo i valori 1 e 2 in maniera casuale???
Io mi aspetto che i segnali provenienti da Arduino su COM6 arrivino esclusivamente al primo processing (associato alla COM6) e quelli del secondo Arduino su COM7 al processing su COM7...aiutatemi...che sto sbagliando?
PS: ovviamente se faccio partire le seriali di Arduino tutto funziona correttamente..sulla COM6 vedo 1 e sulla COM7 vedo 2. Appena partono i due Processing però scasina tutto ![]()
Grazie 1000,
Federico