I²C BNO055 Sensor
Verfasst: 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 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.
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 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.