Ir directamente al contenido
FREE CA & US Shipping for CAD$89+ Orders | FREE CA Shipping on Applicable Products

Tutorial n.º 7: Introducción al escudo NRF

Tutorial NRF24L01+ con NRF-Shield para Arduino

Tutorial: Introducción al escudo NRF

Introducción

Este es un tutorial de introducción que proporciona al lector una descripción general amplia sobre cómo hacer que un proyecto funcione utilizando los populares módulos NRF24L01+. En este proyecto, el usuario configurará dos nodos de comunicación. El nodo "remitente" incrementa un contador interno y lo transmite al "receptor". La señal del contador es sólo un ejemplo y puede sustituirse fácilmente por una señal más útil, como una señal de sensor o cualquier otra. El nodo receptor espera recibir la señal y una vez recibida la muestra en la pantalla LCD. Antes de continuar con el siguiente incremento del contador, el nodo emisor espera recibir un reconocimiento del receptor para garantizar que la transmisión se haya realizado correctamente.

Este tutorial está configurado para utilizar algunas de las funciones de NRF-Shield y cómo se pueden utilizar. Con ese espíritu, se emplean dos microcontroladores Arduino diferentes, dos versiones NRF24L01+ diferentes, dos configuraciones de pines de selección de hardware diferentes y, finalmente, dos formas diferentes de alimentar los módulos de comunicación RF. Con todas estas diferencias complementarias, se explora la flexibilidad del NRF-Shield. Es posible que el usuario desee simplificar esta disposición como mejor le parezca, reduciendo estas diversas diferencias. Además, en términos de conceptos avanzados de comunicación por RF, el guión se mantiene lo más simple posible. Hay muchos conceptos avanzados de comunicación por RF que no se tratan en este tutorial.

Hardware requerido

Figura 1: Transceptores NRF24L01+: Mini, Estándar, +PA+LNA

El siguiente hardware es el mínimo necesario para que dos módulos NRF24L01+ se comuniquen entre sí:

  • 1x Escudo de microcontrolador PCB prototipo PTSolns para Arduino Uno (NRF-Shield Deluxe)
    o Este paquete incluye dos escudos NRF y hardware adicional necesario para ensamblar los escudos como
    utilizado en este tutorial. Se requiere soldadura.
  • 2x microcontrolador arduino (Uno R3, Mega, Leonardo o Due)
    o El NRF-Shield es compatible con todos los microcontroladores Arduino mencionados. En este tutorial se utilizan un Uno y un Mega.
  • 2 transceptores NRF24L01+ (Mini, Estándar , +PA+LNA )
    o En este tutorial se utiliza un NRF24L01+ de tamaño estándar y un NRF24L01+PA+LNA. Sin embargo, cualquiera de estos tres transceptores como se muestra en la Fig. 1 funcionaría para este tutorial.
  • 1x LCD con módulo de 'mochila' I2C
  • 4x cables dupont macho a hembra
  • Fuente de alimentación de mesa o equivalente

Software requerido

Se requiere el software Arduino IDE. Esto se puede descargar libremente. Una vez instalado este software, hay algunos subpasos que el usuario puede o no tener que realizar para configurar el software correctamente. Estos pasos son los siguientes:

  1. Dependiendo del módulo convertidor serie FTDI USB a TTL que se utilice, es posible que sea necesario instalar un controlador especial, como el controlador CH340. Este es un controlador bien documentado para el cual hay muchos tutoriales disponibles. El tutorial que recomendamos se llama “Tutorial: Primera vez usando el Nano Microcontrolador” de PTSolns. Sin embargo, si se utilizan microcontroladores Arduino originales, no se necesitará ningún controlador especial.
  2. El script que se muestra en la Sección 5 a continuación requiere que se instalen algunas bibliotecas dentro del software IDE. Abra Herramientas\Administrar bibliotecas... y busque e instale lo siguiente: “LiquidCrystal_I2C”, “RF24”, “SPI”.

Configurar el hardware

Figura 2: Los nodos emisor y receptor.

En esta sección se ensamblan los nodos emisor y receptor. Como se mencionó anteriormente, los dos nodos están configurados de manera diferente en algún aspecto clave para resaltar características particulares del NRF-Shield. Sin embargo, es posible que el usuario desee modificar esta configuración como mejor le parezca. El producto final, como se realizará en este tutorial, debería verse similar a lo que se muestra en la Fig. 2.

