Processing non dialoga con Arduino

Salve, dopo una giornata di tentativi ho deciso di interpellare voi eruditi :wink:

Ho acquistato osc, per comandare tramite tablet i led di arduino.
Ho caricato i due codici sia dall'ide che da processing correttamente, l'ide inserendo i parametri da monitor seriale accende il led.
Processing invece non comunica i parametri alla porta seriale, il programma funziona in quanto premendo il tasto dal ipad (nel programma osc) si accende la sfera di rosso che lo indica.

Arduino invece non riceve i dati, come se non trovasse la seriale; la seriale è comandata dalla libreria processing.serial che dovrebbe trovare la seriale e inviare i parametri sulla scheda arduino.

Ho pensato si trattasse di permessi, in quanto utilizzo un mac, ma non trovo nulla in internet che mi possa aiutare.

ecco i due codici:

IDE

int message = 0;     //  This will hold one byte of the serial message
int redLEDPin = 9;   //  What pin is the red LED connected to?
int redLED = 0;          //  The value/brightness of the LED, can be 0-255

void setup() {  
  Serial.begin(9600);  //set serial to 9600 baud rate
}

void loop(){
    if (Serial.available() > 0) { //  Check if there is a new message
      message = Serial.read();    //  Put the serial input into the message

   if (message == 'R'){  //  If a capitol R is received...
     redLED = 255;       //  Set redLED to 255 (on)
   }
   if (message == 'r'){  //  If a lowercase r is received...
     redLED = 0;         //  Set redLED to 0 (off)
   }

 }   
analogWrite(redLEDPin, redLED);  //  Write an analog value between 0-255
}

Processing:

import oscP5.*;        //  Load OSC P5 library
import netP5.*;        //  Load net P5 library
import processing.serial.*;    //  Load serial library

Serial arduinoPort;        //  Set arduinoPort as serial connection
OscP5 oscP5;            //  Set oscP5 as OSC connection

int redLED = 0;        //  redLED lets us know if the LED is on or off
int [] led = new int [2];    //  Array allows us to add more toggle buttons in TouchOSC

void setup() {
  size(100,100);        // Processing screen size
  noStroke();            //  We don’t want an outline or Stroke on our graphics
    oscP5 = new OscP5(this,8000);  // Start oscP5, listening for incoming messages at port 8000
   arduinoPort = new Serial(this, Serial.list()[0], 9600);    // Set arduino to 9600 baud
}

void oscEvent(OscMessage theOscMessage) {   //  This runs whenever there is a new OSC message

    String addr = theOscMessage.addrPattern();  //  Creates a string out of the OSC message
    if(addr.indexOf("/1/toggle") !=-1){   // Filters out any toggle buttons
      int i = int((addr.charAt(9) )) - 0x30;   // returns the ASCII number so convert into a real number by subtracting 0x30
      led[i]  = int(theOscMessage.get(0).floatValue());     //  Puts button value into led[i]
    // Button values can be read by using led[0], led[1], led[2], etc.
     
    }
}

void draw() {
 background(50);        // Sets the background to a dark grey, can be 0-255

   if(led[1] == 0){        //  If led button 1 if off do....
 ¬† ¬†arduinoPort.write("r"); ¬† ¬†// Sends the character ‚Äúr‚ÄĚ to Arduino
    redLED = 0;        // Sets redLED color to 0, can be 0-255
  }
 if(led[1] == 1){        // If led button 1 is ON do...
 ¬†arduinoPort.write("R"); ¬† ¬†// Send the character ‚ÄúR‚ÄĚ to Arduino
  redLED = 255;        // Sets redLED color to 255, can be 0-255
  }
fill(redLED,0,0);            // Fill rectangle with redLED amount
   ellipse(50, 50, 50, 50);    // Created an ellipse at 50 pixels from the left...
                // 50 pixels from the top and a width of 50 and height of 50 pixels
}

Grazie per l'aiuto!

ciao
se non lo hai fatto in processing devi inserire in numero della porta.
nel setup inserisci println(Serial.list());

 println(Serial.list()); 
   arduinoPort = new Serial(this, Serial.list()[0], 9600);    // Set arduino to 9600 baud

sotto ti verra indicato il numero che corrisponde alla porta da inserire al posto dello zero
ad esempio, nel mio caso ‚Äú1‚ÄĚ corrisponde alla COM3.:

  arduinoPort = new Serial(this, Serial.list()[1], 9600);    // Set arduino to 9600 baud

se hai gia fatto questo…
prova a mettere un delay sempre nel setup.

  arduinoPort = new Serial(this, Serial.list()[1], 9600);    // Set arduino to 9600 baud
delay (2000);

inserendo quel codice non ho risolto, ma inserendo il numero manualmente invece si!

grazie!