Vollständiger Leitfaden zu MEMS MPU6050 und LSM9DS1: Theorie, Praxis und Anwendungsfälle

  • Die MEMS-Sensoren MPU6050 und LSM9DS1 ermöglichen eine dreiachsige Beschleunigungs- und Rotationsmessung mit hoher Präzision und geringen Kosten.
  • Der MPU6050 integriert einen Beschleunigungsmesser und ein Gyroskop, während der LSM9DS1 zusätzlich ein Magnetometer hinzufügt, das eine absolute Orientierung ermöglicht.
  • Durch Kalibrierung und Filterung können beide Sensoren in Anwendungen wie Trägheitsnavigation, Robotik oder Wearables eingesetzt werden.
LSM9DS1

Gestapelt aus 12 Bildern. Methode=B (R=44,S=4)

In der heutigen Welt der Technologie und Elektronik sind MEMS-Sensoren (Mikro-Elektro-Mechanische Systeme) zu einem wichtigen Werkzeug für Projekte aller Art geworden, von der Robotik über die Heimautomatisierung bis hin zu Wearables. Module, die Beschleunigungsmesser und Gyroskope kombinieren, wie zum Beispiel die MPU6050 und LSM9DS1, sind zwei der beliebtesten Optionen dank ihrer Vielseitigkeit, niedrigen Kosten und einfachen Integration mit Mikrocontrollern wie Arduino und anderen Plattformen. Ein gründliches Verständnis ihrer Funktionsweise, ihrer einzigartigen Funktionen, Unterschiede und sogar ihrer optimalen Nutzung ist unerlässlich für die Entwicklung präziser Systeme, die Bewegung, Orientierung und Neigung messen.

In diesem Artikel führen wir Sie Schritt für Schritt durch alles, was Sie über Sensoren wissen müssen MPU6050 y LSM9DS1: wie sie funktionieren, welche Anwendungen sie haben, wie man sie in Ihr Projekt integriert, sie kalibriert, ihre Messwerte richtig interpretiert und ihre Fähigkeiten optimal nutzt, indem man die in den besten Tutorials und technischen Artikeln gesammelten Informationen unter einer praktischen und aktuellen Vision mit einer naheliegenden Sprache kombiniert, so dass professionelle Ergebnisse erzielen in Ihren Entwicklungen.

Was ist ein MEMS-Sensor und wie funktioniert er?

MPU6050-Modul

Bevor wir auf die spezifischen Modelle MPU6050 und LSM9DS1 eingehen, ist es wichtig, sich über das Konzept von MEMS-SensorDiese Geräte, auch genannt Mikroelektromechanische Systeme, integrieren mikroskopisch kleine mechanische Komponenten und elektronische Schaltkreise in einem einzigen Chip, sodass sie physikalische Veränderungen – wie Beschleunigungen, Rotationen oder Vibrationen – erkennen und in elektrische Signale umwandeln können, die von digitalen Systemen interpretiert werden können.

Bei MEMS-Beschleunigungsmessern und Gyroskopen basiert ihre Funktionsweise auf Prinzipien wie:

  • Newtons Beschleunigungsgesetz (a = F/m) unter Verwendung innerer Strukturen, die als mikroskopische Massen und Federn wirken.
  • Der Coriolis-Effekt wird zur Erkennung von Winkelbewegungen verwendet, wobei die Ablenkung ausgenutzt wird, die kleine Massen erfahren, wenn sie sich innerhalb des Chips drehen.
  • Interne ADC-Wandler zur Umwandlung physikalischer Abweichungen in hochauflösende digitale Werte (üblicherweise 16 Bit).

Diese Fähigkeiten machen MEMS äußerst nützlich in Anwendungen, die erfordern Messung von Orientierung, Neigung oder Bewegung in drei Dimensionen, wie Navigationssysteme, Kamerastabilisierung, Smartwatches, Drohnen, Roboter und vieles mehr.

Hauptmerkmale des MPU6050

El MPU6050 Es handelt sich wahrscheinlich um den am häufigsten verwendeten MEMS-Bewegungssensor unter Herstellern, Ingenieuren und Bastlern, die nach einer wirtschaftlichen und zuverlässigen Lösung zur Messung von Beschleunigung und Rotation in drei Achsen suchen.

