Cómo comenzar a usar Bluetooth 4.0 (BLE / Low Energy)

6

Quiero comenzar con Bluetooth 4.0 / Bluetooth Low Energy / BLE. Sé que es diferente de un Bluetooth normal.

Actualmente estoy usando el módulo BlueSmirf Bluetooth 2.1, la interfaz UART y el perfil SPP.

Tengo una operación simple enviando una cadena a arduino. Hasta 512 bytes / segundo. Ya que estoy usando el módulo BlueSMirft BT, es fácil y todo es transparente.

Parece que no es fácil hacer esto en BT4. enlace

Solo quiero tener una idea básica de lo difícil que es aprender BT 4.0 antes de comprar el kit de desarrollo. No es barato, $ 350 +.

  1. ¿Tiene un código de ejemplo sobre cómo configurar y enviar una cadena simple utilizando BT4?
  2. La tecnología Bluetooth de baja energía admite paquetes de datos muy cortos (8 octetos mínimo hasta 27 octetos máximo) que se transfieren a 1 Mbps. enlace Con esta limitación, ¿puedo enviar datos a 512 bytes / segundo?

¡Gracias!

    
pregunta mlam

5 respuestas

13

También he estado jugando con BLE, y decidí usar el chip Nordic nRF8001 porque parecía más fácil trabajar con él y no requería herramientas IAR caras. nRF8001 es un poco más barato que la pieza CC2540 en BLE112, pero es solo para esclavos.

Compré el kit de desarrollo nRF8001 de Nordic por $ 99, que incluye nRF8001 muestras y varios nRF8001 Tableros (uno con una antena de rastreo y otro con un conector SMA) con un cabezal estándar de 0.1 "para una fácil conexión con el tablero de desarrollo de su microcontrolador. La documentación asume que usted tiene el tablero de desarrollo nRFgo de $ 399 y desea usar el microcontrolador nRF8200 incluido. No, entonces en cambio, conecté una placa nRF8001 directamente a un Arduino.

Hablas SPI a nRF8001, pero básicamente con 2 pines diferentes de tipo esclavo. Un pin (REQN) es una selección de esclavos tradicional que se baja para indicar que el maestro (usted) desea enviar un mensaje. El otro pin (RDYN) es para el esclavo (nRF8001) para indicar que recibió algo sobre RF que desea enviar al maestro, o que está listo para recibir un comando del maestro. Luego, el Maestro baja el nivel de REQN y comienza a recibir.

El protocolo es muy conciso y está bien documentado (en el PDF de especificaciones del producto proporcionado por Nordic) y escribí un boceto de Arduino para configurar el nRF8001 y tenerlo hablando con mi iPhone 4S en una tarde. El formato es básicamente un byte de longitud, un byte de comando y luego los argumentos opcionales específicos del comando.

Necesitará el software nRFgo Studio de Nordic para crear una configuración que especifique los servicios que su dispositivo admitirá; luego incluirá un archivo services.h que contiene los mensajes de configuración que necesita enviar a nRF8001. Finalmente logré emular un monitor de frecuencia cardíaca y mostrar los números en la aplicación de demostración de Nordic para iOS.

Una gran ventaja de nRF8001 en comparación con BLE112 es que, aparte de los mensajes de configuración patentados generados por nRFgo Studio, solo se trata de un protocolo serie bien documentado. No hay actualizaciones de firmware! Es genial que el CC2540 tenga un microcontrolador 8051 incorporado, pero tendrá que pagar miles de dólares por las herramientas IAR o lidiar con las limitaciones y molestias de la pila de software de BlueGiga. Un CC2540 en bruto es más barato que el nRF8001 más un microcontrolador, pero los tableros de BlueGiga no son baratos.

(Hay un UART en el nRF8001 que se saca en las tarjetas incluidas en el kit de desarrollo, pero es solo para el Modo de prueba directa de Bluetooth y no se usa normalmente).

    
respondido por el Guan Yang
3

La presentación en el sitio web de BlueGiga para este módulo, última diapositiva, proporciona el rendimiento de los datos:

enlace

El rendimiento real de los datos de la aplicación está limitado a 200 kbps, aunque los datos se transmiten a 1Mbps.

Desea transferir 512 bytes por segundo == 512 x 8 = 4096 bits por segundo

4096 x 60 segundos = 245760 bits por minuto, que es 45 kbps más de lo que puede admitir la baja energía de Bluetooth.

Por lo tanto, solo si puede reducir su carga de datos, tiene posibilidades de funcionar.

Además, no se olvide, BLE es de baja potencia / energía porque está diseñado para enviar solo pequeñas cantidades de datos de manera irregular. Si está enviando la gran cantidad de datos que está proponiendo, no estoy completamente seguro de que logrará grandes ahorros de energía en su aplicación. El módulo que resaltó de BlueGiga necesita 27 mA en transmisión. Algunos de sus otros módulos (v2.1 + EDR) pueden consumir tan poco como 7mA, pero también pueden alcanzar los 70mA.

Lamentablemente, no puedo comentar sobre tu pregunta de programación, ya que no he tenido la oportunidad de usar estos módulos.

¡Buena suerte!

    
respondido por el Stuart Cording
2

enlace muestra una interesante Enfoque de BLE: el autor reutiliza un módulo nRF24L01 + extremadamente barato (1 - 2 $) y simple para enviar anuncios BLE. Para algunas aplicaciones, eso podría ser suficiente.

    
respondido por el Florian Echtler
2

Hay muchas maneras. Los dos conjuntos de chips más populares son CC2541 de TI y nRF51822 de Nordic. Tengo una buena comparación que entra en detalles: enlace

    
respondido por el Gustavo Litovsky
0

comete un error en su cálculo. 512 x 8 = 4096 bits por segundo: esto está bien y, por supuesto, se pueden enviar 4096 con 1 Mbit / seg, pueden pasar 1000000 bits, no solo 4096. ¿Por qué multiplicas eso por 60? para encontrar en minutos? 1Mbit puede transferir 100Kbyte.

    
respondido por el Dr. Nissim Zur

Lea otras preguntas en las etiquetas

Comentarios Recientes

Apunte a usar un Elbit que ya posee (aunque ciertamente no es de segunda generación) y olvídese de cualquier accesorio diferente - Presione primero el botón de control, presionando A abrirá la configuración pantalla (sus altavoces están montados en el estante debajo de sus auriculares). Verifíquelos (lista -> Lees verder