Codigo Cuadricóptero Arduino

Buenos dias.

Estoy haciendo un Dron multirotor con Arduino.
El arduino simplemente va a recibir cuatro variables (integrer) de una Xbee.

Cada variable corresponde a un rotor (N, S, W, E) que estan controlados por unos ESC's.
Seguramente sabrán que uso la libria Servo.h para controlar lo s ESC's.

El problema con el código es que no he conseguido de muchas maneras que desde el ordenador usando procesing (y la libreria proControl para controlarlo con joystick) mande por un puerto a la xbee (usando un adaptador de sparnfun) se mande a la arduino donde esta otra shield de sparnfun.

El esquema:

Joystick --> Procesing --> Xbee emisora --> Xbee receptora --> Arduino ---> ESC --> Rotor

Las Xbee están en modo AT, es decir que transmiten en modo transparente. Simplemente traten al código como si se mandase desde el puerto serial predefinido de la arduino.

Si me pueden ayudar o dejar un código para mandar 4 variables integrer se lo agradeceria mucho. :slight_smile:

Saludos desde españa.

cada día encuentro mas difícil entender las explicaciones de la gente.
Por favor lee tu comentario:

El problema con el código es que no he conseguido de muchas maneras que desde el ordenador usando procesing (y la libreria proControl para controlarlo con joystick) mande por un puerto a la xbee (usando un adaptador de sparnfun) se mande a la arduino donde esta otra shield de sparnfun.

A ver si traduzco. No has conseguido enviar un comando desde el ordenador usando processing a través de un puerto COM al XBEE emisor, que sea recibido por el XBEE Receptor y de ahi al arduino quien lo traducirá en comandos para los servos.

Has probado los XBEE usando algun problema de prueba? Eso funciona bien?
Lees algo en el arduino al recibirlo o no lees nada?

Ya he consegido la comunicacion entre el ordenador y la arduino.
Lo que no he conseguido es un código para mandar cuatro variables independientes, una para cada rotor.

Cuando mando por la xbee un número, como "120", manda el valor ASCII del 1, 2 y el 0.
Y esos valores los pasa a los ESC, que se ponen en una velocidad que yo no he deseado.

Para eso me gustaría poder mandar un comando con esta estructura: velocidadDelRotor:Rotor
Algo así como: "120:N".

Esa es la idea. Por eso me gustaria que alguien con un proyecto similar me ayudase.

Saludos
Si ya lograste la comunicación entre proccessing y arduino lo que tienees que hacer es enviar las cuatro velocidades que necesitas y en el arduino usar parseInt.

Ejemplo: (siguiendo tu logica N,S,W,E) y para enviar 120 solo a N enviarias 120,0,0,0,

De esa manera separas cada valor paara cada motor ya convertido en un int y no como caracteres ascii. Toma tiempo esta forma pero es la mas facil.
Lo otro seria hacer un arreglo de char y luego convertirlos en una entero. Pero necesitas mas conocimientos y definir muy bien tu protocolo de datos

Muchísimas gracias compañero.
Me has salvado el código, ya no sabía que hacer.
que grande es la comunidad hispanohablante de arduino.

De todas formas lee los proyectos que ya estan hechos... hay mucha pero mucha info de este tema. Hasta foros exclusivos.