Zu den wichtigsten technischen Spezifikationen gehören:

  • 3-Achsen-Beschleunigungsmesser: Kann Beschleunigungen auf der X-, Y- und Z-Achse erkennen, mit einem programmierbaren Bereich von ±2 g, ±4 g, ±8 g und ±16 g.
  • 3-Achsen-Gyroskop: Misst Winkelgeschwindigkeiten auf allen drei Achsen, mit einstellbarer Empfindlichkeit bei ±250, ±500, ±1000 und ±2000 Grad pro Sekunde.
  • Digitaler Bewegungsprozessor (DMP): Enthält einen internen Mikroprozessor, der für die Durchführung komplexer Berechnungen vorgesehen ist Motion Fusion (Sensorfusion) und berechnet Daten wie Quaternionen, Eulerwinkel und Rotationsmatrizen, ohne diese Berechnungen auf den Hauptmikrocontroller laden zu müssen.
  • Digitalausgang über I2C: Kommunikation über I2C-Bus mit zwei möglichen Adressen (konfigurierbar über Pin AD0 auf 0x68 oder 0x69), wodurch der Betrieb mit den meisten Arduino-, ESP- und ähnlichen Boards möglich ist.
  • 16-Bit-ADC-Wandler: Es bietet eine hohe Auflösung bei der Datenerfassung.
  • Integrierter Temperatursensor
  • Möglichkeit der Erweiterung mit einem externen Magnetometer: Über den I2C-Hilfsbus kann der MPU6050 andere angeschlossene Sensoren wie den beliebten HMC5883L (Magnetometer) lesen, um eine vollständige 9-Achsen-IMU zu bilden.
  • Flexible Betriebsspannung: Es kann mit 3,3 V oder sogar 5 V betrieben werden, wenn ein Motherboard wie das GY-521 verwendet wird, das einen Regler enthält.

Darüber hinaus ist das Modul aufgrund seiner kompakten Größe (ca. 25 x 15 mm) und der Tatsache, dass es für die Integration in eine Steckplatine vorbereitet ist, ideal sowohl für Tests als auch für die endgültige Entwicklung geeignet.

Was ist LSM9DS1 und worin besteht der Unterschied?

Im Gegenzug wird die LSM9DS1 Es handelt sich um eine fortschrittlichere und modernere Option innerhalb der MEMS-IMU-Familie, obwohl es in Einsteigerprojekten weniger beliebt ist als das MPU6050. Es integriert Folgendes auf einem einzigen Chip:

  • Un 3-Achsen-Beschleunigungsmesser
  • Un 3 Achsen-Gyroskop
  • Un Magnetometer auch 3-achsig

Das bedeutet, dass der LSM9DS1 ein 9 DoF (Freiheitsgrade) IMU, mit dem Sie Beschleunigung, Winkelgeschwindigkeit und das Erdmagnetfeld in drei Dimensionen messen können. Dies liefert vollständige und genaue Messwerte von absolute Position und Orientierung in Bezug auf die Erde.

Zu seinen Hauptvorteilen gegenüber dem MPU6050 gehören:

  • Kombiniert die drei Sensoren in einem einzigen physischen Chip, wodurch Platz gespart und Anschlüsse vereinfacht werden.
  • Sie können sowohl über I2C als SPI, was ihm eine größere Vielseitigkeit für verschiedene Plattformen verleiht.
  • Die Bereiche und Empfindlichkeiten jedes Sensors (Beschleunigungsmesser, Gyroskop, Magnetometer) sind flexibler konfigurierbar.
  • Es verfügt über erweiterte digitale Filter- und Ereigniserkennungsoptionen.

Das LSM9DS1 wird häufig für Projekte gewählt, bei denen eine absolute Orientierung erforderlich ist (z. B. Kompasse, Navigationssysteme oder Flugstabilisierung), ohne dass zusätzliche externe Sensoren erforderlich sind.

Funktionsprinzipien von MEMS-Beschleunigungsmessern und Gyroskopen

Um die Funktionsweise dieser MEMS-Module wirklich zu verstehen, ist es wichtig, die physikalischen Konzepte und ihre Umsetzung in digitale Daten zu verstehen:

Beschleunigungsmesser