Los nodos emisores y receptores se analizan en las siguientes subsecciones. El hardware necesario para ensamblar estas placas está incluido en el paquete Deluxe, excluyendo los módulos de RF, los cables y la pantalla LCD.

Nodo remitente

Figura 3: El nodo remitente.

El nodo emisor se muestra en la Fig. 3. Se puede ver que se utiliza el NRF24L01+ de tamaño estándar, junto con el Arduino Mega. El montaje del receptor es sencillo. Un conector hembra de 2X4 pines está soldado en la huella de la “Interfaz NRF”. El NRF24L01+ de tamaño estándar está conectado a este conector hembra.

A continuación, se suelda un conector macho de 1X15 pines a lo largo de los pines de selección de hardware. Se colocan tapas de puente de 2 pines en las siguientes selecciones: 3V3, D9, D7 y D3. La selección 3V3 es utilizar la fuente de alimentación integrada de 3,3 V para alimentar el módulo. D7 y D9 se utilizarán en el guión correspondiente. D3, el pin de interrupción, no se utiliza en este tutorial.

Finalmente, los pines del encabezado que conectan el NRF-Shield al Arduino son encabezados macho estándar. Aunque el escudo es totalmente apilable, no se recomienda hacerlo. La comunicación por RF funciona mejor con la menor obstrucción a la antena. Tenga en cuenta que aquí se utilizó un conector macho de 1X15 pines entre las huellas del encabezado de 1X8 pines y 1X6 pines del Arduino, con el noveno pin retirado después de soldar la fila en su lugar. CONSEJO: coloque los cabezales macho en el Arduino antes de soldarlos para asegurarse de que las filas estén paralelas y que el escudo encaje bien.

Nodo receptor

Figura 4: El nodo receptor.

El nodo receptor se muestra en la Fig. 4. Se puede ver que se utiliza el NRF24L01+PA+LNA de mayor tamaño, junto con el Arduino Uno R3. Hay un poco más de ensamblaje en este nodo, pero hay mucha superposición con el nodo emisor. El usuario debe reproducir todas las uniones de soldadura realizadas como en el nodo emisor.

Respecto al módulo NRF, el que se utiliza en el nodo receptor tiene una PCB larga y una antena grande. Si el módulo de RF aún no lo tiene, el usuario debe soldar conectores macho de 1 x 2 pines en el módulo de RF a cada lado de la huella de la antena. En la huella correspondiente en el NRF-Shield, el usuario debe soldar un conector hembra de 1X2 pines. CONSEJO: Lo más fácil es colocar primero estos pequeños cabezales y luego soldarlos. Aunque no es necesario agregar estos cabezales de pines 1X2, se recomienda encarecidamente ya que agregan soporte estructural para el módulo de RF.

Para los pines de selección de hardware, se configuran los siguientes: VR, D10, D8, D2. La selección de VR es utilizar la fuente de voltaje externa para alimentar el módulo. Esto requiere que el usuario instale un regulador de voltaje de 3,3 V y dos condensadores de suavizado (estos componentes están incluidos en el paquete Deluxe). Tenga en cuenta que la huella del regulador de voltaje está diseñada de manera que se acepte cualquier permutación de los pines Vin, Vout y GND. Esto es útil en caso de que el usuario desee utilizar un regulador diferente que tenga una configuración de pines diferente. Generalmente es una buena idea usar la selección VR con el regulador de voltaje externo cuando se opera el módulo de RF en potencia máxima (establecida en el script), ya que el NRF24L01+PA+LNA puede consumir demasiada corriente en ciertas situaciones que pueden resultar en comunicación inestable. Al igual que con el nodo emisor, el nodo receptor no utiliza el pin de interrupción (D2 en este caso).

Finalmente, el usuario debe soldar un terminal de tornillo de 4 pines (incluido en el paquete Deluxe) en la huella I2C n.° 3 y conectar la pantalla LCD. Tenga en cuenta que la pantalla LCD está conectada mediante el uso de la "mochila", que permite que la pantalla LCD se conecte solo mediante cuatro cables a través del bus I2C y la alimentación. La mayoría de los módulos LCD vienen con esta mochila ya instalada.

Configurar el software

