Aquí está, el sensor de movimiento que estabas buscando: el que simplemente te da la información directamente utilizable sin que tengas que consultar primero con un doctorado para aprender las artes arcanas de la fusión de sensores.
El BNO085 recoge el trabajo de toda una vida de varias personas que han pasado toda su carrera centrada en cómo obtener información útil de las mediciones directas de los sensores de movimiento y luego exprime esa información en una caja de 5,2x3,8 mm, junto con los sensores que la acompañan.
Tenga en cuenta que el BNO085 es la "solución de actualización" del BNO080: es totalmente compatible con el BNO-080 y, además, corrige un error de tiempo de espera SPI que dificultaba su uso. El '085 tiene el mismo precio y puede utilizar cualquier código '080 existente, por lo que sólo vamos a llevar el '085.
El BNO085, fabricado por los expertos en detección de movimiento de Hillcrest Laboratories, utiliza los conocidos acelerómetros, giroscopios y magnetómetros de tres ejes y los combina con un procesador Arm Cortex M0 que ejecuta el firmware SH-2 de Hillcrest, que se encarga de leer los sensores, fusionar las mediciones en datos que se pueden utilizar directamente y empaquetar los datos para entregárselos al usuario. Si el nombre y la descripción del BNO085 suenan sorprendentemente parecidos a los del BNO055 de Bosch Sensortec, hay una buena razón: son lo mismo, pero también no lo son. Gracias a un acuerdo único entre Bosch y Hillcrest, el BNO085 utiliza el mismo hardware que el BNO055, pero con un firmware muy diferente.
"¿Cómo de diferente?", podría preguntarse. Bueno, amigo mío, coge una silla y una caja de palomitas porque es una lista bastante extensa. Primero vamos a enumerar las similitudes. Tanto el BNO055 como el BNO085 pueden suministrar los siguientes tipos de datos de sensores y productos de fusión de sensores:
Vector de aceleración / Acelerómetro - Tres ejes de aceleración (gravedad + movimiento lineal) en m/s^2
Vector de velocidad angular / Giroscopio - Tres ejes de "velocidad de rotación" en rad/s
Vector de intensidad de campo magnético / Magnetómetro - Tres ejes de detección de campo magnético en micro Tesla (uT)
Vector de aceleración lineal - Tres ejes de datos de aceleración lineal (aceleración menos gravedad) en m/s^2
Vector de gravedad - Tres ejes de aceleración gravitacional (menos cualquier movimiento) en m/s^2
Vector de orientación/rotación absoluta - Salida de cuaterniones de cuatro puntos para una manipulación precisa de los datos
Gracias a los asistentes de fusión de sensores y procesamiento de señales de Hillcrest, con el BNO085 también obtienes:
Vectores de rotación optimizados para la aplicación - Para AR/VR, baja latencia y bajo consumo de energía
Informes adicionales del sensor base - Salidas separadas y simultáneas de salidas ADC calibradas, no calibradas + corrección y sin procesar para el acelerómetro, el giroscopio y el magnetómetro
Informes de detección y clasificación:
Detección y clasificación de estabilidad
Detector de movimiento significativo
Detectores de golpecitos, pasos y sacudidas
Clasificación de la actividad
Por si lo anterior no fuera suficiente, el BNO085 también proporciona un impresionante conjunto de productos de detección y clasificación mediante el análisis adicional del movimiento medido:
Detección y clasificación de la estabilidad
Detector de grifos
Detector de pasos
Contador de pasos
Clasificación de la actividad
Detector de movimientos significativos
Detector de sacudidas
En la página de tipos de informes encontrará más información sobre los distintos tipos de informes
Una manguera de información en un paquete de fácil manejo
El BNO085 es un sensor sumamente capaz, que prácticamente rebosa de información útil. También es muy pequeño. Como nos dice la Ley de los Gases Ideales, cuando metes muchas cosas en un espacio pequeño, las cosas se van a poner un poco picantes. No se preocupe amigo científico, en Adafruit han puesto de su parte para que el BNO085 sea lo más accesible posible. Es una receta bastante conocida:
Tome lo siguiente y mézclelo en Eagle CAD:
Una parte de BNO085 sin procesar de la marca Hillcrest Labs
Una parte de regulador de voltaje para un voltaje de entrada flexible
Una parte de circuitos de cambio de nivel para usar con niveles lógicos de 3,3V (RPi/Feather) o 5V(Arduino)
Dos prácticos conectores QT para conexión sin soldadura
Uno, 32.Cristal de 768 kHz para proporcionar una oscilación de referencia estable
Una placa de circuito impreso con cabeceras aptas para placas de circuito impreso
Prepárala en el pick and place y cuécela en un horno de reflujo a temperatura alta durante unos 5 minutos y tendrás la Adafruit BNO085 IMU breakout (¡parte de un desayuno completo!)
Con el hardware físico domesticado y hecho accesible, queda el software. Por si no fuera ya muy obvio, el BNO085 puede generar una amplia selección de datos y, como resultado, tiene una forma ligeramente compleja y única de entregar esa información. Para ahorrarte el esfuerzo de averiguar cómo decodificar y organizar todas esas mediciones, Adafruit ha escrito bibliotecas para que las utilices con CircuitPython y Arduino. Sólo tienes que conectar el sensor a tu dispositivo favorito utilizando los ejemplos de cableado, e instalar la biblioteca para la plataforma que hayas elegido y estarás listo para empezar a construir tu propio Amigo Robot.
Como alternativa a la cornucopia de vectores y clasificaciones que proporcionan los modos estándar del hub de sensores, el BN0085 también ofrece un modo simple pero útil y bien ejecutado basado en UART que proporciona mediciones calibradas de rumbo y aceleración. El modo UART-RVC toma sus siglas de una de sus posibles aplicaciones: los robots aspiradores. Este modo es extremadamente sencillo de manejar y, según mis pruebas limitadas, funciona sorprendentemente bien. La relación entre la facilidad de uso y la utilidad está fuera de serie.
Adafruit ha escrito bibliotecas para el modo UART RVC tanto para Arduino como para CircuitPython/Python. Consulta las páginas de UART RVC para Arduino y Python para ver los diagramas de cableado y el código de ejemplo.
DETALLES TÉCNICOS
Dimensiones del producto: 25,6mm x 22,7mm x 4,6mm / 1,0" x 0,9" x 0,2"
Peso del producto: 2,5g / 0,1oz