Un MEMS-Beschleunigungsmesser misst die Beschleunigung eines Objekts (Änderung der Geschwindigkeit über die Zeit) relativ zu den drei Raumachsen. Intern basiert es auf der Anwesenheit eines mikroskopische Schwebemasse durch flexible Anker oder winzige Federn. Wenn der Sensor beschleunigt, verschiebt sich diese Masse leicht, und diese Veränderung wird mithilfe variabler oder piezoelektrischer Kondensatoren in ein elektrisches Signal umgewandelt.

  • Der Beschleunigungssensor erfasst immer mindestens eine Beschleunigung: die Schwerkraft (9,81m/s2), auch wenn der Sensor stillsteht.
    Damit lässt sich die Neigung zur Horizontale berechnen.
  • Durch Integration der Beschleunigung über die Zeit können die Geschwindigkeit und damit die zurückgelegte Position ermittelt werden. Bei diesen Vorgängen kommt es jedoch häufig zu einer Anhäufung von Fehlern.

Gyroskop

El MEMS-Gyroskop benutze die Corioliskraft zur Erfassung der Geschwindigkeit, mit der sich ein Körper um seine X-, Y- und Z-Achse dreht. Wenn der Sensor eine Rotation erfährt, erleiden interne schwingende Massen eine Abweichung proportional zur Winkelgeschwindigkeit, und diese Änderung wird elektronisch gemessen.

  • Das Gyroskop misst Winkelgeschwindigkeit: wie schnell sich die Ausrichtung des Sensors auf jeder Achse ändert.
  • Integriert man die Winkelgeschwindigkeit über die Zeit, erhält man den Drehwinkel (die Winkelposition), obwohl diese Operation kumulative Fehler erzeugt, die als treiben.

Warum Beschleunigungsmesser und Gyroskop kombinieren?

Sowohl Beschleunigungsmesser als auch Gyroskope weisen für sich genommen Einschränkungen bei der Bestimmung der Ausrichtung eines Objekts auf:

  • Beschleunigungsmesser: Genau bei der Erkennung von Neigungen relativ zur vertikalen Achse (unter Verwendung der Schwerkraft), aber sehr empfindlich gegenüber plötzlichen Bewegungen, externen Beschleunigungen oder Vibrationen.
  • Gyroskop: Es eignet sich ideal zum Messen schneller Orientierungsänderungen, leidet jedoch unter einer Fehlerakkumulation, wenn die Ausgabe über einen langen Zeitraum integriert wird.

Daher führen die meisten Anwendungen die Daten beider Sensoren zusammen, was die Genauigkeit und Zuverlässigkeit der Messwerte erheblich verbessert. Winkel, Neigung oder PositionUm dies zu erreichen, werden sie verwendet digitale Verarbeitungsfilter wie etwa das Komplementärfilter oder das Kalman-Filter, die die Vorteile jedes Sensors kombinieren und abwägen.

Erste Schritte mit dem MPU6050: Anschluss und Bibliotheken

Typisches Anschlussdiagramm

Das Modul MPU6050 Es wird normalerweise auf einer Platte montiert GY-521, was die Integration mit Mikrocontrollern wie Arduino erheblich erleichtert.

Die grundlegenden Verbindungen zur Verwendung des Moduls im I2C-Modus sind normalerweise:

MPU6050 Arduino Uno/Nano/Mini Arduino Mega/DUE Arduino Leonardo
VCC 5V 5V 5V
GND GND GND GND
SCL A5 21 3
SDA A4 20 2

Das Modul verfügt über eingebaute Pull-Up-Widerstände, sodass es im Allgemeinen nicht notwendig ist, diese extern hinzuzufügen.

I2C-Adresse und AD0-Pin

Der MPU6050 ermöglicht die Konfiguration seiner I2C-Adresse auf 0x68 (standardmäßig, wenn der AD0-Pin auf GND liegt oder nicht verbunden ist) oder 0x69 (wenn AD0 an High/5 V angeschlossen ist). Dies erleichtert die Verwendung mehrerer Sensoren auf demselben Bus.

Empfohlene Bibliothek: I2Cdevlib von Jeff Rowberg

Um bequem mit dem MPU6050 auf Arduino arbeiten zu können, empfiehlt die Community die Verwendung der folgenden Bibliotheken:

  • I2Cdev: Erleichtert die I2C-Kommunikation mit vielen Sensoren.
  • MPU6050: Ermöglicht Ihnen den Zugriff auf alle Sensorfunktionen, das Lesen kalibrierter Werte und Offsets sowie die Verwendung des DMP.

Sie sind erhältlich in: https://github.com/jrowberg/i2cdevlib

Nach dem Download entpacken Sie die Dateien einfach und legen Sie sie in den Ordner Bibliotheken von der Arduino IDE.

Grundlegende Daten lesen: Beschleunigung und Winkelgeschwindigkeit

