Processing converte valori quando li stampa su porta seriale

Ciao a tutti !
Sto facendo una macchinina con processing touchosc e tutto il malloppo che serve.Deve poter cambiare direzione e quindi ho un L293D, funziona alla grande !
Il problema nasce quando, creato su touchosc un fader che va da -255 a 255, processing mi cambia i suoi valori;mi spiego meglio:
La mia intenzione era quella di inviare valori negativi se deve andare indietro e positivi se deve andare avanti. Ovviamente una volta riconosciuto il tipo di dato se è negativo lo moltiplico per -1 e diventa usabile.
Con processing tutto apposto:

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

Serial arduino;        
OscP5 oscP5;            

int x=0;
int y=0;

void setup() {
          
   oscP5 = new OscP5(this,8000);  
   arduino = new Serial(this, "/dev/ttyUSB0", 9600);    
}

void oscEvent(OscMessage theOscMessage) {   

    String addr = theOscMessage.addrPattern();  
    int val=int(theOscMessage.get(0).floatValue());
    
    if(addr.equals("/acc")){
      x=val; 
    }
    if(addr.equals("/dir")){
      y=val; 
    }
     
   

    
  print(x);
  print(" ; ");
  println(y);
  arduino.write(x);
  arduino.write(y);
  

}

void draw() {
  
}

I valori della x (fader per accelerazione) che mi stampa sul suo monitor sono corretti e variano da -255 a 255, solo che quando faccio il print, lato arduino ricevo dei valori che vanno da 0 a 255(quando il fader raggiunge la metà) e di nuovo da 0 a 255 per i valori successivi alla metà..com'è possibile che avvenga questa conversione ?
Ho provato ad osservare i dati in arrivo da un programma esterno, magari pensavo che il problema fosse di arduino, ma invece è proprio nella fase di stampa che avviene questa "conversione"

conversione da intero a lettera. cerca sul forum se ne è parlato a lungo

lesto:
conversione da intero a lettera. cerca sul forum se ne è parlato a lungo

Mmm ho trovato solo questa conversazione ahah

da int a char

lesto:
da int a char

Non ho trovato niente o almeno, niente che mi sembrasse attinente.
Comunque non ho capito perché char. Se mi spieghi meglio il problema mi informo meglio :smiley:

in pratica la print trasforma gli int nell'equivalente char, quindi una lettera per ogni carattere

lesto:
in pratica la print trasforma gli int nell'equivalente char, quindi una lettera per ogni carattere

ma gli altri li ricevevo normali !
comunque ho risolto il problema inviando i valori da 0 a 180 e mappandoli sull'arduino da -255 a 255

Grazie :smiley: