Wenn Sie einen Sensor mit 9 Freiheitsgraden (9-DOF) in Ihre Arduino-Projekte integrieren möchten, sind Sie hier genau richtig. Diese Geräte sind äußerst nützlich zur Messung von Orientierung, Beschleunigung und Rotation im dreidimensionalen Raum. In diesem Artikel werden wir uns eingehend mit der Verwendung des Adafruit 9-DOF, seinen Verbindungen und seiner Konfiguration mit Arduino befassen.
9-DOF-Sensoren kombinieren drei verschiedene Arten von Sensoren: Beschleunigungsmesser, Magnetometer und Gyroskope. Dies macht sie zu unverzichtbaren Werkzeugen für die präzise Verfolgung von Orientierungen und Bewegungen. Mit dieser Anleitung können Sie Ihren Adafruit 9-DOF-Sensor schnell und effizient mit Arduino verwenden.
Was ist ein 9-DOF-Sensor (9-Grad-Freiheitsgrade)?
Der 9-DOF-Sensor verfügt über drei Sensoren in einem: a Beschleunigungsmesser, ein Magnetometer und Kreisel. Der Beschleunigungsmesser misst die Beschleunigung in drei Achsen und ermöglicht so die Erkennung der Ausrichtung relativ zur Schwerkraft. Das Magnetometer erkennt das Magnetfeld und ist nützlich, um die Richtung des magnetischen Nordens zu bestimmen. Schließlich misst das Gyroskop die Winkeldrehung.
Diese drei Sensoren bieten zusammen ein dreidimensionale Wahrnehmung von Bewegung und Orientierung, was es ideal für Anwendungen wie Robotik, Drohnen oder tragbare Geräte macht.
9-DOF-Sensor mit Arduino verbinden
Sobald Sie den Sensor haben, besteht der nächste Schritt darin, ihn an Ihr Arduino-Board anzuschließen. Wenn Sie vorhaben, das zu verwenden I2C-Schnittstelle, was am häufigsten vorkommt, hat der Adafruit 9-DOF-Sensor eine Standard-I2C-Adresse von 0x69. Sie können es jedoch auch auf 0x68 ändern, indem Sie den Adresspin mit GND verbinden.
Verbindung über I2C
Der Verbindungsvorgang ist einfach. Bei Verwendung eines STEMMA QT-Steckers oder eines lötfreies Steckbrett, Sie müssen lediglich die Strom- und Datenpins aufeinander abstimmen. Wenn Sie einen STEMMA-Stecker verwenden, müssen Sie ihn nur an die I2C-Pins (SCL und SDA) anschließen.
Verwenden Sie einen 9-DOF-Sensor mit SPI
Wenn Sie lieber die SPI-Schnittstelle verwenden möchten, müssen Sie die CS-, SCK-, MOSI- und MISO-Pins für die Verbindung aktivieren und die Einstellungen im Code festlegen.
Installieren Sie die erforderlichen Bibliotheken auf Arduino
Damit Ihr Adafruit-Sensor ordnungsgemäß mit Arduino funktioniert, müssen Sie mehrere Bibliotheken installieren. Das erste, was Sie brauchen, ist das Adafruit ICM20X-Bibliothek, das mit den Sensoren ICM20948 und ICM20649 kompatibel ist. Um es zu installieren, öffnen Sie die Bibliotheksverwalter in der Arduino IDE und suchen Sie nach „Adafruit ICM20X“.
Darüber hinaus müssen Sie auch das installieren Adafruit BusIO-Bibliothek und Adafruit Unified Sensor Library.
Beispielcode für den Adafruit 9-DOF-Sensor
Sobald Sie alles angeschlossen und die notwendigen Bibliotheken installiert haben, können Sie eines der Beispiele laden, um zu überprüfen, ob alles gut funktioniert. Gehe zu Datei -> Beispiele -> Adafruit ICM20X und wählen Sie den Test aus, der mit Ihrem Sensor kompatibel ist.
In diesem Beispiel werden Werte wie gedruckt Temperatur, sowie die Werte auf den Achsen X, Y und Z des Gyroskops, des Beschleunigungsmessers und des Magnetometers. Sie können das Ergebnis auf dem seriellen Monitor überprüfen, der auf 115200 Baud eingestellt ist.
Einfaches Beispiel für Messungen mit dem ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Mit dem in den Bibliotheksbeispielen bereitgestellten Code können Sie die Ereignisse von den verschiedenen Sensoren abrufen. Für komplexere Projekte können Sie jedoch die Einstellungen des Empfindlichkeitsbereichs sowohl des Beschleunigungsmessers als auch des Gyroskops entsprechend Ihren Anforderungen ändern.
Wie Rotationsberichte auf dem BNO085-Sensor funktionieren
Wenn Sie zusätzlich zu den ICM20948-Sensoren einen 9-DOF-Sensor wie den verwenden BNO085, damit können Sie generieren Rotationsberichte, wichtig, um detailliertere Daten zur Orientierung bei komplexen Bewegungen zu erhalten.
Ein wichtiges Detail, das Sie beachten sollten, ist, dass dieser Sensor einen Mikrocontroller mit benötigt größere Speicherkapazität, wie SAMD21, SAMD51 oder nRF52. Die Verwendung einfacherer Arduino-Boards wie Uno oder Leonardo wird nicht empfohlen, da diese nicht über genügend RAM verfügen.
Darüber hinaus verwendet der BNO085 eine spezielle I2C-Implementierung, die nicht von allen Systemen unterstützt wird. Beispielsweise funktioniert dieser Sensor nicht richtig mit Chips wie z ESP32 oder mit I2C-Multiplexern. Der Betrieb ist jedoch auf Plattformen wie z. B. recht zuverlässig RP2040, STM32F4 oder SAMD51.
Design und Funktionen des LSM9DS1-Breakouts
Der 9-DOF-Sensor LSM9DS1 eignet sich ideal zur Verfolgung von Orientierung und Bewegung und ist im Vergleich zu anderen ähnlichen Sensoren preisgünstiger. Es integriert mehrere Messbereiche, mit denen Sie die für Ihr Projekt erforderliche Präzision anpassen können.
Dieser Sensor verfügt über eine I2C-Schnittstelle y SPI, was es vielseitig für verschiedene Entwicklungsplattformen macht. Sie können es einfach an ein Arduino anschließen, indem Sie eine Spannung zwischen 3 und 5 V bereitstellen und die I2C-Pins anschließen SCL y SDA.
Unterschiede zum LSM9DS0
Einer der Hauptunterschiede liegt in der Beschleunigungsmesserbereiche, die beim LSM9DS1 ±2, ±4, ±8 und ±16 g betragen, während andere Sensoren wie der LSM9DS0 einen zusätzlichen Bereich von ±6 g umfassen.
Was können Sie mit einem Adafruit 9-DOF-Sensor machen?
Diese Art von Sensoren ist ideal für die Entwicklung von Projekten wie z autonome Roboter, Navigationssysteme und gestenbasierte Geräte. Mit den bereitgestellten Beschleunigungs-, Rotations- und Orientierungsinformationen können Sie ein Gerät bauen, das komplexe Bewegungen präzise verfolgt.