Sobald der MPU6050 angeschlossen und konfiguriert ist, besteht der nächste Schritt darin, Messwerte von Beschleunigungen und Winkelgeschwindigkeiten auf den drei Achsen. Der grundlegende Prozess unter Verwendung der oben genannten Bibliothek umfasst:

  1. Initialisieren Sie den Sensor mit der Funktion sensor.initialisieren().
  2. Überprüfen Sie die Verbindung mit sensor.testConnection().
  3. Lesen Sie RAW-Werte (unverarbeitete Werte) vom Beschleunigungsmesser und Gyroskop in Variablen wie ax, ay, az für Beschleunigung und gx, gy, gz für Drehung.
  4. Senden Sie die Daten an den seriellen Port, um die Ergebnisse anzuzeigen.

Diese Daten werden als 16-Bit-Ganzzahlen im Bereich angezeigt.

Kalibrieren des MPU6050-Sensors

Eine der wichtigsten Phasen bei der Verwendung des MPU6050 ist die KalibrierungEs kommt sehr häufig vor, dass der Sensor Werte ungleich Null zurückgibt, selbst wenn er vollkommen horizontal und ruhig ist. Dies kann auf mögliche Fehlausrichtungen beim Löten des Chips auf das Modul oder sogar auf kleinere Fertigungsfehler zurückzuführen sein.

Die Kalibrierung des Sensors umfasst die Bestimmung der Beschleunigungsmesser- und Gyroskop-Offsets auf jeder Achse und konfigurieren Sie sie am Sensor, sodass die Messwerte auf den korrekten Informationen basieren. Ein typischer Prozess könnte wie folgt aussehen:

  • Lesen Sie die aktuellen Offsets mit Funktionen wie getXAccelOffset(), getYAccelOffset(), usw.
  • Platzieren Sie den Sensor in einer horizontalen und völlig ruhigen Position.
  • Passen Sie die Offsets mithilfe eines Programms an, bis die gefilterten Messwerte (z. B. mithilfe eines gleitenden Durchschnitts- oder Tiefpassfilters) den Idealwerten entsprechen: ax = 0, ay = 0, az = 16384, gx = 0, gy = 0, gz = 0 im Raw-Modus (RAW).
  • Stellen Sie diese Werte mit den Funktionen ein setXAccelOffset(), setYAccelOffset(), usw.

Nach der richtigen Kalibrierung liefert der Sensor wesentlich genauere und stabilere Werte, die für kritische Anwendungen wie Stabilisierung oder Navigation von entscheidender Bedeutung sind.

Skalierung und Umrechnung der Messwerte in physikalische Einheiten

Die Rohwerte des MPU6050 müssen in SI-Einheiten (Internationales System) umgewandelt werden, um sie interpretieren und in physikalischen Berechnungen oder zur Datenvisualisierung verwenden zu können:

  • Beschleunigung: Der Standardbereich beträgt ±2g, was ±19,62 m/s entspricht2Ein RAW-Wert von 16384 entspricht 1g; daher zur Umrechnung in x am/s2: Axt * (9,81/16384.0).
  • Winkelgeschwindigkeit: Standardmäßig ist ±250°/s, die Umrechnung wäre also: gx * (250.0 / 32768.0) zur Umrechnung von RAW-Werten in Grad pro Sekunde.

Diese Skalierungsfaktoren ändern sich, wenn Sie den Sensor auf andere Bereiche konfigurieren. Daher ist es wichtig, vor der Interpretation der Daten immer die Werkseinstellungen oder benutzerdefinierten Einstellungen zu überprüfen.

Berechnen Sie die Neigung nur mithilfe des Beschleunigungsmessers

Wenn der Sensor ruht oder nur der Schwerkraft ausgesetzt ist, können die Messwerte des Beschleunigungsmessers zur Berechnung der Neigungswinkel in Bezug auf die X- und Y-AchseTypische mathematische Formeln verwenden trigonometrische Funktionen:

  • Für die X-Neigung: atan(ax / sqrt(ay² + az²)) × 180/π
  • Für Y-Neigung: atan(ay / sqrt(ax² + az²)) × 180/π

Dadurch wird der Neigungswinkel jeder Achse im Verhältnis zur Schwerkraftebene ermittelt. Wenn sich der Sensor jedoch bewegt oder andere Beschleunigungen erfährt, können sich diese Werte ändern.

Drehwinkelberechnung mit dem Gyroskop

