Tabla de contenido:

Radio bidireccional NRF24 para telemetría: 9 pasos (con imágenes)
Radio bidireccional NRF24 para telemetría: 9 pasos (con imágenes)

Video: Radio bidireccional NRF24 para telemetría: 9 pasos (con imágenes)

Video: Radio bidireccional NRF24 para telemetría: 9 pasos (con imágenes)
Video: Módulos de radio ¿Cuál usar? NRF24 | LoRa | CC1101 | HC12 | 433MHz | HC05 2024, Mes de julio
Anonim
Radio bidireccional NRF24 para telemetría
Radio bidireccional NRF24 para telemetría

Hola chicos, mi nombre es Pedro Castelani y les traigo mi primer instructivo: construir una radio bidireccional con arduino para, bueno, para lo que lo necesite.

En este proyecto, crearemos dos circuitos separados que actuarán como receptor y transmisor. Los componentes más importantes son dos placas arduino (todas funcionan) y dos módulos de transceptor nrf24. En mi caso, controlo un servo con un potenciómetro del otro arduino y envío los voltajes de una batería lipo de dos celdas al primero.

Tengo la intención de usarlo como complemento para mi dron, que no posee telemetría ni control de servo cardán. Sin embargo, puede utilizarlo para otras cosas, como construir su propio quadcopter, avión, coche rc, etc. Desde el código suministrado también puede realizar las modificaciones que desee de acuerdo con sus necesidades. También intentaré explicar cómo modificarlo correctamente (lo que me llevó un tiempo aprender por mi cuenta, ya que estaba acostumbrado a otro tipo de uso del chip nrf24).

Paso 1: Materiales

Materiales
Materiales
Materiales
Materiales
Materiales
Materiales

Para comenzar nuestro proyecto, necesitamos conocer todas las partes necesarias. A continuación se muestra una lista de los básicos necesarios. Compré la mayoría de ellos en una tienda de electrónica local donde vivo, así que no podré recomendarte ningún lugar para comprarlos. Puedes probar Amazon o cualquier otro lugar. No estoy diciendo que debas pedirlos allí, pero es solo una sugerencia.

  1. Dos placas Arduino (cualquiera debería funcionar. Yo tengo dos arduino pro mini, que me gustan mucho porque tienen 13 pines digitales y 8 analógicos, mientras que el Uno solo tiene 6 analógicos).
  2. Dos módulos Nrf24. Hay algunos con antenas externas que tienen mayor alcance de transmisión. Elige los que más te gusten.
  3. Cables de puente Hembra-Hembra y Hembra-Macho.
  4. Tablero de prototipos.
  5. Programador Arduino (para arduino pro mini, si tiene uno con conexión USB, no lo necesitará).
  6. Arduino IDE (software). Descárgalo desde aquí.
  7. En mi caso, también utilicé:
  • Servo. Cualquiera que puedas conseguir. Me gusta el SG90, uno pequeño diseñado para arduino.
  • Potenciómetro (entre 10k y 20k ohmios). Se puede comprar en una tienda de electrónica local o puede usar el joystick hecho para arduino. Hay algunas imágenes de las que tengo. También obtuve uno de un controlador rc de drone roto, solo para darte algunas ideas
  • 4 resistencias normales iguales. Usé 10k que obtuve de la casa de mi abuelo. Los estoy usando como divisores de voltaje.
  • Pequeño panel de cobre con almohadilla (que también me dio mi abuelo) para soldar las resistencias.
  • Patas. Se utiliza para conectar los cables de puente del arduino a las resistencias fácilmente.
  • Batería lipo 2s. Lo uso para alimentar uno de mis arduinos. Las resistencias están conectadas a él y leen sus voltajes. Tengo la intención de que mi arduino esté conectado a la batería 2s de mi dron, ya que no necesitará una fuente de alimentación externa y al mismo tiempo me dirá cuánta batería queda.
  • Soldador y soldadura. Necesario para soldar las resistencias, la placa de perforación y los pines juntos.

Paso 2: función y código

Función y código
Función y código

Una vez mencionados todos los materiales, comencemos a hablar de la función de los módulos.

