jueves, 7 de noviembre de 2013

Conociendo los tranceptores inalámbricos de radiofrecuencia NRF24L01 2.4GHz

Cuando dos o más Arduinos son capaces de comunicarse entre sí inalámbricamente a través de una distancia se abren muchas posibilidades :
  • Sensores remotos de temperatura , presión , alarmas, mucho más 
  • Robot de control y vigilancia de 50 pies a 2.000 pies de distancia
  • Control remoto y monitorización de los edificios cercanos o en el vecindario
  • Vehículos autónomos de todo tipo
Los módulos de radio de 2,4 GHz están basados en el integrado Nordic Semiconductor nRF24L01 + chip. El Nordic nRF24L01 + integra un transceptor completo RF de 2,4 GHz , sintetizador de RF , y la lógica de banda base incluyendo el acelerador de protocolo de hardware que soporta una interfaz SPI de alta velocidad para el controlador de la aplicación ShockBurst mejorada ™ . 
Rango efectivo
El rango es muy dependiente de la situación y es mucho mayor con la línea de visión clara al aire libre que en el interior con efectos de paredes y los materiales . La distancia habitual citado por los distintos proveedores para el módulo de la versión de baja potencia con el chip único es de 200 pies o 100 metros. Este es para el espacio abierto entre las unidades que operan a 250KHz . En interiores, el alcance será menor debido a las paredes , etc .
La sugerencia es que probemos dos unidades en sus ubicaciones reales antes de tomar una decisión. Hay unidades de largo alcance con un preamplificador de potencia para la antena y una antena externa . El alcance entre la unidad de largo alcance y varias unidades de bajo consumo será mejor que entre dos unidades de baja potencia. Cada situación es un poco diferente y difícil de conseguir una distancia efectiva sin pruebas reales .
No es obligatorio, pero si se quiere entender más acerca de lo que puede hacer con este "pequeño " radio, descargue la hoja de datos . En particular, es posible que desee leer las páginas 7-8-9 ( Para Información y Operaciones) y página 39 ( MultiCeiver , que permite a 6 Arduinos hablar con un Arduino primario de una manera organizada ) . Afortunadamente los productos a nivel de placa que se encargará de muchos de los detalles físicos y eléctricos y la impedancia de adaptación de antena , etc , y ya existe una biblioteca que se ocupa de un montón de inicialización de registro y los detalles operativos . Hay módulos adicionales que se suman los amplificadores de potencia del transmisor y del receptor preamplificadores para distancias más largas .. hasta 1 km ( 3000 pies).
Version de corto alcance
radio1                radio2
Versión de largo alcance
radio3           radio 4

Estos transceptores utilizan la banda sin licencia de 2,4 GHz (IMC) como muchos routers WiFi, algunos teléfonos inalámbricos, etc. y permiten tanto enviar y recibir datos en "paquetes" de varios bytes a la vez. Cuentan con una función de corrección de errores y de reenvío, y es posible tener una unidad de comunicación con hasta 6 unidades similares al mismo tiempo.
Estas unidades de bajo costo increíbles tienen mucha complejidad interna, pero algunas personas con talento han escrito bibliotecas para Arduino y PIC que los hacen fáciles para nosotros. Tenemos otras páginas que muestran ejemplos y apuntan a las bibliotecas de software libre que pueda necesitar. Todos ellos utilizan el mismo pinout como se muestra en el siguiente diagrama, que es una vista desde arriba (Correction!):
     

La conexión de los pines del transceptor al arduino es la siguiente:
pines
NOTA: Estas unidades de conexión VCC debe ir a 3.3V, no a 5.0V, aunque el propio Arduino puede funcionar a 5,0 V y la señal va a estar bien. Arduino UNO y versiones anteriores tienen una salida de 3,3 V que se puede ejecutar la versión de baja potencia de estos módulos, pero las versiones de alta potencia deben tener un suministro de 3,3 V por separado.
Hay dos (o más) buenas bibliotecas de software para nRF24L01 y tenemos páginas que muestran algunos ejemplos:
Descargas
Este es mi versión de un sistema de envio de mensajes entre 2 arduinos, está basado en uno de los ejemplos de la biblioteca y permite intercambiar mensajes de texto entre 2 arduinos:
Descargar Si tienen preguntas o comentarios me los pueden enviar a mi correo info@tecnotinker.com o al twitter @tecnotinker