servo- joystik ps2-xbee pro mi manca poco!!!!

ciao a tutti, ho in mente un piccolo progettino e volevo kiedervi una mano.
Volevo comandare dei servo motori a distanza usando un joystik per play station 2 e due moduli xbee pro.
Fino ad ora ho riuscito a interfacciare la scheda arduino con li joystik ed ho riuscito ad inviare i dati tramite xbee all’altra scheda arduino,il problema è che ii dati che arrivano nn riesco ad inviarli al servo motore, dovrebbe essere ke io mentre premo un pulsante del joystik e muovo una levetta analogica il servo ne segua il movimento ,cosa ke non fa.
ho provato a fare un debug e tutto funzione ma se provo a mendare il valore che ricevo al servo, il servo nn si muove.
Io credo sia un problema di come stampa la porta seriale di arduino…
Voi avete qualche consiglio??? :’( :’( :’( :’(
Questi sono i due listati,telecomando e ricevitore:

RICEVITORE:

#include <Servo.h>
Servo myservo; // create servo object to control a servo
int val;
void setup()
{
Serial.begin(9600);
myservo.attach(9);
}
void loop()
{
val = Serial.read();
val = map(val,0,255,0,178);
myservo.write(val);
delay(15);
}

TELECOMANDO:

#include <GPSXClass.h>
#undef round //serve per non far fallire la compilazione
int asd =0;
void setup()
{
Serial.begin(9600);
PSX.mode(PSX_PAD1, MODE_ANALOG, MODE_LOCK);
PSX.motorEnable(PSX_PAD1, MOTOR1_ENABLE, MOTOR2_ENABLE);
PSX.updateState(PSX_PAD1);
}
void loop()
{
PSX.updateState(PSX_PAD1);
int data1 = ANALOG_LEFT_X(PSX_PAD1);
if (IS_DOWN_CIRCLE(PSX_PAD1)) {
Serial.println(data1);
}
}

Vorrei ribadire che per quanto riguarda la trasmissione dei dati con gli xbee o nell’interfacciamento con il joystik nn ho problemi, l’unico problema sta nel fatto di ricevere sull rx della scheda arduino un segnale proveniente dal tx di un’altra scheda arduino e poi di in viarlo ad un servomotore…
Scusate se non sono stato kiaro…
aiutatemiiiiii :-[ :-[ :-[

Non mi é chiari il tuo problema.
a) collegamento tra i 2 arduini:
puoi collegare tx direttamente con rx del altro e devi collegare anche le due masse ( non serve collegare le 2 masse se li alimenti tutti due con lo stesso alimentatore oppure tramite USB dallo stesso computer.
b) Xbee
devi mettere in un xbee il nuero di serie del altro e viceversa; cosí comunicano tra di loro. programma per settare: X-CTU;
c) leggere il dato della seriale:

char Data;
int i;
void setup()
{
  Serial.begin(9600);
}
void loop(){
do {
     if (Serial.available()) {       
       Data = Serial.read();
       i++;
       }     
      } while (i<1);
....
}

Ciao Uwe

Infatti il problema non sta nella comunicazione tra arduino e arduino, funziona sia con gli xbee che senza, collegando tx dell'uno con rx dell'altro,il probema sorge quando devo usare il dato ricevuto sull'rx per comandare un servo. Forse il problema sta nel come stampo sulla seriale, forse dovrei usa re "Serial.println(miodato,BYTE)" e poi dall'altro lato " miodato = Serial.read"...Bo ditemelo voi se non era per questo funzionava tutto a dovere :-[ :-[ :-[ :-[

int Data;
int i;
void setup()
{
  Serial.begin(9600);
}
void loop(){
do {
     if (Serial.available()) {
       Data = Serial.read();
       i++;
       }    
      } while (i<1);
//....
Serial.println(Data);
}

ok ma poi come faccio a mandare quel dato al servo motore? se invece di "serial.print" ,dopo while scrivo "myservo.write(data)" mi da errore...

manda per favore il codice intero. Ciao Uwe

il codice per ora è quello che ho postato sopra con le modifiche che ho fatto comunque non ci sono riuscito,quini aspetto voi : :-[

se hai fatto copia incolla data si scrive Data (la D maiuscola)e poi hai messo il map? e poi il joystick della play sono 2 potenziometri e uno switch, perchè non usi analogread() e passi quel dato e basta?

ciao lol21

il joistik della ps2 non mi da direttamente un valore analogico per quando riguarda le levette ma manda dei dati che vanno letti usando la libreria che c'è nel playground...