Transmisor de 2.4Ghz con Arduino

Como vieron hace un par de semanas, estuve diseñando un transmisor de radio control de 4 canales, de 2.4Ghz de frecuencia, para actualizar mi transmisor básico (un Hobbyking de 6 canales).

La idea es que el Arduino se encargue de todo lo que concierne a la lectura de los potenciómetros, inversión de la dirección de los servos (en los casos que se requiera), ajuste de máximos y mínimos, y la generación de la señal PPM, que se enviará al módulo de RF original del transmisor donante.

Actualmente, el programa simple que hice, mantiene memoria para 5 modelos (almacenados en la eeprom del microcontrolador), controla la dirección de los servos, y dual rates para cada canal.

El circuito del transmisor es el siguiente:

tx

 

Como podemos observar, el circuito es bastante simple. El arduino va conectado a un shield de LCD+teclado para la visualización y comando de los menus; los 4 potenciómetros son los que van en las palancas de mando, los 2 interruptores son los de Throtle Cut (apaga los motores directamente) y para el Dual Rate, y la señal PPM es generada en el pin 9 del Arduino, desde donde se la conecta al módulo de 2.4Ghz.

El transmisor funciona a la perfección. Hoy hice un pequeño vuelo de prueba, y no hubo interferencias ni pérdidas de señal.

El código fuente, y la librería RC, necesaria para el cálculo y generación de los pulsos PPM, los pueden descargar de los siguientes enlaces:

El código puede ser mejorado, pero para desoxidarme un poco en la programada de microcontroladores, funciona bién.

Les dejo un video de las últimas pruebas, antes del vuelo.

 