Cómo funciona: Llamemos a un arduino "A" y al otro "B". En mi caso, luego de programar ambos, los conecté a su chip de radio correspondiente y agregué el potenciómetro al arduino A y las resistencias y servo al arduino B. El módulo A envía valores a B y mueve el Servo. B lee los voltajes de la batería 2s y los envía de vuelta a A. Luego, todo el círculo comienza de nuevo. Dado que A recibe valores que no se expresan mecánicamente, se conecta al programador, a través del cual podemos leerlos con un monitor serie (incluido en el IDE de Arduino)

Código: llamo al boceto para arduino A (conectado con el programador y el potenciómetro) TwoWayRadio_1, y al boceto para arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 y TwoWayRadio_2WithServo se pueden encontrar justo debajo de este párrafo. Hay una explicación dentro de cada código para que todo sea más fácil de entender.

Paso 3: Módulos de soldadura: divisor de voltaje y potenciómetro

Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro
Módulos de soldadura: divisor de voltaje y potenciómetro

Este paso es opcional, ya que es posible que solo desee usar el potenciómetro-joystick diseñado específicamente para arduino y usar otro módulo en lugar del divisor de voltaje. Yo, sin embargo, planeé todo (códigos incluidos) para estos módulos.

Potenciómetro:

Esta parte es la más fácil en el paso de soldadura. Solo tendrás que soldar algunos cables de puente a tu potenciómetro. Si lo desea, primero puede soldar el potenciómetro a la placa de perforación y luego soldar algunos de los pines. Cuando necesite usarlo, simplemente conecte los cables de puente al arduino y luego a los pines de la placa perfilada. Cuando no esté en uso, puede quitar los cables y usarlos para otro proyecto. Sin embargo, si haces lo que yo hice, puedes dejar el potenciómetro soldado directamente a los cables

  • Si está haciendo lo que yo hice, obtenga tres cables de puente hembra-hembra, corte una de las puntas y retire el aislamiento allí, dejando un pequeño trozo de cableado de cobre en cada cable.
  • Caliente su soldador y suelde los puentes modificados a los pines de sus potenciómetros. Si puede, intente obtener diferentes colores para que pueda recordar cuál es vcc, gnd y el de "señal" (el del medio). Conecte estos cables a los pines analógicos correspondientes en el arduino. Hay algunas imágenes al comienzo del paso sobre cómo terminó luciendo. El potenciómetro no es uno normal, en realidad es una rueda pequeña que tenía cinco pines. Me tomó un tiempo averiguar cuál era cuál. Trate de hacerlo más fácil y use un potenciómetro regular como se muestra en el paso MATERIALES.
  • Si lo está soldando a una placa de perforación, obtenga el potenciómetro y la placa de perforación y suéldelos junto con su soldador.
  • Coge los pines (tres) y colócalos de la forma que más te convenga. Utilice soldadura para hacer una conexión entre cada pin y los pines del potenciómetro. No haga una conexión entre más de dos pines o no funcionará (actuará como un cortocircuito).
  • Obtenga algunos cables de puente hembra-hembra o hembra-macho y conéctelos desde su arduino a su nuevo módulo de potenciómetro (recuerde cuál es cuál).

2. Divisor de voltaje:

  • Esta parte es un poco más complicada. Necesitará obtener las cuatro resistencias, cinco pines y la placa de perforación. Diseñé el código para usarlo en una batería de 2 s (dos celdas), pero también puedes usarlo para 1 cambiando un poco el boceto de arduino y el hardware. Incluí imágenes de dos divisores de voltaje que hice, uno con solo 2 resistencias (para baterías de 1 s) y otro con cuatro (lo adivinaste: baterías de 2 s).
  • Comencemos con el de 2. No tengo imágenes del proceso de construcción desde que comencé a escribir este instructable un buen rato después de haber terminado de soldarlo. Incluyo imágenes del resultado final, así que intentaré ser lo más claro posible.
  • Empiece por conseguir la placa perfilada y 5 pines. Sueldelos cerca de los lados y no permita que se toquen entre sí.
  • Suelde las resistencias como se muestra en la última imagen al comienzo del paso (el diagrama de circuito pequeño). Las conexiones entre cada resistencia y pin se realizan con soldadura. Intenta ocupar el menor espacio posible.
  • Cuando haya terminado, debería parecerse a las imágenes del divisor de voltaje terminado que publiqué arriba.
  • El divisor de voltaje 1s es básicamente el mismo, con la excepción de que solo usa tres pines y dos resistencias. Incluí imágenes de cómo se ve cuando termine. Solo mire el diagrama para el de 2 e imagínelo sin el cable de señal 1, el cable del medio y las resistencias r2 y r3, ¡y ahí lo tiene!
  • Entonces, si desea un divisor de voltaje de 1 s, podría ser un poco más complicado que usar uno de 2 s.

