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"