25 comentarios en “Transmisor de 2.4Ghz con Arduino

  1. I saw 2.4Ghz Transmitter with embed Arduino. I just wanted to do something like that, but I could not find the data. I liked what you did so I saw the transmitter. Can you give more information about how you did the transmitter?

  2. Hola Patricio,
    Antes que nada, te agradezco por compartir tu experiencia y conocimientos.
    Te cuento que yo estoy en un proyecto similar, y armando un bicoptero tipo avatar, pero esto es mi primer contacto con el RC, asi que estoy aprendiendo de todo un poco.
    Quería consultarte sobre los comandos XY que usaste, porque yo estoy intentando conseguirlos y no lo logre aun.

    ¿Vos los sacaste de otro transmisor o es que se pueden conseguir por ebay?

    Desde ya muchas gracias por tu respuesta.

    Saludos

  3. Con los transmisores de inalámbricos conecte dispositivos A/V como un reproductor de DVD, un grabador de disco duro, un set-top box o un ordenador al televisor sin tener que poner cables. Más información aquí http://www.ir-extender.net/es/

  4. Hola, yo estoy en un proyecto parecido, con un cuadracoptero, en el que necesito abrir la emisora e instalarle un arduino para controlar el aparato con un pc. Se que comprando una emisora futaba con trainer port para conectarla al pc lo solucionaría, pero es un proyecto de presupuesto limitado.

    El esquema sería pc->arduino->emisora ———> cuadracoptero.

    Me podrías facilitar más info o alguna foto de como has conectado el arduino al modulo original del Hobbyking.

    PD: Felicidades por el blog.

    Gracias y saludos.

  5. Para conectar el arduino al módulo de 2.4Ghz se usan 3 pines: vcc, gnd y ppm. Dependiendo de tu módulo, puedes necesitar que la señal de ppm sea de 5v o 3.3v (el de hobbiking, que es un módulo FlySky, se alimenta con 5V, pero la señal ppm debe ser de 3.3v)

    Estoy por publicar un post actualizado sobre el transmisor, así que mantente conectado, y si quieres más info actualizada, visita mi thread en rcgroups sobre el transmisor

    http://www.rcgroups.com/forums/showthread.php?t=1817699&page=24

  6. I have Arduino Mega 2560 Plate… is something difrent … becouse an poteciometers on A1, A2, A3, A4 toesent work … ???

    Please help!!

  7. Are you using the LCD shield? if not, you can tie the A0 pin to Vcc to disable keyboard and use the bare potentiometers for generate the ppm signal.

  8. Hola patricio,

    En primer lugar felicitarte por tu web, tiene proyectos y artículos muy interesantes.

    He dado con ella buscando un código para arduino para “arreglar” una vieja emisora de simulador, la idea es que se ha dañado la electrónica interna de la emisora, pero funciona el adaptador de PPM a USB….mi idea era usar tu código para generar la señal PPM leyendo los diversos canales a través de arduino.

    Voy a ver si me aclaro un poco con el código pues soy muy, muy malo programando, jejeejejeee!!!!

    Saludos.

  9. Buen día, tengo un proyecto que es controlar un carro a control remoto y quiero saber como usar la señal del control para que llegue al arduino y que este active una u otra salida dependiendo de la posición de los joysticks, me podrías ayudar?

  10. Hola buenas .
    mira yo estoy un proyecto parecido pero.. un poco mas complicado en el sentido que no use xbee.. y uso 2 arduinos uno en la parte de control y otro en el avion.. y para la comunicacion ocupo 2 antenas apc220 y todo funciona bien a decir verdad.
    pero considero que no consigo un alcance considerable aprox diria que son 50 metros? y en el mejor de los casos y bueno en la parte de control uso un arduino que conecte a un yoistick de play3 y ocupo sus palancas y los gatillos y todo ok
    pero me interesa lo que tu hiciste por que seguramente debes tener un buen alcanze .
    me podrias comentar cuanto alcance tienes en ese proyecto .. por lo que veo conectaste un xbee 2.4ghz a un reciver de rc seguramente tienes algo mucho mas estable en terminos de señal . espero tu respuesta saludos !

  11. Perdon por no haberles respondido antes, pero ando por españa estudiando un master 😀

    Ruben:
    El codigo de arduino te va a servir directamente, porque genera la señal de PPM igual que la electrónica de cualquier radio FM o incluso los básicos de 2.4Ghz

    Nacho:
    Necesitas en el receptor decodificar la señal de PPM usando un arduino, y segun los valores de cada canal, activar una u otra salida. Esto es algo que ya se ha hecho, y si buscas “PPM Decoder Arduino” en google, seguro encontrarás mucha info

    Francisco:
    No estoy usando Xbee, sino módulos FrSky de 2.4Ghz, que son propios para radio control. Los Xbee transmiten informacion digital en formato serial. La verdad que esos módulos apc220 no los he probado (tengo unos similares guardados por meses, por falta de tiempo 🙁 ) pero si he leído que dependen mucho de la antena, y del chip de RF que utilizan. Quizás si deseas más alcance, podrías usar el Xbee, o el módulo FrSky que estoy usando, que lo he volado sin problema a 400m de distancia

  12. Aaaa comprendo .. Y usas 2 de esos modulos frsky ? Uno para el avion y otro para el control ?
    Sabes si es malo. Hacer la comunicacion para rc por serial ? Por que en estos momentos. Eso hago. Con mis antenas. Pero eh pensado usar xbee pero tambien trabajan por serial

  13. Disculpa que te moleste jejejje estuve investigando sobre esos modulos que usas y comprendi un poco … entonces con el arduino generas una señal ppm ? ahora bien solo sirve para 6 ch ? o facilmente podria comprar un modulo de 8 ch y de mas alcance? por que lo que vi hay hartos modulos de distintas marcas y como tu ya lo hiciste .. me preguntaba si solo funcionaba con ese o con el que yo quiera .. espero que puedas contestarme y muchas gracias por todo ! Saludos
    pd: algun medio en el que podamos comunicarnos mas fluido ?
    Pd: exelente el trabajo que haces con el blog felicidades!

  14. A ver, uso ese módulo transmisor, porque primero, era el módulo de 2.4ghz original del transmisor, y tengo 3 receptores compatibles con ese módulo, los receptores son super baratos (algo asi como $10, contra $50 que cuestan los receptores de “marca”) así que funciona para mi 🙂
    Con respecto a si es bueno o malo usar comunicacion serial, depende de tu aplicación. a la final,el proceso de transmisión de datos es el siguiente:

    palancas -> arduino -> ppm -> módulo TX 2.4g -> antena

    y para la recepción

    antena -> módulo RX 2.4g -> ppm -> microcontrolador -> pwm -> servos

    si utilizas comunicación serial directa con xbee por ejemplo, te ahorrarías el paso del microcontrolador a ppm, ya que transmitirías el dato de la posición directamente en digital.

    Con respecto al número de canales, no lo he probado, pero mi código podría funcionar hasta para 8 canales, teniendo el receptor adecuado, y para más alcance, existen módulos transmisores de 433Mhz que igual reciben la señal PPM para transmitirla. Ojo con la potencia de transmisión, ya que según las leyes de tu país, pueden ser ilegales de usar en áreas pobladas

  15. hola que tal.
    soy el chico que te pregunto por xbee y el transmisor hace un tiempo , al final no funciono el tema del alcance y estoy probando usar unos módulos del turingy 9x v2

    y tenia unas dudas sobre el código y conexiones que utilizaste , si aun recuerdas este post podrías ayudarme ?

    quero configurarlo para el modulo ya mencionado antes pero lo que me complica es que no estoy seguro que pines conectar de partida
    por lo que he de suponer se ocupa el vcc , gnd , y ppm

    pero mi problema no llega ahi se supone que la señal ppm a generar tiene polaridad y otras caracteristicas y no he podido encontrarlas las de mi modulo
    hay alguna manera de saber ?
    -ejemplo polaridad de la señal ppm , tamaño de la señal y esas cosas relacionadas ojala puedas ayudarme saludos !

  16. Perdon por la demora en las respuestas, pero volví a mi país y estuve ocupado poniendome al tanto de muchas cosas jejeje.
    Te recomendaría buscar el datasheet o los esquemas de tu módulo. Como mencionas, usualmente (al menos el que yo uso) tiene los pines VCC, GND y PPM facilmente identificados en la placa. hay que asegurarse que la señal de ppm no exceda los 3.3v, y con respecto a la polaridad, pues no pasa nada si se envía la polaridad invertida, simplemente no funcionará.

    Si tienes alguna duda puedes escribirme para ver como te puedo dar una mano

  17. rishabh I think that all the turnigy/flysky receiver modules can be used with this. My donnor transmitter was a cheap hobbyking transmitter, that uses a flysky module inside

  18. Hola buen dia, soy nuevo con arduino y me gustaria realizar este proyecto, me podrias decir que componentes necesito. Saludos

  19. Miguel, necesitas principalmente 3 cosas: Un arduino, un módulo transmisor/receptor de radio control, compatible con la señal PPM, y las palancas para armar el transmisor. Ese sería el equipo básico. La pantalla LCD se puede obviar si quieres probar con algo mas sencillo al inicio.

  20. Hola,

    Que gran proyecto. Googleando he llegado a tu blog y al tema de rcgroups.

    Voy a hacer algo parecido a tu proyecto (3-axys joystick – arduino(PPM) – XJT – D4r – servos y tengo un par de duda sobre el circuito que planteas.
    -Entiendo que al XJT le enviaras corriente y el ppm nada mas no?, 3 cables?.
    -Las resistencias que propones en el diagrama de rcgroups es para este tipo de modulo? los de frsky?
    -El PPM que generas para estos módulos, es igual para los futaba por ejemplo? hay algún standar de PPM?

    Muchas gracias y enhorabuena! ya tienes otro seguidor

  21. Gracias por tus comentarios. Te comento que el PPM es un tipo de modulación estandard, y muchos de los módulos transmisores de RC los utilizan. Debes consultar las especificaciones del módulo que estés utilizando para asegurarte que sea compatible.

    Las resistencias que se muestran en los diagramas son para reducir el voltaje de la señal de 5v (del arduino) a 3.3v (del módulo Tx), y el módulo que yo utilizo (y muchos otros compatibles con FrSky, FlySky, etc) utilizan 3 hilos únicamente para la conexión: +Vcc, Gnd, Señal

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *