Comunicación Inalámbrica usando dos NRF24L01 de bajo costo

Descripción

En este tutorial utilizaremos la librería denominada “RF24 by TMRh20” v.1.1.6 para ARDUINO IDE para comunicar dos dispositivos NRF24, uno como transmisor y otro como receptor, conectados a placas ARDUINO UNO y INTEL EDISON respectivamente.

Vamos a monitorear el resultado mediante los puertos seriales respectivos.

NIVEL INTERMEDIO

Referencias Externas

Un agradecimiento especial a terry@yourduino.com por su tutorial sobre los diferentes tipos de conexion para las multiples librerias disponibles para el NRF24.

Materiales

(*) Opcionalmente el Edison se puede reemplazar con otra tarjeta ARDUINO UNO

(!) Antes de seguir estas instrucciones asegúrese de entender las Condiciones de Uso de nuestro sitio.

Pre-requisitos

  1. Realice la configuración previa del Intel Edison (controladores, firmware, software en general) para su PC. Existen varios tutoriales para esto. Por ejemplo este.
  2. Instale el IDE de ARDUINO de https://www.arduino.cc/en/Main/Software
  3. Instale la librería “RF24 by TMRh20” en el ARDUINO IDE (Menu: Sketch > Include Library > Manage Libraries > [Install] )

rf24 manage libraries

Figura 1 – Librería RF24 by TMRh20

 

Pasos Resumidos

  1. Conecte los módulos nRF24 a las placas EDISON y ARDUINO tal y como se describe en la figura 2 abajo.
  2. Abra el ejemplo “RF24 > Getting Started” y programe con él su tarjeta ARDUINO (transmisor)
  3. Modifique el programa de ejemplo para que la variable “radioNumber” tenga un valor de 1 (ver figura 5) y programe su tarjeta EDISON (receptor) con este programa modificado.
  4. Monitoree el transmisor usando una conexion serial (Serial Monitor del ARDUINO IDE o PuTTY a 115200 baudios) y presione la tecla “T”

Procedimiento Detallado

PASO 1 –  CONEXIONES

La siguiente imagen ilustra las conexiones desde los pines del NRF24 a las placas ARDUINO o EDISON.

nrf24 pin connections

Figura 2 – Conexiones


PASO 2 – PROGRAMANDO EL TRANSMISOR

Abra el ejemplo de la librería “RF24 by TMRh20” denominado “Getting Started” (Menu: File > Examples > RF24 > Getting Started)

La variable “radio Number” definida en la línea 14 determina el modo de operación, en este caso debe ser 0 (tal y como viene predeterminada) para el transmisor.

radionumber_0

Figura 3 – Variable Radio Number para Transmisor

Cargue el programa en su tarjeta ARDUINO.

El monitor serial del IDE de arduino debe estar configurado para operar a 115200 baudios (ver figura 4).

(!) En este punto la tarjeta ARDUINO estará lista para transmitir; esperando que se conecte un receptor a la red. Puede apagar el ARDUINO por el momento.

115200

Figura 4 – Configuración de la pantalla de monitor serial


PASO 3 – PROGRAMANDO EL RECEPTOR

Utilizando el mismo programa, modifique el valor de la variable “radioNumber” para que sea igual a 1 (ver figura 5) y programe su tarjeta EDISON con esta nueva versión del programa.

radionumber_1

Figura 5 – radioNumber = 1

(!) En este punto la tarjeta EDISON estará lista para recibir datos, esperando mensajes del transmisor. Al abrir el monitor serial (SHIFT + CTRL + M) no se observará ninguna reacción. Recuerde asegurarse de que la velocidad del monitor sea 115200 baudios.


PASO 4 – PRUEBAS FINALES

Encienda el ARDUINO UNO (transmisor) conectándolo a su computador y abra el monitor serial. Verá una imagen similar a la figura 4.

Encienda el EDISON (receptor) conectándolo a la fuente de poder y al computador. Abra una terminal “PuTTY” para ver el monitoreo serial del EDISON. Recuerde la usar el puerto “Intel Virtual COM Port (COM??)” a una velocidad de 115200  como se ilusrta en la figura 6.

PuTTY_VirtualCOMPort

Figura 6 – Configurando PuTTY para monitorear el EDISON

Vaya al Monitor Serial del ARDUINO IDE y presione la tecla T

En este momento veremos como se comunican los dos equipos de manera inalámbrica como se ilustra en la figura 7.

Test_Sending_Receiving

Figura 7 – Monitoreando Transmisor y Receptor

(!) Nótese que aquí utilizamos los términos TRANSMISOR para el ARDUINO UNO y RECEPTOR para el EDISON con cierta ligereza. Ambos dispositivos transmiten y reciben en distintos momentos. El ARDUINO UNO envia datos al EDISON, el cual los envia de vuelta al ARDUINO UNO.

¿Cuándo creamos conocimiento?

Cuando aprendemos algo nuevo y lo podemos reproducir; lo que implica que lo hemos documentado; y lo hemos publicado/compartido con otros y ellos pueden reproducirlo también.

Crear conocimiento involucra la capacidad de mejorar algo existente.

Comunicación Inalámbrica con nRF24L01

Descripción

En este tutorial utilizaremos la librería denominada “RF24 by TMRh20” v.1.1.6 para ARDUINO IDE para comunicar dos dispositivos NRF24, uno como transmisor y otro como receptor, conectados a placas ARDUINO UNO y INTEL EDISON respectivamente.

Vamos a monitorear el resultado mediante los puertos seriales respectivos.

NIVEL INTERMEDIO

Referencias Externas

Un agradecimiento especial a terry@yourduino.com por su tutorial sobre los diferentes tipos de conexion para las multiples librerias disponibles para el NRF24.

Materiales

(*) Opcionalmente el Edison se puede reemplazar con otra tarjeta ARDUINO UNO

(!) Antes de seguir estas instrucciones asegúrese de entender las Condiciones de Uso de nuestro sitio.

Pre-requisitos

  1. Realice la configuración previa del Intel Edison (controladores, firmware, software en general) para su PC. Existen varios tutoriales para esto. Por ejemplo este.
  2. Instale el IDE de ARDUINO de https://www.arduino.cc/en/Main/Software
  3. Instale la librería “RF24 by TMRh20” en el ARDUINO IDE (Menu: Sketch > Include Library > Manage Libraries > [Install] )

rf24 manage libraries

Figura 1 – Librería RF24 by TMRh20

 

Pasos Resumidos

  1. Conecte los módulos nRF24 a las placas EDISON y ARDUINO tal y como se describe en la figura 2 abajo.
  2. Abra el ejemplo “RF24 > Getting Started” y programe con él su tarjeta ARDUINO (transmisor)
  3. Modifique el programa de ejemplo para que la variable “radioNumber” tenga un valor de 1 (ver figura 5) y programe su tarjeta EDISON (receptor) con este programa modificado.
  4. Monitoree el transmisor usando una conexion serial (Serial Monitor del ARDUINO IDE o PuTTY a 115200 baudios) y presione la tecla “T”

Procedimiento Detallado

PASO 1 –  CONEXIONES

La siguiente imagen ilustra las conexiones desde los pines del NRF24 a las placas ARDUINO o EDISON.

nrf24 pin connections

Figura 2 – Conexiones


PASO 2 – PROGRAMANDO EL TRANSMISOR

Abra el ejemplo de la librería “RF24 by TMRh20” denominado “Getting Started” (Menu: File > Examples > RF24 > Getting Started)

La variable “radio Number” definida en la línea 14 determina el modo de operación, en este caso debe ser 0 (tal y como viene predeterminada) para el transmisor.

radionumber_0

Figura 3 – Variable Radio Number para Transmisor

Cargue el programa en su tarjeta ARDUINO.

El monitor serial del IDE de arduino debe estar configurado para operar a 115200 baudios (ver figura 4).

(!) En este punto la tarjeta ARDUINO estará lista para transmitir; esperando que se conecte un receptor a la red. Puede apagar el ARDUINO por el momento.

