I²C BNO055 Sensor

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

I²C BNO055 Sensor

Beitrag von chehr » 24 Feb 2018, 19:17

Da via PM und im Forum nach einem Robo Pro Treiber für den BNO055 gefragt wurde, habe ich eben meinen im Forum hochgeladen.
https://ftcommunity.de/data/downloads/r ... rsion1.rpp

Bei dem Sensor handelt sich es um einen intelligenten absolut orientierten 9-achsen Sensor.
Er beinhaltet einen Magnetometer, Gyroskope und einen Beschleunigungssensor.
Dank einem on-board 32-bit cortex M0+ microcontroller werden diese Sensordaten fusioniert, um bestmögliche Genauigkeit zu erreichen, Messrauschen und Drift zu minimieren.
BNO055 Robo Pro Treiber V1
BNO055 Robo Pro Treiber V1
BNO055 Treiber Beschreibung:
Vor der Messung wird der Sensor initiiert.
Man kann im Hauptprogramm ein Mode wählen wobei der Mode 12 (NDOF) die Sensorfusion von allen drei Sensoren beinhaltet und für die meisten Anwendungen das richtige ist.
Während der Initiierung gibt es im Mode 11 und 12 eine Kalibrierfunktion, bei dem der Sensor möglichst an den 3 bis 6 Seiten des Sensorgehäuses jeweils für ca 3 Sekunden in Ruhe auf dem Tisch steht.
Nach erfolgreichem Kalibrieren kommt eine Meldung "calibrated".

Danach ist der Sensor einsatzbereit und man kann je nach Bedürfnis eines oder mehrere der 8 Unterprogramme auswählen, für die entsprechenden Sensordaten (sollte selbsterklärend sein):
BNO055 - alle Sensor Daten incl RAW acceleration Daten
BNO055-Magnetometer
BNO055-Gyroscope
BNO055-Euler Angle
BNO055 Quaternion
BNO055 Linear Acceleration
BNO055 Gravity Vector
BNO055 Temperatur

Aus Performance gründen sollte man nur die notwendigen Unterprogramme in den Programmablauf einbauen. Somit erhält man die höchstmögliche Samplingrate.


Bzgl. Einheiten, die stehen jeweils auf dem UP Symbol. Fall jemand lebenswichtige Sachen damit macht, sollte die Einheiten vorher nochmals prüfen - also keine Gewähr....

Der vorläufige BNO055 Python Treiber für die CFW ist unter folgendem Link:
https://github.com/chehr/ftc-apps/tree/ ... I2C_bno055
Anmerkung: Bzgl Samplingrate ist der Robo Pro BNO055 Treiber klar im Vorteil gegenüber Python und CFW. Also ist die I2C Schnittstellenansteuerung via Robo Pro gar nicht so schlecht wie manchmal im Forum beschrieben: (BNO055 funktioniert nicht mit Robo Pro...).
Falls der Robo Pro Treiber hängen sollte, kann es auch daran liegen das nicht genügend Strom an den BNO055 geliefert wird.
Zuletzt geändert von chehr am 26 Feb 2018, 08:17, insgesamt 1-mal geändert.

Rei Vilo
Beiträge: 94
Registriert: 19 Dez 2015, 15:39

Re: I²C BNO055 Sensor

Beitrag von Rei Vilo » 25 Feb 2018, 21:26

The BNO055 and BNO080 are very nice sensors, and very convenient to use as all the calculations are carried out by the embedded Cortex-M0+ MCU.

Here is the box sensor, called smartIMU...
smartimu-1-2_orig.jpg
...and the driver was very easy to develop and implement for RoboPro.
capture-2017-09-20-20-54-07_orig.png

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: I²C BNO055 Sensor

Beitrag von chehr » 26 Feb 2018, 12:09

Hello Rei,
many thanks that you offer to share your BNO055 driver, too.
Rei Vilo hat geschrieben:
...and the driver was very easy to develop and implement for RoboPro.
capture-2017-09-20-20-54-07_orig.png
However I can not find your driver for download at your Homepage - a download button seems missing.....

I agree that the BNO055 is a very easy Sensor, however our drivers using currently only a small part of the BNO055 features....
In example I have currently implemented in the Version 2 of the driver a feature to load the previous calibration data. This avoids a re-calibration after each power-on.

I have two questions based on your experience:
1. Do you get always the same values independend of the selected unit between "mg" and "m/s2" on Register "0x3b". The difference of the value should be a factor of 101.97!
2. Do you have on Register 0x3a an error code in example 6: Register map write error?

wrt BNO080 the Sensor and Datasheet is currently not available at BOSCHs homepage, only a Product Flyer.

Antworten