Paso 4: Programando tu Arduino

Programando su Arduino
Programando su Arduino
  1. ¡Ya casi terminamos!
  2. Después de haber descargado el software Arduino IDE del sitio vinculado en el paso MATERIALES, descargue los bocetos del paso FUNCIÓN Y CÓDIGO.
  3. A continuación, ábralos en el IDE de Arduino.
  4. Abra "Herramientas" en cualquiera de las dos pestañas y haga clic en "Tableros". Elija su tablero de la lista. Haz clic en "Procesador" y luego en "Programador", seleccionando cada uno según tu placa. Luego regrese al boceto. Es muy conveniente buscar la información de su tablero en Internet. Simplemente busque el nombre y vea las especificaciones.
  5. Haga clic en "boceto" (arriba), luego en "incluir biblioteca" y luego en "administrar bibliotecas". Debería abrirse una pequeña ventana en el centro de la pantalla. Ingrese en la opción de búsqueda "rf24". Descarga la biblioteca que quieras. Será necesario poder subir el código a la placa arduino.
  6. Solo para asegurarse, haga clic en el símbolo "Tick" (arriba a la izquierda) para verificar que no tenga errores. Luego proceda a cargarlo presionando la flecha que apunta hacia la derecha, al lado del símbolo "Tick".
  7. Si tu placa es una Pro Mini, en un rato te explicaré cómo conectarlo todo. Si no es así, simplemente cárguelo y, cuando termine de programar ambos arduinos, pase al siguiente paso, luego de leer la advertencia a continuación.
  8. Como tiene dos placas, RECUERDE con qué código se programó cada una, para evitar problemas futuros.
  9. Entonces, si tiene un Pro Mini, necesitará un programador. Hay dos tipos de programadores: los de 5 pines y los de 6 pines. Me enfocaré en los de 5 pines ya que son los que tengo. Las conexiones son las siguientes (el primer pin es del programador, luego arduino): Gnd - Gnd; 5v-Vcc (excepto si su Pro Mini es un 3.3v, en cuyo caso es 3.3v - Vcc); Rxd - Txo; Txd - Rxi. Incluí una imagen tanto de la placa como del programador, por si acaso necesitas comprobarlo.
  10. Conecte su arduino al programador y el programador a su computadora. Abra el IDE y haga clic en el botón de carga. Si observa la parte inferior izquierda de la pantalla, verá un mensaje que dice "compilando". En el momento en que este mensaje se convierta en "cargando", presione el botón de reinicio en el arduino Pro Mini. Después de un tiempo, el boceto terminará y aparecerá un mensaje que dice "Carga terminada". Una vez que esto suceda, habrá terminado y estará listo para pasar al siguiente paso.

Paso 5: Conectando todo

