Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

Dominando Módulos Bluetooth Microchip RN487x para Periféricos de Baja Potencia

Aprende a configurar la familia de módulos Bluetooth RN487x de Microchip para tus proyectos de periféricos de baja potencia.

Si estás construyendo un dispositivo compacto y energéticamente eficiente, Bluetooth es casi siempre la opción de comunicación de referencia. Con los años el estándar ha madurado, y hoy una amplia gama de módulos listos para usar proveen un system‑on‑chip (SoC) completo que satisface las necesidades de muchos periféricos. Un ejemplo popular es el nrf52840 de Nordic, que combina un procesador de 32 bits, radio Bluetooth multi‑protocolo y un completo conjunto de interfaces I/O como GPIO, PWM, USB, SPI e I²S.

Aunque potentes, estos SoCs pueden ser intimidantes: la curva de aprendizaje y el tiempo de desarrollo requerido para integrar el firmware embebido son significativos. Para muchos casos de uso comunes —sensado o control remoto con solo unos pocos canales analógicos o digitales— una solución más simple y enfocada es a menudo preferible.

Entran la familia RN487x de Microchip. Los dos módulos en esta familia —RN4870 y RN4871— ofrecen múltiples canales digitales y analógicos bi‑direccionales concurrentes manteniendo la huella de diseño y el esfuerzo de firmware mínimos. Cada módulo almacena una configuración compacta en su NVRAM, permitiéndote adaptar la funcionalidad del periférico a tus requisitos exactos. Importantemente, los módulos permanecen totalmente conformes con el estándar Bluetooth Low Energy (BLE), asegurando emparejamiento sin fisuras con smartphones modernos y otros clientes BLE.

En esta serie de tres partes, recorreremos la creación de un periférico Bluetooth‑habilitado totalmente funcional para cuatro tareas típicas: un sensor digital, un control digital, un sensor analógico y un control analógico. Cada ejemplo incluye un circuito de referencia, los pasos precisos de configuración RN487x y un script Python simple que demuestra cómo interactuar con el periférico desde un host Linux. Los scripts están exhaustivamente documentados para que puedas embeber fácilmente los periféricos como subsistemas en diseños mayores.

Visión General del Diseño

A continuación una ilustración gráfica del ejemplo "sensor analógico", destacando las interfaces clave en rojo.

 

Dominando Módulos Bluetooth Microchip RN487x para Periféricos de Baja Potencia

Una representación de un sistema Linux comunicándose con un periférico

 

Construiremos tres componentes centrales para este ejemplo:

Selección de Componente

La familia RN487x ofrece dos variantes: RN4870 y RN4871. Difieren principalmente en conteo de pines y tipos de I/O disponibles. Abajo una tabla reorganizada de presupuesto de pines para ayudarte a decidir qué chip se adapta mejor a tu proyecto.

Hay tres categorías de pines I/O en los módulos:

Tipo Descripción
ADC Entrada analógica: convierte una tensión en valor numérico.
PWM Salida analógica: genera onda cuadrada cuya frecuencia y duty cycle se fijan con dos números.
DIO Entrada o salida digital: nivel alto o bajo representa lógica 1 o 0.

 

RN4870

Dominando Módulos Bluetooth Microchip RN487x para Periféricos de Baja Potencia

Imagen del datasheet RN487x

 

Pin Name/Capability P1_0 P1_1 P1_2 P1_3 P2_2 P2_3 P2_4 P2_5
ADC x x x x
PWM x x
DIO x x x x x

 

RN4871

Dominando Módulos Bluetooth Microchip RN487x para Periféricos de Baja Potencia

Imagen del datasheet RN487x

 

Pin Name/Capability P1_2 P1_3
ADC x
PWM
DIO x x

 

Estas tablan aclaran que si tu diseño solo necesita una entrada analógica y sin salidas PWM, el RN4871 es la opción más ligera. Para proyectos que requieren múltiples señales o PWM, el RN4870 es la selección apropiada. En el ejemplo de sensor analógico usamos el RN4871 y conectamos el sensor al pin P1_2.

Capa de Perfil de Atributo Genérico (GATT) de la Pila de Protocolo BLE

Antes de escribir la aplicación host, es esencial entender la API GATT que mediará la comunicación entre host y periférico.

Todos los dispositivos BLE exponen una base de datos GATT que el periférico (servidor) puebla. El host (cliente) usa llamadas GATT para leer o escribir valores identificados por handles o nombres. Operaciones GATT típicas en Python lucen así:

gatt_rq.connect() # Escribe un valor en un handle de característica
gatt_rq.write_by_handle(vh_light, str(bytearray([8])))

La primera llamada establece conexión; la segunda escribe datos que se reflejan inmediatamente en las salidas del periférico. La API GATT es soportada por iOS, Android, Windows y Linux. Nuestros ejemplos usan Python en Linux para amplia compatibilidad.

Configuración del Módulo

