Ich habe gestern noch einen Fehler in meiner imu-Task gefunden. Meine Berechnung des Heading hatte einen Fehler in der Skalierung. Den code hatte ich zum Teil mbi-Sensor“ ist kein BNO085.
In den letzten Tagen habe ich meinen BNO085 in Betrieb genommen, aber ersteinmal nur indoor auf einem meiner kleinen TestModelle.
ich vewende Im Moment einen PiZero 2W, die adafruit_bno08x Library und natürlich python dann als Sprache. Ich bin über die Stabilität schon ziehmlich begeistert. Mit meinem Kompass-Modul bekam ich in meinem Zimmer immer eine gute Ost und West Ausrichtung, mit dem BNO klappen alle Himmelsrichtungen sehr gut. Auch die Kalibrierung ist super. Es gibt diese 4 Stufen, und durch "Stillstand" erreicht er schon bei mir die Stufe 2
Kalibriert-Stufe | Bedeutung | Für Gyro/Yaw im G-Modus wichtig? |
---|
0 | Nicht kalibriert | unsauber, driftet schnell |
1 | Teilweise | besser als nix |
2 | Gut | ist völlig ok |
3 | Vollständig | Ideal |
Ich habe ihn heute auf meine MINI PiMowBot befestigt und bei Bewegung erreicht er auch Stufe 3, und er kalibriert sich nach, soll heißen fällt er aus welchen Gründen auch immer in eine schlechtere Stufe zurück versucht er wieder besser zu werden. Man bekommt davon nichts mit.
Ich bin gespannt wie sich das im Garten verhält. Dann kann man den BNO in verschiedenen Modis betrieben, Magnetometer und Gyro Betrieb habe ich bisher getestet. Magnetometer ist wie ein Normales Kompass Modul, Anfällig auf megnetische Einflüsse in dem Modus habe ich ihn kalibriert. Dann kann man ihn in den Modus BNO_REPORT_GAME_ROTATION_VECTOR umschalten, das trennt dann den Gyro Wert von den Kompass einflüssen. Vorteil der Wert der Ausrichtung ändert sich nur nach der Drehung des Gyros und ist unabhängig von magnetischen einflüssen. Auch spielt die Neigung keine Rolle. Ein drift ist vorhanden, wird intern kompensiert hier eine Messung die ich vorhin angestoßen habe

Starte BNO085 YAW/Kurs-System...
Modus: Kompass + Gyro (r)

Messung aktiv gestartet um 16:34:45
12-Jul-2025/16:34:45Magnet. Kalibrierung: 0
12-Jul-2025/16:34:46Magnet. Kalibrierung: 0
12-Jul-2025/16:34:47Magnet. Kalibrierung: 3
12-Jul-2025/16:34:47Kalibrierung beendet nach 2.04 Sekunden
Initial-Kurs: 17.86, Inital-Yaw: -60.46

Switched to GAME_ROTATION_VECTOR
Yaw-Gyro: 0.00° Gyro-Kurs: 17.86° Pitch: -3.6° roll: 7.8° Mag-Kurs = 17.86 Mag Status 3
...
...
Yaw-Gyro: 0.06° Gyro-Kurs: 17.92° Pitch: -3.6° roll: 7.8° Mag-Kurs = 16.51 Mag Status 3

Beende Programm um 18:11:29
Da bin ich echt beeindruckt.
Viel Licht, aber auch Schatten.
Ich habe in dem GAME modus, also nur Gyro den BNO mit einem Magneten beeinflusst. Ergebnis: Der Mag-Kurs kommt wie erwartet aus dem Tritt und zeigt Blödsinn an, Der Gyro Wert belibt stabil. Dann versucht er intern neu zu kalibrieren, der Mag Status verändert sich von 3 auf 2 oder auf 0. Wird er 0, dann kommt auch der Gyro aus dem Tritt und er springt um einige Grad. Natürlich kann man das Abfangen, aber das hätte man vielleicht auch intern lösen können. So muss jetzt der Code ein wenig erweitert werden. Wenn Mag Status== 3 und Mag Status fällt unter 2 dann stoppe den Mäher und kalibriere neu. Wenn das das Einzige ist, wo er seine Schwächen hat, dann ist er auf alle Fälle seine ca. 25€ Wert. Ich werde gleich ein Verbindungskabel zusammen löten und versuche ihn in den nächsten Tagen mal im Garten an meinem RoπLawnMow zu testen.
Eines habe ich noch in der Beschreibung gelesen, dass seine I2C Bus Schnittstelle nicht gut mit einem ESP32 zusammen arbeitet, Aber man kann ihn auf UART oder SPI umschalten.
Soweit mein Status-Bericht Mein Fürst vielleicht hilft es Dir.
Gruß
Ulli