Los scripts para el remitente y el receptor en este tutorial se han reducido al mínimo. Esto es para mantener la codificación lo más simple posible y comenzar lo más rápido posible. Sin embargo, se recuerda al usuario que se omiten muchos de los detalles relacionados con el funcionamiento de los módulos de RF.

Los scripts del remitente y del receptor se describen a continuación. Tanto la parte del remitente como la del receptor están contenidas en el mismo script. Al cargar el lado del remitente, simplemente descomente la línea #define COMPILE_TX y comente la línea #define COMPILE_RX y viceversa al cargar el lado del receptor. Tenga en cuenta además que en este tutorial se utilizan dos microcontroladores Arduino diferentes y, por lo tanto, se debe realizar la selección correspondiente en el software IDE.

Consulte la siguiente descarga para obtener el archivo INO para Arduino IDE.

Observe que en el script de las líneas 17 y 21 los pines CE y CSN se seleccionan ya que corresponden a la selección de hardware respectiva que se realizó en la Sección 4. Poder seleccionar entre diferentes pines CE y CSN (así como la interrupción, que es no se utiliza en este tutorial) es bastante útil. Como, por ejemplo, si una parte diferente del proyecto/pila utiliza un pin que de otro modo habría sido requerido por el módulo de RF si los pines de selección de hardware no hubieran estado disponibles en la placa.

Resultados y conclusión

Figura 5: Salida del monitor serie del lado Rx.

Con los scripts del remitente y del receptor cargados correctamente, se debe establecer la comunicación entre los nodos. Para ver los resultados, el microcontrolador receptor debe estar conectado a la computadora que ejecuta el IDE de Arduino a través del USB y abrir el Monitor IDE (“Herramientas\Monitor Serial”). El comando Serial.print escribirá la salida en el monitor IDE. Si todo es exitoso, el monitor debería imprimir un número entero que aumenta cada dos segundos, similar a lo que se muestra en 5.

Figura 6: Impresión LCD del contador.

Además, la pantalla LCD debería mostrar el contador incrementado, actualizándose aproximadamente cada segundo. La impresión de la pantalla LCD se puede ver en la Figura 6.

Este tutorial mostró las características destacadas del NRF-Shield. Los más notables incluyen:

  • Capacidad de interconectar tres tamaños comunes del módulo RF NRF24L01+.
  • Posibilidad de cambiar los pines del hardware, que se refleja en el script correspondiente.
  • Capacidad de alimentar el módulo RF con dos métodos diferentes.
  • Compatibilidad con una gama de microcontroladores Arduino.

Solución de problemas

"La RF es difícil". – D. Cornualles


Las siguientes son sugerencias para solucionar problemas. Hay varias cosas que pueden salir mal o impedir que el proyecto funcione según lo previsto. Esto es válido para cualquier proyecto electrónico de bricolaje, pero especialmente cuando se trata de dispositivos de RF.


Si el código no se carga

  1. Prueba a cambiar el cable USB.
  2. Asegúrese de que esté seleccionado el puerto adecuado dentro del IDE.
  3. Intente cargar un ejemplo genérico (por ejemplo, "Hola mundo") que vino con la instalación del IDE. Asegúrese de que el ejemplo genérico funcione antes de continuar. Para ello, desconecte todas las conexiones LoRa, para asegurarse de que el programador y el microcontrolador no estén defectuosos.
  4. En el software IDE, en Archivo\Preferencias, habilite "Mostrar salida detallada durante:" en "compilación" y "carga". Lea el resultado al intentar cargar el script. Puede copiar y pegar partes del resultado y buscar en línea en foros. Lo más probable es que el tema haya sido tratado extensamente en línea.

Si el hardware no funciona

  1. Asegúrese de que el nodo remitente tenga cargado el script correspondiente correcto descomentando la línea 7 y comentando la línea 8. Viceversa para el nodo receptor.
  2. Usando un multímetro en la configuración de voltaje de CC, asegúrese de que VCC a GND lea los valores correctos.
  3. Desconecte la energía. Usando un multímetro en la configuración de conductividad, verifique todas las conexiones entre todos los componentes.
  4. Asegúrese de que los pines de selección de hardware para el nodo emisor y receptor sean exactamente los establecidos en los scripts correspondientes.
  5. A lo largo del script, coloque fragmentos de salida para ayudar a depurar. Algo similar a: Serial.println(“goto x”); donde x es un número que cambia para saber qué código se ha excluido.