[RISOLTO]Problema interfacciamento Servomotore tramite processing e osc

Ciao, volevo chiedere aiuto per riuscire a comandare un servomotore tramite OSC dal cellulare.
Sono partito da questa guida: Controlling an Arduino with an iPhone - SparkFun Electronics in cui accendeva un led tramite cellulare e ha funzionato, ma volevo muovere il servo a partire da quelle linee di codice ma nulla.
il codice che ho scritto su Arduino è questo:

#include <Servo.h>

Servo servo1;
int const servoPin = 9;
int angle=0;
int val=0;

void setup() {
  servo1.attach(servoPin);
  Serial.begin(9600);

}

void loop() {
  if(Serial.available() >0){
    val=Serial.read();
    angle=map(val, 0, 255, 0, 179);
    servo1.write(angle);
 delay(15);
  }
 

}

mentre quello per processing:

import processing.serial.*;
import oscP5.*;
import netP5.*;

Serial arduinoPort;
OscP5 oscP5;
int [] led = new int [2];
int val=0;

void setup(){
  size(100,100);
  noStroke();
  oscP5= new OscP5(this,8000);
  arduinoPort = new Serial(this, Serial.list()[0], 9600);
}
void oscEvent(OscMessage theOscMessage){
  String addr=theOscMessage.addrPattern();
  if(addr.indexOf("/1/rotary1")!=-1){
     int i = int((addr.charAt(9) )) - 0x30;
     led[i]  = int(theOscMessage.get(0).floatValue()); 
} 
}
void draw(){
  
val=led[1];
arduinoPort.write(val);
}

Invece i collegamenti elettrici li ho fatti come il progetto (indicatore di umore) dello starter kit togliendo il pezzo collegato al potenziometro.

Ma il led accendevi/spegnevi e basta ? O variava l'intensità (pwm) ? Manca la info di cosa spedisci da cellulare, ovvero Processing intercetta da OSC e spedisce ad Arduino. Ma la versione led cosa spediva, 0 e 1 ? Ora cosa spedisci da 0 a 180 ?

il led si accendeva e spegneva e basta. Quando ho creato l’interfaccia con OSC chiedeva tra che valori variava l’interruttore e c’era di default tra 0 e 255.

Nel codice Pocessing stampa a video il valore ricevuto, per essere sicuro, qualcosa del tipo:

void draw()
{ val=led[1];
  arduinoPort.write(val);
  text(val, 10, 10);
}

muovendo il cursore da cellulare mi escono i numeri tra 0 e 255, mi viene da pensare che arduino non legge il valore da seriale

Il programma arduino puoi provarlo anche senza Processing, basta che apri il Monitor Seriale e spedisci singoli caratteri, ad esempio 0 (valore ascii 48) e poi z (valore ascii 122).

inserendo i valori dal monitor seriale non accade nulla, rimane bianca la pagina anche se inserisco i caratteri

Giusto. Tu non stampi nulla su seriale. In Arduino aggiungi una println dopo la read questo:

...
val=Serial.read();
Serial.println(val);
..

Cosi nel Monitor Seriale vedi il valore del carattere scritto. Se il servo non si muove, allora dicci come lo hai collegato. Come hai alimentato i servo ? Modello del servo ? Arduino non ha abbastanza "forza" muoverlo. Dovresti alimentarlo in maniera separata, ma con il GND in comune (prova con 4 pile da 1,5V fanno 6V, dovrebbero bastare).

Lo schema è nell’immagine, il condensatore che ho usato è da 100microfarad. Il servo motore è quello da 180 gradi che c’è nello starter kit (sm-s2309s)

ho provato a togliere il condensatore e ora funziona tutto alla perfezione ;D

Non è molto logica questa cosa, Il problema stava da n'altra parte non sul condensatore

eh mi sembra strano infatti, tuttavia togliendo il condensatore ha funzionato