115200

Figura 4 – Configuración de la pantalla de monitor serial


PASO 3 – PROGRAMANDO EL RECEPTOR

Utilizando el mismo programa, modifique el valor de la variable “radioNumber” para que sea igual a 1 (ver figura 5) y programe su tarjeta EDISON con esta nueva versión del programa.

radionumber_1

Figura 5 – radioNumber = 1

(!) En este punto la tarjeta EDISON estará lista para recibir datos, esperando mensajes del transmisor. Al abrir el monitor serial (SHIFT + CTRL + M) no se observará ninguna reacción. Recuerde asegurarse de que la velocidad del monitor sea 115200 baudios.


PASO 4 – PRUEBAS FINALES

Encienda el ARDUINO UNO (transmisor) conectándolo a su computador y abra el monitor serial. Verá una imagen similar a la figura 4.

Encienda el EDISON (receptor) conectándolo a la fuente de poder y al computador. Abra una terminal “PuTTY” para ver el monitoreo serial del EDISON. Recuerde la usar el puerto “Intel Virtual COM Port (COM??)” a una velocidad de 115200  como se ilusrta en la figura 6.

PuTTY_VirtualCOMPort

Figura 6 – Configurando PuTTY para monitorear el EDISON

Vaya al Monitor Serial del ARDUINO IDE y presione la tecla T

En este momento veremos como se comunican los dos equipos de manera inalámbrica como se ilustra en la figura 7.

Test_Sending_Receiving

Figura 7 – Monitoreando Transmisor y Receptor

Guía de Publicación de Tutoriales/Proyectos

Para nosotros es muy importante la calidad en el material que publicamos. Queremos que los tutoriales o proyectos que se publiquen tengan un formato sencillo de leer, y que aporte valor a la tarea de seguirlos.

Seguidamente se explican las diferentes secciones de nuestros tutoriales.

1. Descripción

En esta sección describimos de qué se trata el tutorial, las tecnologías utilizadas y el objetivo o resultado esperado de ejecutar el tutorial y la duración esperada para el tutorial.

2. Referencias Externas

En esta sección listamos las referencias a documentacion en Internet que utilizamos para adquirir conocimientos sobre el tutorial.

3. Disclaimer sobre Intención y Responsabilidad

Aquí colocamos un enlace a nuestra página donde se explique que estas instrucciones se brindan de buena fe, sin ninguna garantía de funcionamiento; y que no asumimos responsabilidades (Salvo lo que indique la ley) sobre daños o perjucios realizados durante la ejecución del tutorial.

(!) Antes de seguir estas instrucciones asegúrese de entender las Condiciones de Uso de nuestro sitio.

4. Resumen

Aquí escribmos un resumen de los pasos a seguir para la persona que ya tiene conocimento sobre cómo realizarlos. Cada paso debe ser de un párrafo máximo y sin mayores explicaciones gráficas.

5. Lista de Materiales

En esta sección especificamos los materiales recomendados y agregamos en la medida de lo posible, enlaces a tiendas en línea donde comprar los materiales.

6. Pasos Detallados

En esta sección describimos los pasos del proyecto y opcionalmente, la duración esperada de cada uno, se incluyen diagramas, imágenes y listas de comandos en detalle.

7. Agradecimientos

Aquí reconocemos (listamos) a las personas y organizaciones que hacen posible este tutorial.

Intel Edison – Cómo Grabar Sonido usando un adaptador USB

Descripción

Una de las capacidades de Intel Edison que me resultan más intersantes es la capacidad de manejar dispositivos USB compatibles con LINUX, incluyendo adaptadores para grabar y ejecutar Audio.

Este pequeño proyecto nos permitirá adentrarnos en esta capacidad. Vamos a conectar un adaptador de audio USB al Edison, y vamos a grabar sonido.

Fuente: Intel’s Edison Audio Setup Guide

(!) Antes de seguir estas instrucciones asegúrese de entender las Condiciones de Uso de nuestro sitio.