Conectando Todo
Conectando Todo
Conectando Todo
Conectando Todo
Conectando Todo
Conectando Todo
Conectando Todo
Conectando Todo
  1. Después de haber programado ambos arduinos, necesitamos conectar todo para que funcione. Aquí vamos a necesitar todo lo mencionado anteriormente: los arduinos, módulos nrf24, cables, servo, programador, divisor de voltaje, potenciómetro, etc.
  2. Primero vamos a conectar el arduino que trabaja con el programador. Al comienzo del paso están las imágenes de las conexiones del nrf24. El pin irq, que se dice que va al pin 8 en el arduino, no está conectado en absoluto. El resto es como en la imagen para ambos arduinos (puedes leer las notas dentro de las imágenes para más información)
  3. El Vcc para la radio se puede conectar a 3.3 o 5v. A veces solo funciona con uno de ellos. Pruebe con 3.3 y luego con 5 si no funciona. Para 3.3, use el pin de 3.3v del programador. Tenía que hacer esto, como verán en las imágenes del producto terminado.
  4. Conecte el programador al arduino como se dijo en el paso anterior.
  5. Conecte el cable de "señal" del potenciómetro al pin analógico A0.
  6. Conecte el "Positivo" del potenciómetro a Vcc (solo 5v, no 3.3) y el "Negativo" a Gnd.
  7. Pase al otro arduino.
  8. Conecte la radio como se dijo antes, según las imágenes.
  9. Conecte el cable de señal del servo (naranja-amarillo-blanco. Verifique las especificaciones del servo) al pin digital 2, y su tierra a la Gnd del arduino, y su positivo al Vcc del arduino.
  10. Conecte el cable de señal 1 del divisor de voltaje al pin A0 y el cable de señal 2 al pin A1.
  11. Conecte, usando el protoboard, el cable negativo del divisor de voltaje, el gnd del arduino y el gnd de la batería (cable negro en el enchufe jst).
  12. Conecte el "cable intermedio" del divisor de voltaje al intermedio de la batería, entre los cables rojo y negro del conector jst (color blanco).
  13. Conecte el cable 'positivo' del divisor de voltaje al terminal positivo de la batería y al Raw del arduino. No conecte directamente a Vcc, ya que este pin es específicamente para 5v. El pin Raw usa cualquier voltaje por encima de 3.3 o 5v a 12v y lo regula Los pines Vcc se convierten en salidas con 5v.

¡Ya casi has terminado! Sus productos terminados deben verse como las imágenes de arriba. Vuelva a comprobar todas las conexiones para evitar cortocircuitos.

Paso 6: Encienda su proyecto

  • Su arduino con el servo se alimentó en el último paso cuando conectó la batería a todo el circuito. Por lo tanto, solo necesita conectar el otro arduino a un puerto USB y ¡ya está!
  • Mueve el potenciómetro y deberías ver cómo también se mueve el servo. En mi caso, el servo está conectado a un cardán de cámara de 1 eje, lo que limitaba el ángulo, por lo que tuve que ajustar los parámetros. Lo encontrarás en el código, de todos modos.
  • Para ver los voltajes, una vez que haya conectado el programador a la computadora, abra el software arduino y presione "Ctrl + Shift + m". Se abrirá una ventana que dice "Serial Monitor". En la parte inferior de esta ventana hay una opción que dice "(número) baudios". Haga clic en él y seleccione "9600". Cierra el monitor y ábrelo de nuevo presionando las mismas teclas y deberías empezar a ver entrar muchos valores. No podrás ver cuáles son estos valores por la velocidad a la que vienen, pero si desconectas el programador se detendrán y podrá leerlos. Estoy tratando de obtener algo con lo que graficarlos automáticamente para ver los voltajes o representarlos con leds, pero eso aún está en proceso.
  • Aunque es posible que no vea los valores con claridad, ya que pasan muy rápido, ¡solo sepa que finalmente funciona y que puede modificarlo para adaptarse a sus necesidades!

Paso 7: demostración

Bueno, este es el video de mí encendiéndolo y usándolo solo un poco para mostrarte cómo debería funcionar.

Paso 8: Más ideas sobre cómo utilizar este proyecto

Más ideas sobre cómo utilizar este proyecto
Más ideas sobre cómo utilizar este proyecto
Más ideas sobre cómo utilizar este proyecto
Más ideas sobre cómo utilizar este proyecto
Más ideas sobre cómo utilizar este proyecto
Más ideas sobre cómo utilizar este proyecto

