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
Gast
#4629837
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
Gast
#4629857
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*
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.