En resumen:

  1. Se conecta el dispositivo de Audio al puerto USB colocando el switch de selección USB en posición “up”
  2. Se conecta el Edison a la laptop mediante el puerto serial para usar la terminal LINUX con software como putty (windows) o screen (linux)
  3. Se obtiene una lista de dispositivos de audio USB para determinar el numero de dispositivo a utilizar.
    • cat /proc/asound/pcm
  4. Se listan los puertos de audio disponibles para determinar el puerto de salida (out) y de entrada (mic).
    • pactl list | grep Name | grep usb
  5. Se configura los puertos predeterminados (sink y source)
    • pactl set-default-sink {output-device-name}
    • pactl set-default-source {input-device-name}
  6. Se ejecuta el comando arecord con los parámetros correspondientes para el adaptador en uso.
    • arecord -f cd -c 1 -d 10 -r 44100 -D hw:2,0 soundfile.wav
  7. La grabación es almacenada en un archivo soundfile.wav

Lista Recomendada de Materiales:


PASO #1 – Conectar el Edison

Para este proyecto necesitaremos conectar el Edison a un computador por medio del puerto serial USB. Esto para poder manipular la terminal linux del Edison. El purto USB Serial es el que se ubica en la parte inferior derecha. Se puede usar putty (en el caso de Windows) o screen (en el caso de Linux) para acceder a dicha terminal. En el Administrador de Dispositivos de Windows, el puerto aparece bajo el nombre “Ports (COM & LPT) > USB Serial COM Port (COMxx)


PASO #2 – Conectar el Adaptador de Audio USB edison_usb

Este proyecto se ha probado en diversos adaptadores de audio (Plantronics*, Pluggable*, SYBA*)

Se conecta el adaptador de audio USB al puerto USB principal del Edison. Nótese que el switch de selección de modo USB debe estar en posición “up” para activar el puerto USB. Esto desactiva el puerto dedicado a recibir los Sketch de ARDUINO.


PASO #3 – Listar los Dispositivos

Una vez conectado al Edison, el sistema operativo reconoce el dispositivo de audio USB. Se puede listar los dispositivos de audio conectados al Edison usando el siguiente comando. Puede ejecutarlo con el dispositivo de audio conectado y desconectado para ver la diferencia de resultado. Anote el número de dispositivo.

cat /proc/asound/pcm

cat_proc_asound_pcm


PASO #4 – Listar los Puertos de Audio

Seguidamente necesitaremos anotar el nombre de los puertos de audio, utilizando el siguiente comando.

pactl list | grep Name | grep usb

pactl_list_grep


PASO #5 – Configurar Los Dispositivo de entrada y salida de audio

Utilice los siguientes comandos para configurar los dispositivos predeterminados de entrada y de salida de audio.

pactl set-default-source {input-device-name}

pactl set-default-sink {output-device-name}

edison_set_default_audio

 


PASO #6 – EJECUTE ARECORD

El siguiente comando se usa para grabar audio del dispositivo 2,0 que anotamos en el paso #3 a un archivo “soundfile.wav”

Puede necesitar opciones diferentes de arecord dependiendo de su dispositivo de audio USB. Las opciones disponibles pueden encontrarse en este enlace.

En este ejemplo, estamos grabando 10 segundos de audio (-d 10) a un “rate” de 44100, para un dispositivo 2,0 (-D hw:2,0)

arecord -f cd -c 1 -d 10 -r 44100 -D hw:2,0 soundfile.wav


Disclaimer:

(*) Este artículo cita marcas registradas que son propiedad de sus respectivos dueños

Al momento de escribir este artículo, el autor fungía como empleado de Intel Corp

Este artículo se brinda “tal cual” y de buena fe como un método para compartir conocimientos. No se brinda garantía de funcionamiento de ningún tipo; no asumimos responsabilidad por daños o pérdidas causados al seguir estas instrucciones; salvo lo que indique la ley aplicable.

 

Un Agradecimiento especial para nuestros amigos del Laboratorio de Investigación e Innovación Tecnológics (LIIT) de UNED, con quienes hemos trabajado largas horas explorando estas tecnologías.