Aquí hay algunas ideas que puede construir usando esto como base. ¡Dime si haces uno de ellos o si lo intentas y no puedes para que yo pueda ayudarte!

  • En lugar de leer voltajes, modifique el código para que devuelva la temperatura, la presión, la altura, etc. Encontré el chip BMP180 bastante útil para esto.
  • Mida distancias con el módulo HC-SR04 y envíelos de regreso al primer arduino. Utilice el servo para apuntar el sensor a cualquier lugar que desee.
  • Agregue otro canal de servo para mover una cámara hacia arriba y hacia los lados; por ejemplo, en un coche rc.
  • Agregue otros tres canales de servo (¡o más!) Y haga su propio transmisor y receptor rc para un quadcopter, avión, helicóptero, automóvil rc, etc.
  • ¡Cambia el servo por un reflector y agrégalo a tu dron! También podrá controlar la intensidad de la luz (es posible que necesite algunos transistores y algunos cambios de código)
  • En lugar de leer los voltajes en una computadora, sea creativo y agregue un módulo lcd, o puede hacer una placa de 6 LED (dos verdes, dos amarillos y dos rojos) que los apagará uno por uno a medida que la batería baja y comenzará a parpadear cuando el nivel de la batería caiga por debajo del voltaje elegido. Hice esta pequeña pizarra y publiqué una imagen al comienzo del paso.

Solo para dejarlo todo claro, si vas a realizar uno de estos proyectos, ten en cuenta que vas a tener que modificar ambos códigos y quizás algunas conexiones. Intenta recordar no freír tu tabla haciendo algo estúpido.

Si tiene más ideas o necesita ayuda para llevar a cabo uno de estos proyectos, ¡publíquelo en la sección de preguntas!

Paso 9: solución de problemas

Solución de problemas
Solución de problemas

A decir verdad, la mayoría de los problemas que he encontrado hasta ahora estaban relacionados con la parte del boceto, que ya ha resuelto. Intentaré contarte todos los problemas que pueda para poder ayudarte al máximo.

Primero, si está intentando cargar el boceto y no puede, intente esto:

Asegúrese de descargar las bibliotecas necesarias (¡y las correctas!).

Asegúrese de haber elegido la placa, el procesador y el programador correctos.

Asegúrese de que la conexión entre la PC y el programador y el programador y el arduino sea buena.

Si está utilizando un pro mini, intente presionar el botón de reinicio tan pronto como pueda después de que aparezca el mensaje "cargando".

De todas estas cosas se habla en el paso PROGRAMANDO TU ARDUINO.

En segundo lugar, verifique todas las conexiones entre todo:

Si su arduino no se enciende, es claramente un problema de voltaje. Compruebe si los cables no están conectados correctamente y si hay un cortocircuito.

Si se enciende pero no funciona, asegúrese de que todas las conexiones estén donde deberían estar, que el arduino programado para conectarse al servo y al divisor de voltaje esté realmente conectado a ellos (en otras palabras, asegúrese de que no mezcló hacia arriba), intente presionar el botón de reinicio en ambos y vea qué sucede. En casos extremadamente raros, toda la culpa puede estar en el módulo NRF24. Encontré uno de los míos que solo funciona con 5 voltios y otro que solo funciona con 3.3v. Compruebe si esto resuelve algo. También me pasó que solo un arduino funcionaba con la radio de 3.3v y el otro solo funcionaba con la de 5v. Sorprendente, ¿no?

En tercer lugar, si puede mover el servo pero los voltajes son incorrectos, verifique que las conexiones al divisor de voltaje sean como en el diagrama del paso 3 y la conexión al arduino. Si, por el contrario, obtiene los voltajes pero no puede mover el servo correctamente, verifique el potenciómetro y sus conexiones, la conexión del servo al pin digital y al Vcc y Gnd, y si el servo está atascado, roto o en un cortocircuito. Intente cambiarlo con otro servo. Asegúrese de que el pin digital sea el mismo que el especificado en el código

Bueno, esas son casi todas las cosas que me pueden venir a la mente sobre los problemas que puede encontrar. ¡Espero que nunca sucedan y Happy Projects!

¡Gracias por leer mi Instructable! ¡Compártelo y vote para el Concurso de AUTOR POR PRIMERA VEZ!

Recomendado: