Hier ist er, der Bewegungssensor, nach dem Sie gesucht haben: derjenige, der Ihnen direkt verwertbare Informationen liefert, ohne dass Sie erst einen Doktor zu Rate ziehen müssen, um die geheimen Künste der Sensorfusion zu erlernen.
Der BNO085 ist das Lebenswerk mehrerer Personen, die sich ihr ganzes Berufsleben lang mit der Frage beschäftigt haben, wie man nützliche Informationen aus direkten Bewegungssensormessungen gewinnen kann, und die diese Informationen zusammen mit den dazugehörigen Sensoren in ein 5,2 x 3,8 mm großes Gehäuse gequetscht haben.
Bitte beachten Sie, dass das BNO085 das 'Upgrade Fix' für das BNO080 ist - es ist vollständig rückwärtskompatibel mit dem BNO-080 und behebt zusätzlich einen SPI-Timeout-Fehler, der die Verwendung von SPI erschwerte. Der '085 ist zum gleichen Preis erhältlich und Sie können jeden bestehenden '080-Code verwenden, daher werden wir nur den '085 anbieten!
Der BNO085 der Bewegungssensorik-Experten von Hillcrest Laboratories nutzt die bekannten 3-Achsen-Beschleunigungsmesser, Gyroskope und Magnetometer und kombiniert sie mit einem Arm Cortex M0-Prozessor, auf dem die SH-2-Firmware von Hillcrest läuft, die das Auslesen der Sensoren, die Zusammenführung der Messungen in direkt nutzbare Daten und die Aufbereitung dieser Daten für Sie übernimmt. Wenn der Name und die Beschreibung des BNO085 verblüffend ähnlich klingen wie die des BNO055 von Bosch Sensortec, dann hat das einen guten Grund: Es handelt sich um dasselbe, aber auch um etwas anderes. Dank einer einmaligen Vereinbarung zwischen Bosch und Hillcrest verwendet der BNO085 die gleiche Hardware wie der BNO055, aber eine ganz andere Firmware, die darauf läuft.
"Wie anders?", werden Sie vielleicht fragen. Nun, mein Freund, nehmen Sie sich einen Stuhl und schnappen Sie sich eine Schachtel Popcorn, denn die Liste ist ziemlich lang. Führen wir zunächst die Gemeinsamkeiten auf. Der BNO055 und der BNO085 können beide die folgenden Arten von Sensordaten und Sensorfusionsprodukten liefern:
Beschleunigungsvektor / Accelerometer - Drei Achsen der Beschleunigung (Schwerkraft + lineare Bewegung) in m/s^2
Winkelgeschwindigkeitsvektor / Gyro - Drei Achsen der "Drehgeschwindigkeit" in rad/s
Magnetfeldstärkevektor / Magnetometer - Drei Achsen der Magnetfeldmessung in Mikro-Tesla (uT)
Linearbeschleunigungsvektor - Drei Achsen linearer Beschleunigungsdaten (Beschleunigung minus Schwerkraft) in m/s^2
Schwerkraftvektor - Drei Achsen der Schwerkraftbeschleunigung (abzüglich jeglicher Bewegung) in m/s^2
Absoluter Orientierungs-/Drehungsvektor - Vier-Punkt-Quaternion-Ausgabe für genaue Datenmanipulation
Dank der Sensor-Fusions- und Signalverarbeitungs-Assistenten von Hillcrest, mit dem BNO085 erhalten Sie auch:
Anwendungsoptimierte Rotationsvektoren - Für AR/VR, niedrige Latenz und geringen Stromverbrauch
Zusätzliche Basissensorberichte - Separate und gleichzeitige Ausgabe von kalibrierten, unkalibrierten + Korrektur- und rohen ADC-Ausgängen für den Beschleunigungsmesser, den Kreisel und das Magnetometer
Erkennungs- und Klassifizierungsberichte:
Stabilitätserkennung und -klassifizierung
Erkennung signifikanter Bewegungen
Tap-, Step- und Shake-Detektoren
Aktivitätsklassifizierung
Als ob das nicht genug wäre, bietet der BNO085 auch eine beeindruckende Reihe von Erkennungs- und Klassifizierungsprodukten, indem er die gemessenen Bewegungen weiter analysiert:
Stabilitätserkennung und -klassifizierung
Tap Detector
Step Detector
Step Counter
Activity Classification
Significant Motion Detector
Shake Detector
Weitere Informationen zu den verschiedenen Berichtstypen finden Sie auf der Seite Report Types
Ein Feuerschlauch an Informationen in einer menschenfreundlichen Verpackung
Der BNO085 ist ein äußerst leistungsfähiger Sensor, der praktisch vor nützlichen Informationen überquillt. Außerdem ist sie sehr klein. Wie das ideale Gasgesetz besagt, wird die Sache ein wenig pikant, wenn man viel Zeug in einen kleinen Raum stopft. Machen Sie sich keine Sorgen, liebe Kolleginnen und Kollegen, auf Adafruit hat man alles getan, um den BNO085 so zugänglich wie möglich zu machen. Es ist ein ziemlich vertrautes Rezept:
Man nehme folgendes und mische es in Eagle CAD:
Ein Teil rohes, unverarbeitetes BNO085 der Marke Hillcrest Labs
Ein Teil Spannungsregler für flexible Eingangsspannung
Ein Teil Level-Shifting-Schaltung für die Verwendung mit 3,3V (RPi/Feather) oder 5V(Arduino) Logikpegeln
Zwei praktische QT-Stecker für lötfreie Verbindung
Ein, 32.768kHz-Quarz für eine stabile Referenzschwingung
Eine Breakout-Platine mit Breadboard-freundlichen Headern
Bereiten Sie die Platine im Pick-and-Place-Verfahren vor und backen Sie sie in einem Reflow-Ofen auf hoher Stufe für etwa 5 Minuten, und Sie erhalten die Adafruit BNO085 IMU-Breakout-Platine (Teil eines kompletten Frühstücks!)
Nachdem die physische Hardware gezähmt und zugänglich gemacht wurde, bleibt noch die Software. Falls es nicht schon offensichtlich war, kann das BNO085 eine große Auswahl an Daten generieren und hat demzufolge eine etwas komplexe und einzigartige Art, diese Informationen zu liefern. Um Ihnen die Mühe zu ersparen, herauszufinden, wie Sie all diese Messungen dekodieren und organisieren können, hat Adafruit Bibliotheken geschrieben, die Sie mit CircuitPython und Arduino verwenden können. Schließen Sie einfach den Sensor an Ihr Lieblingsgerät an und installieren Sie die Bibliothek für die von Ihnen gewählte Plattform, und schon können Sie Ihren eigenen Roboterfreund bauen.
Als Alternative zu der Fülle von Vektoren und Klassifizierungen, die die Standard-Sensor-Hub-Modi bieten, stellt das BN0085 auch einen einfachen, aber nützlichen und gut ausgeführten UART-basierten Modus bereit, der kalibrierte Kurs- und Beschleunigungsmessungen liefert. Der UART-RVC-Modus hat sein Akronym von einer seiner möglichen Anwendungen: Roboterstaubsauger. Dieser Modus ist außerordentlich einfach zu bedienen, und nach meinen begrenzten Tests funktioniert er erstaunlich gut. Das Verhältnis zwischen Benutzerfreundlichkeit und Nützlichkeit ist hier unschlagbar.
Adafruit hat Bibliotheken für den UART-RVC-Modus sowohl für Arduino als auch für CircuitPython/Python geschrieben. Auf den UART RVC Seiten für Arduino und Python finden Sie Schaltpläne und Beispielcode.
TECHNISCHE DETAILS
Produktabmessungen: 25.6mm x 22.7mm x 4.6mm / 1.0" x 0.9" x 0.2"
Produktgewicht: 2.5g / 0.1oz