Para puentear la señal física a la base de datos GATT, debes programar la NVRAM del RN487x con dos bloques clave de configuración:

El RN487x usa un lenguaje de comandos ligero para configuración. Refiérete al apéndice para detalles sobre establecer conexión de consola y emitir comandos de configuración. Tras programar, la NVRAM del módulo podría verse así:

 

Dominando Módulos Bluetooth Microchip RN487x para Periféricos de Baja Potencia

 

Todos los valores de configuración residen dentro de una jerarquía de dos niveles de servicios y características —útil al escalar a diseños multi‑sensor o multi‑control.


 

Esto concluye la parte uno de nuestra serie tutorial RN487x de tres partes. Las partes 2 y 3 cubrirán implementaciones de entrada digital, control digital, sensor analógico y control analógico. La parte 4 discutirá tópicos avanzados aplicables a todos los ejemplos.

Abajo hay un apéndice que describe cómo configurar los módulos antes de sumergirse en los proyectos detallados.

Usando Conexión de Consola para Configurar el RN487x

Alimenta el módulo y establece un enlace serie a tu workstation. Cada circuito demo incluye un jumper "prog" de 3 pines exponiendo RX, TX y GND. Si necesitas guía, una excelente guía está disponible aquí.

Lanza un emulador de terminal. La utilidad miniterm (incluida en muchas distribuciones Python) es buena opción. En un shell, iníciala así:

python -m serial.tools.miniterm --eol LF /dev/ttyUSB0 115200

El baud rate por defecto 115200 es adecuado para RN487x.

Cambia de modo DATA a COMMAND tecleando tres signos de dólar ("$$$") —no verás los caracteres, pero el prompt cambia a:

CMD>

Prueba pulsar d seguido de Enter; el módulo eco su estado:

CMD> BTA=D88039F80080 Name=RN_BLE Connected=no Authen=2 Features=0000 Services=00 CMD>

Habilita echo si quieres ver la tecla que pulsas: presiona + y Enter:

CMD> ECHO ON CMD>

Crear un nuevo servicio GATT es tan simple como emitir un comando PS, por ejemplo:

CMD> PS,59c88760536411e7b114b2f933d5fe66 AOK

Las configuraciones de proyecto también requieren scripts multi‑línea. Inicia un script con WW, introduce cada línea y finaliza con Esc para confirmar:

CMD> ww
@CONN |O,08,72
AOK
CMD>

Inicialización Común del Módulo

Al reutilizar un módulo RN487x entre proyectos, configuración previa puede interferir con nuevos usos. Realiza los siguientes pasos de limpieza antes de cada ejemplo:

Ejecuta la secuencia de comandos siguiente:

CMD> WC AOK
CMD> SR,0040 AOK
CMD> PZ AOK
CMD> SW,0A,00 AOK
CMD> R,1 Rebooting

Setup Linux Requerido para Ejecutar Scripts Python de Ejemplo

Hardware

Asegura que tu sistema host tenga hardware BLE (Bluetooth 4.0 o superior). Si necesitas adaptador USB, recomendamos uno basado en Qualcomm CSR8510, disponible aquí.

 

Software

Los scripts de ejemplo han sido probados en Debian 10 y deberían funcionar en otras distribuciones basadas en Debian como Ubuntu. Dos paquetes Python son requeridos que no vienen instalados por defecto:

Instalar gattlib construye una librería ELF, así que necesitarás herramientas de build y librerías. Un script helper que instala todas las dependencias está disponible aquí. Tras descargar, haz el script ejecutable y ejecútalo.

Referencias

Mantente atento a las próximas partes de esta serie, donde construiremos los ejemplos completos de entrada digital y control digital.

Saltar a proyectos 1 y 2: construyendo una entrada digital y un control digital.

Tecnología de Internet de las cosas

  1. Mida Sensores Analógicos en Raspberry Pi sin ADC Nativo
  2. Lectura de Sensores Analógicos con Raspberry Pi y Zabbix: Guía Paso a Paso
  3. Elecciones de diseño Bluetooth Mesh: Módulo vs. Dispositivo discreto
  4. Contrinex 2020: Sensores listos para cloud y cortinas láser Bluetooth para seguridad
  5. ADLINK Despliega IA del Edge a Cloud con Plataforma NVIDIA EGX: Soluciones Edge Computing Aceleradas
  6. Aprovechando IoT Celular y Bluetooth LE: Enfoque Sinérgico para Conectividad de Próxima Generación
  7. Aprovechar los datos en el Internet de la Fiabilidad: estrategias para una gestión efectiva
  8. Del Edge al Cloud: Dominando pipelines de datos IoT
  9. Digitalización en alimentación y bebidas: mejorando seguridad, trazabilidad y eficiencia
  10. Insights de Edge Computing y estrategia IoT desde IoT World 2019
  11. Cómo una Plataforma IIoT Unificada Impulsa el Éxito en Manufactura Digital