Forum: Mikrocontroller und Digitale Elektronik Bosch Sensor BNO055


von Rangi J. (rangi)


Lesenswert?

Hallo Forum,

ich habe hier einen Sensor von Bosch, den BNO055. Ich habe das Problem, 
dass ich keinen Motion-Interrupt bekomme.
Der Anwendungsfall ist, den µC per Interrupt aufzuwecken, wenn eine 
Bewegung erkannt wird. Danach sollen die Sensordaten aufgenommen werden. 
Letzteres funktioniert auch schon, Beschleunigungswerte, Gyro- und 
Magnetfelddaten werden ausgelesen. Jedoch das Aufwecken funktioniert 
nicht. Genauer gesagt wird kein Interrupt im BNO055 generiert. Ich 
konnte nichts messen und auch durch pollen des Flag-Registers kam kein 
Interrupt.
Ich hab das ganze im Op-Mode ACC-Only, und AMG probiert, sowie in 
Power-Mode Normal und Low-Power.

Ich such nach einem Beispiel oder pseudo-Code, was ich in welche 
Register schreiben muss, um einfach nur einen Interrupt bei Bewegung zu 
bekommen.

Danke

von Sergiu (Gast)


Lesenswert?

Hallo Rangi,

Was für ein microcontroller Board verwendest Du? Ich nutze Adafruit 
Feather M0 mit Adafruit BNO055 und es funktioniert, allerdings hatte ich 
2 große Probleme:

1. Adafruit_BNO055 bietet keine APIs für Interrupt handling. Musst Du 
also selbst programieren
2. Die Doku vom Sensor war falsch, i.e. das SMNM bit (bit 0) in dem 
ACC_NM_SET (0x0B) muss auf 1 für No Motion gesetzt werden (und nicht auf 
0, wie es beschrieben war).

Ich bekomme jetzt INT signale für "No Motion" nach 5 Sek (kann ich 
einstellen) und "Any motion" sobald ich auf dem Tisck klopfe ;)

Viel Erforlg,

Sergiu

von Sergiu (Gast)


Lesenswert?

Etwas doch vergessen. Doku findest Du hier :

https://www.bosch-sensortec.com/bst/products/all_products/bno055

Siehe das Datasheet, Seite 38, *3.8 Interrupts*

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.