[RISOLTO] Problema con esempio "Virtual Color Mixer"

Buonasera a tutti,

Ho provato a lavorare per la prima volta con "Processing" realizzando l'esempio "Virtual Color Mixer" presente qui: http://arduino.cc/en/Tutorial/VirtualColorMixer.

Purtroppo una volta caricato il codice in Processing e premendo Run, mi appare il quadrato sempre dello stesso colore (grigio) e rimane in questo stato anche ruotando i potenziometri che ho usato per variare il valore delle stringhe che vengono generate da Arduino. Vi posso confermare che il circuito elettrico è corretto, infatti attivando il monitor seriale, posso vedere la tripletta dei valori che cambia in base alla posizione dei potenziometri.

In pratica è come se Processing non interpretasse i valori che gli vengono inviati.

Sapete dirmi se Processing va configurato in qualche modo per poter iniziare a funzionare?

Grazie e buona serata.

Il problema era nel codice che incollavo:

/* Processing code for this example
 
//  This example code is in the public domain.
 
 import processing.serial.*;
 
 float redValue = 0;        // red value
 float greenValue = 0;      // green value
 float blueValue = 0;       // blue value
 
 Serial myPort;
 
 void setup() {
 size(200, 200);
 
 // List all the available serial ports
 println(Serial.list());
 // I know that the first port in the serial list on my mac
 // is always my  Arduino, so I open Serial.list()[0].
 // Open whatever port is the one you're using.
 myPort = new Serial(this, Serial.list()[0], 9600);
 // don't generate a serialEvent() unless you get a newline character:
 myPort.bufferUntil('\n');
 }
 
 void draw() {
 // set the background color with the color values:
 background(redValue, greenValue, blueValue);
 }
 
 void serialEvent(Serial myPort) { 
 // get the ASCII string:
 String inString = myPort.readStringUntil('\n');
 
 if (inString != null) {
 // trim off any whitespace:
 inString = trim(inString);
 // split the string on the commas and convert the 
 // resulting substrings into an integer array:
 float[] colors = float(split(inString, ","));
 // if the array has at least three elements, you know
 // you got the whole thing.  Put the numbers in the
 // color variables:
 if (colors.length >=3) {
 // map them to the range 0-255:
 redValue = map(colors[0], 0, 1023, 0, 255);
 greenValue = map(colors[1], 0, 1023, 0, 255);
 blueValue = map(colors[2], 0, 1023, 0, 255);
 }
 }
 }
 */

Non va messa la prima e l'ultima riga.

Il problema potrebbe essere qui:

// List all the available serial ports
 println(Serial.list());
 myPort = new Serial(this, Serial.list()[0], 9600);

La println() serve per avere la lista delle porte COMx (Windows) disponibili.
L'apertura prende da questa lista la prima porta disponibile (con quel 0 tra quadre).
Se tu hai disponibili per qualche motivo COM3 e COM4 quella lista avrà come elemenento 0 la COM3 e come elemento 1 la COM4. Se Arduino è su COM4 devi mettere nella quadra 1 e non zero.
Oppure puoi indicare direttamente la seriale con il suo nome (nell'esempio COM4):

myPort = new Serial(this, "COM4", 9600);

Grazie Nid69,

Ho verificato che Arduino è su COM3 e provato anche a indicarla direttamente come mi hai sugerito

myPort = new Serial(this, "COM3", 9600);

ma nulla... il quadrato rimane sempre grigio.

C'è inoltre un altro aspetto... quando copio il codice su Processing appare regolarmente "colorato", ma appena mi muovo all'interno per correggere qualcosa, tutto il codice diventa grigio, può significare qualcosa?

Grazie ancora

lorenzo_1971:
C'è inoltre un altro aspetto... quando copio il codice su Processing appare regolarmente "colorato", ma appena mi muovo all'interno per correggere qualcosa, tutto il codice diventa grigio, può significare qualcosa?

Assolutamente si, questo ad inizio /* fa diventare tutto un unico commento fino a */

Elimina:
/* Processing code for this example e anche */ finale