Das Gyroskop ermöglicht die Berechnung der Winkelvariation durch Integration der Winkelgeschwindigkeit im Laufe der Zeit. Mathematisch:

  • Der Winkel ist gleich dem Integral der Winkelgeschwindigkeit in einem gegebenen Zeitintervall: θ = θ0 + ∫w·dt

In der Praxis können diese Berechnungen in Programmschleifen durchgeführt werden, indem die Winkelgeschwindigkeit mit der Abtastperiode (dt) multipliziert wird, um den akkumulierten Winkel zu erhalten.

Es ist wichtig, den Integrationsfehler zu kontrollieren, da sich kleine Fehler anhäufen und treiben.

Sensorfusionsfilter: Komplementär und Kalman

Um Interpretationsfehler zu reduzieren und jeden Sensor optimal zu nutzen, werden Datenfusionsalgorithmen verwendet:

Komplementärfilter

Dieser Filter kombiniert den vom Gyroskop geschätzten Winkel (der kurzfristig gut funktioniert) mit dem vom Beschleunigungsmesser berechneten Winkel (der langfristig zuverlässiger, aber verrauscht ist). Die typische Formel lautet:

Endgültiger Winkel = α × (Vorheriger Winkel + Winkelgeschwindigkeit × dt) + (1-α) × Beschleunigungsmesserwinkel

Wobei α üblicherweise zwischen 0,95 und 0,99 liegt. Dies ermöglicht einen stabilen Messwert und reduziert die treiben.

Kalman-Filter

Dieser Filter ist deutlich fortschrittlicher und kombiniert Messungen unter Berücksichtigung der Unsicherheit jeder Messung und ihrer Korrelationen. So lassen sich auch bei vorhandenem Rauschen genaue Schätzungen erzielen. Er wird häufig in Navigationssystemen und der fortgeschrittenen Robotik eingesetzt, erfordert jedoch höhere Rechenleistung.

3D-Simulation und Orientierungsvisualisierung (Gieren, Nicken, Rollen)

Eine interessante Anwendung ist die Echtzeitanzeige der 3D-Ausrichtung eines Objekts, wie beispielsweise einer Drohne oder eines Roboters, durch die Darstellung der Winkel Gieren, Nicken und Rollen.

Dies wird erreicht, indem die verarbeiteten Daten an eine Grafiksoftware übertragen werden. Dabei kommen Tools wie Serial Plotter oder spezielle 3D-Programme zum Einsatz, um Bewegungen zu überwachen und zu analysieren. Auf diese Weise können Sie visuell nachvollziehen, wie Ihr System im Raum ausgerichtet ist.

Erweiterte Messwerte: Verwendung von Magnetometer und LSM9DS1-Sensor

El LSM9DS1 integriert einen Beschleunigungsmesser, ein Gyroskop und ein Magnetometer in einem einzigen Chip und ermöglicht so die Datenerfassung von absolute Position und OrientierungZusätzlich zur Messung von Beschleunigung und Rotation kann es das Magnetfeld der Erde erfassen, um:

  • Berechne das absoluter Azimut, nützlich bei der Navigation und bei digitalen Kompassen.
  • Entwickeln Sie Leitsysteme ohne zusätzliche externe Sensoren.
  • Kombinieren Sie Daten aller Sensoren für eine hochpräzise Positions- und Orientierungsschätzung (9-DoF).

Praktische Tipps zur effektiven Nutzung von MPU6050 und LSM9DS1

  • Kalibrieren Sie die Sensoren immer vor dem Einsatz in kritischen Anwendungen, um die Genauigkeit zu verbessern.
  • Vermeiden Sie die Montage von Modulen in der Nähe von elektromagnetischen Störquellen wie Motoren oder Magneten.
  • Verwenden Sie Filtertechniken und behalten Sie die genaue Kontrolle über die Probenahmezeiten.
  • Zur absoluten Orientierung nach Norden empfiehlt sich die Verwendung eines LSM9DS1 oder kombinieren Sie den MPU6050 mit einem externen Magnetometer, beispielsweise dem HMC5883L.
  • Die Implementierung von Echtzeitvisualisierungen hilft dabei, die gesammelten Daten besser zu interpretieren.
  • Buchhandlungen wie i2cdevlib Sie vereinfachen die Arbeit erheblich, priorisieren Sie sie also, um die Entwicklung zu erleichtern.
LSM9DS1
Verwandte Artikel:
Vollständige Anleitung zum LSM9DS1-Sensor mit Arduino: Beschleunigungsmesser, Gyroskop und Magnetometer

Starten Sie das Gespräch

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.