6 votos

Cómo empezar con Bluetooth 4.0 (BLE / Low Energy)

Quiero iniciarme en el uso de Bluetooth 4.0 / Bluetooth Low Energy / BLE. Sé que es diferente de un Bluetooth normal.

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

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

Parece que no es fácil hacer esto en BT4. http://www.bluegiga.com/BLE112_Bluetooth_low_energy_module

Sólo 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. ¿Tienes un código de ejemplo sobre cómo configurar y enviar una cadena simple usando BT4?
  2. La tecnología Bluetooth de baja energía admite paquetes de datos muy cortos (de 8 octetos como mínimo a 27 como máximo) que se transfieren a 1 Mbps. http://www.bluetooth.com/Pages/low-energy-tech-info.aspx Con esta limitación, ¿puedo enviar datos de 512 bytes/segundo?

Gracias.

13voto

Jeremy Puntos 14078

También he estado jugando con BLE, y decidí ir con el chip Nordic nRF8001 porque parecía más fácil de trabajar y no requería costosas herramientas IAR. nRF8001 es ligeramente más barato que la parte CC2540 en BLE112, pero es sólo esclavo.

Compré el de Nordic Kit de desarrollo nRF8001 para $99, which includes nRF8001 samples and several nRF8001 boards (one with a trace antenna and one with an SMA connector) with standard 0.1" header for easy interfacing with your microcontroller development board. The documentation assumes that you have the $ 399 placa de desarrollo nRFgo y quiero utilizar el microcontrolador nRF8200 incluido. Yo no lo hice, así que en su lugar conecté una placa nRF8001 directamente a un Arduino.

Hablas de SPI al nRF8001, pero básicamente con 2 pines diferentes tipo slave select. Un pin (REQN) es una selección de esclavo tradicional que se pone a nivel bajo para indicar que el maestro (usted) quiere enviar un mensaje. El otro pin (RDYN) es para que el esclavo (nRF8001) indique que ha recibido algo por RF que quiere enviar al maestro, o que está listo para recibir un comando del maestro. El maestro entonces pone REQN bajo 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ás el software nRFgo Studio de Nordic para crear una configuración que especifique los servicios que soportará tu dispositivo; luego incluirá un archivo services.h que contiene los mensajes de configuración que necesitas enviar al nRF8001. Finalmente conseguí emular un pulsómetro y mostrar los números en la aplicación de demostración de Nordic para iOS.

Una gran ventaja del nRF8001 en comparación con el BLE112 es que, aparte de los mensajes de configuración propios generados por nRFgo Studio, sólo se trata de un protocolo serie bien documentado. ¡No hay actualizaciones de firmware! Está muy bien que el CC2540 tenga un microcontrolador 8051 a bordo, pero tendrás 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 las placas de BlueGiga no son baratas.

(Hay una UART en el nRF8001 que se saca en las placas incluidas en el kit de desarrollo, pero es sólo para el Modo de Prueba Directa de Bluetooth y no se utiliza normalmente).

0 votos

Me encantaría hablar con usted con más detalle sobre esto. Por favor, pásate por la sala de chat en algún momento si tienes la oportunidad. Estoy allí casi todos los días de la semana desde las 10 de la mañana hasta las 6 de la tarde, hora del este, y también en otros momentos. Utiliza la @ para enviarme un mensaje y me aseguraré de pasarme por allí.

0 votos

¿Podrías publicar/añadir el esquema para el arduino y el nRF8001? Si es posible, el esquema del arduino sería impresionante.

0 votos

Probablemente soy la última persona del mundo en enterarse de que mi iPhone 4s tiene BLE (en realidad, después de buscarlo en Google, descubrí que era el primero dispositivo para implementar BT 4.0). Ahora estoy tentado de conseguir una de estas placas de desarrollo también.

3voto

Bemmu Puntos 123

En la presentación del sitio web de BlueGiga para este módulo, en la última diapositiva, se indica el rendimiento de los datos:

http://www.bluegiga.com/files/bluegiga/Bluetooth_LE/LowEnergy_HowItWorks.pdf

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

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

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

Por lo tanto, sólo si se puede reducir la carga de datos, tiene posibilidades de funcionar.

Además, no olvides que BLE es de baja potencia/energía porque está diseñado para enviar sólo pequeñas cantidades de datos de forma irregular. Si envías la gran cantidad de datos que propones, no estoy del todo seguro de que consigas un gran ahorro de energía en tu aplicación. El módulo que has destacado de BlueGiga necesita 27mA en transmisión. Algunos de sus otros módulos (v2.1+EDR) pueden consumir tan solo 7mA, pero también pueden llegar a los 70mA.

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

Buena suerte.

6 votos

¿Por qué multiplicas por 60? 4096 bits por segundo son 4kbps (frente a 200kbps como máximo). Su aplicación transferirá 245760 bits por minuto .

2voto

Colin Puntos 9392

http://dmitry.gr/index.php?r=05.Projects&proj=15&proj=11.%20Bluetooth%20LE%20fakery muestra una interesante aproximación a BLE: el autor reutiliza un módulo nRF24L01+ extremadamente barato (1 - 2 $) y sencillo para enviar anuncios BLE. Para algunas aplicaciones, eso ya podría ser suficiente.

2voto

Scott Puntos 138

Hay muchas maneras. Los dos chipsets más populares son el CC2541 de TI y el nRF51822 de Nordic. Tengo una buena comparación que entra en detalles: http://www.argenox.com/library/wp_bluetooth.php

0voto

jesal Puntos 2441

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X