El sensor BNO085 es una tecnología que ha cobrado mucha popularidad en aplicaciones relacionadas con la realidad aumentada (AR), la realidad virtual (VR) y los sistemas robóticos, entre otras áreas. Este pequeño pero poderoso dispositivo combina la funcionalidad de un acelerómetro, giroscopio y magnetómetro en un solo chip, lo que lo convierte en una herramienta indispensable para medir movimientos y orientaciones en tres dimensiones de manera precisa.
Desarrollado conjuntamente por CEVA y Bosch, el BNO085 no es simplemente una mejora de su predecesor BNO080, sino que también corrige algunos fallos importantes en el rendimiento de este último, como problemas con el protocolo SPI. El BNO085 incorpora además una serie de mejoras que lo hacen ideal para su utilización en dispositivos que requieren bajo consumo de energía y alta precisión en la captura de movimientos, como los dispositivos IoT, controladores de VR y robots móviles.
¿Qué es el BNO085?
El BNO085 es un sistema en paquete (System in Package o SiP) de 9 ejes diseñado para habilitar el rápido desarrollo de dispositivos habilitados con sensores, desde aplicaciones de realidad aumentada hasta robótica e internet de las cosas (IoT). Cuenta con un acelerómetro, magnetómetro y giroscopio, combinados con un procesador Arm Cortex M0+ de bajo consumo que ejecuta el firmware SH-2, el cual gestiona los datos de los sensores y los fusiona para crear información utilizable.
El BNO085 está diseñado para ofrecer una precisión extrema en el seguimiento de movimientos en 9 grados de libertad (9DOF), una capacidad que incluye la detección de aceleración, velocidad angular y dirección del campo magnético, entre otros parámetros clave. Además, este sensor es capaz de ejecutar librerías avanzadas proporcionadas por CEVA, adaptándose a diferentes aplicaciones, como los controladores de realidad virtual, donde es importante un bajo consumo de energía y poca latencia.
Diferencias con el BNO080
Una de las primeras preguntas al evaluar el BNO085 es cómo se diferencia del BNO080. A simple vista, ambos dispositivos parecen compartir los mismos componentes de hardware, pero el diferenciador clave reside en el firmware. El BNO085 no solo es una actualización del BNO080 sino que soluciona problemas importantes como un ‘timeout’ en SPI, que afectaba negativamente la funcionalidad del BNO080 al usar dicho protocolo de comunicación. Además, el BNO085 es completamente retrocompatible con el código y las infraestructuras que originalmente se desarrollaron para el BNO080.
En cuanto a los datos que proporciona, ambos sensores son capaces de entregar los siguientes tipos de información:
- Vector de aceleración: Tres ejes de aceleración que incluyen tanto la gravedad como el movimiento lineal.
- Vector de velocidad angular: Tres ejes de rotación para medir la velocidad angular.
- Vector de campo magnético: Tres ejes de detección de campos magnéticos en micro Tesla (uT).
- Vector de orientación: Cuatro puntos cuaterniones que permiten obtener datos precisos para la manipulación adecuada de la rotación.
Características avanzadas del BNO085
Una de las mayores ventajas del BNO085 reside en su capacidad para realizar fusión de sensores directamente en el dispositivo. Esto significa que, en lugar de entregar simplemente los valores en bruto de aceleración, velocidad angular o campos magnéticos, el sensor combina esta información y entrega datos más útiles, como vectores de gravedad y orientación.
Además de los sensores base, el BNO085 proporciona informes adicionales optimizados para distintas aplicaciones, como realidad virtual o aumentada. Estos incluyen:
- Vectores de rotación optimizados: Diseñados específicamente para aplicaciones en AR y VR, donde es crucial una baja latencia y un bajo consumo de energía.
- Informes de sensores calibrados y sin procesar: El BNO085 puede entregar simultáneamente datos calibrados y sin calibrar de los sensores de acelerómetro, giróscopo y magnetómetro.
- Detección de estabilidad y clasificación: Capaz de reconocer cuándo un objeto está en reposo o en movimiento constante.
- Detectores de impacto y actividad: Incluye la detección de pasos, sacudidas, movimientos significativos y clasificación general de actividades.
Estos informes adicionales hacen del BNO085 una opción ideal para diseñadores de productos que buscan datos precisos y de fácil integración para dispositivos portátiles, robots y controladores de realidad virtual.
Aplicaciones principales
El BNO085 es versátil y puede utilizarse en una amplia gama de aplicaciones. Algunas de las más destacadas incluyen:
- Realidad aumentada y virtual (AR/VR): Gracias a su capacidad de fusión de sensores y baja latencia, el BNO085 es una excelente opción para los dispositivos de AR y VR que requieren un seguimiento preciso del movimiento y la orientación.
- Robots móviles: La combinación de acelerómetros y giroscopios lo hacen ideal para robots que necesitan medir movimiento en tiempo real, ya sean aspiradoras autónomas o drones.
- Internet de las Cosas (IoT): Su tamaño compacto y bajo consumo de energía lo convierten en una solución preferida para dispositivos IoT que requieren información de posicionamiento.
Otras aplicaciones potenciales incluyen el seguimiento deportivo, dispositivos de salud y bienestar, y controladores de juegos. En general, cualquier dispositivo que necesite una medición precisa de movimientos en tres dimensiones puede beneficiarse del uso de este sensor.
Detalles técnicos y hardware
El sensor BNO085 se presenta en un tamaño muy compacto, con unas dimensiones de aproximadamente 5,2mm x 3,8mm, lo que lo hace adecuado para aplicaciones donde el espacio es una consideración importante. Dentro de este pequeño paquete, se encuentran todos los sensores necesarios para realizar sus mediciones, junto con un pequeño procesador que maneja la fusión de datos.
Algunas plataformas, como Adafruit, han desarrollado diferentes versiones de este sensor para que sea más accesible y fácil de usar en proyectos DIY o educativos. Estas versiones incluyen adaptaciones en placas de breakout que permiten la conexión directa a microcontroladores como Arduino o Raspberry Pi, ofreciendo incluso reguladores de voltaje y conectores I2C para una integración más directa.
Modos de operación
El BNO085 se puede configurar para operar en varios modos, dependiendo de las necesidades del proyecto. Entre los modos más sencillos y útiles está el modo UART-RVC. Este modo está diseñado específicamente para obtener mediciones calibradas de rumbo y aceleración, lo que lo hace ideal para aplicaciones como los robots aspiradores. Este sería un modo simple pero efectivo que permite obtener datos útiles con un bajo nivel de complejidad en la integración.
Este modo, junto con otras configuraciones avanzadas, lo hacen una opción difícil de superar cuando se trata de ofrecer un sensor todo-en-uno que maneja la fusión de datos sin necesidad de procesadores externos o software complejo.
Además, para aquellos que deseen utilizar los modos más avanzados, se han desarrollado bibliotecas tanto para CircuitPython como para Arduino, lo que facilita la integración de este sensor en proyectos de electrónica sin importar el nivel de experiencia del usuario.
En definitiva, el BNO085 es un sensor potente y versátil que permite a los desarrolladores trabajar con datos de movimiento y orientación de manera precisa y sin complicaciones. Gracias a sus características avanzadas de fusión de sensores y a su capacidad para operar con bajo consumo energético, este dispositivo es ideal para una amplia variedad de aplicaciones, desde dispositivos portátiles hasta elementos de robótica e incluso sistemas de realidad aumentada y virtual.