IMU MPU-9250/6500: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 127: Zeile 127:
| <strong>DemoI2C_Scanner.ino  &thinsp;</strong>
| <strong>DemoI2C_Scanner.ino  &thinsp;</strong>
|-
|-
| <source line lang="C" style="font-size:medium">#include <Wire.h>
| <source line lang="C" style="font-size:medium">


#include <Wire.h>
#include <Wire.h>

Version vom 30. Juli 2026, 09:13 Uhr

Abbildung 1: IMU MPU-9250/6500

Autor: Prof. Schneider


Einleitung

Die Inertiale Messeinheit (Engl. intertial measurement unit, IMU) ist ein 9-Achsen-Positionserkennungsmodul, das die folgenden Sensoren kombiniert:

  • 3-Achsen-Gyroskop
  • 3-Achsen-Beschleunigungssensor
  • 3-Achsen-Magnetfeldsensor (Erdmagnetfeld/Kompass)

Ein Digital Motion Processor (DMP) ist zudem in einer winzigen Gehäusegröße von nur 3x3x1 mm verbaut. Das Modul kann über einen I2C-Bus angesprochen werden. Der MPU-9250 ist ein Multi-Chip-Modul welches die MPU-6500 (Geschleunigung und Gyro) via I2C mit dem AKM-8963 (Magnetometer) verbindet.

Technische Übersicht

Eigenschaft Daten
Artikel MPU-9250/6500
ADU 3x 16-Bit Analog-Digital Konverter für Gyro, Beschleunigung und Magnetfeld
Schnittstelle I2C und SPI Schnittstelle
Spannungsversorgung am VCC Pin 3,3 V bis 5 V

Über den intern verbauten LDO ME6211C33M5G-N ((S2RC),out 3.3V 500mA 300mW), bekommt der Sensor intern seine benötigten 2,4 V bis 3,6 V

Stromaufnahme 4 mA
Messbereich Gyroskop einstellbar: ±250, ±500, ±1000 and ±2000 °/s
Messbereich Beschleunigung einstellbar: ±2g, ±4g, ±8g and ±16g
Messbereich Magnetometer ±4800 µT
Hersteller InvenSense, TDK

Pinbelegung

Pin MPU-9250 Signal Arduino Uno R3 Leitungsfarbe der im Alpha Bot verbauten Sensoren Pin am Alpha Bot mit Arduino Uno R4 WIFI qwii-Bus
1 Betriebsspannung Vcc VCC VCC, 3,3 V rot Pin2 +3,3V rotes qwii Kabel
2 Masse GND GND GND schwarz Pin1 GND schwarzes qwii Kabel
3 SCL I2C Taktleitung interner 10 kOhm Widerstand auf 3,3 V SCL weiß Pin4 SCL gelbes qwii Kabel
4 SDA I2C Datenleitung interner 10 kOhm Widerstand auf 3,3 V SDA blau Pin3 SDA blaues qwii Kabel
5 EDA externe I²C Pins NC NC
6 ECL externe I²C Pins NC NC
7 ADO/SDO Änderung der I²C Buss Adresse LOW (NC/GND) = 0x68, HIGH (+3,3V) = 0x69 NC NC
8 INT Interrupt Pin um anzuzeigen, dass aktuelle Daten vorliegen, welche ausgewertet werden können. NC gelb eventuell auf einen neuen nicht benötigten Interrupt Pin Uno R4
9 NCS Chip Select bei SPI Nutzung NC NC
10 FSYNC Frame Synchronisation für Interrupts von externen Sensoren NC NC

Messverfahren

Technischer Aufbau

Das MPU-9250 ist ein Multi-Chip-Modul (MCM), das aus zwei Chips besteht, die in einem einzigen QFN-Gehäuse integriert sind, siehe Abbildung 5.

Abbildung 5: InvenSense Inc. [ https://product.tdk.com/system/files/dam/doc/product/sensor/mortion-inertial/imu/data_sheet/ps-mpu-9250a-01-v1.1.pdf Datenblatt 1.1 MPU 9250 Seite 21/42]

Ein Chip beherbergt das 3-Achsen-Gyroskop und den 3-Achsen-Beschleunigungssensor. Der andere Chip beherbergt das 3-Achsen- Magnetometer AK8963 der Asahi Kasei Microdevices Corporation. Somit ist das MPU-9250 ein 9-Achsen-MotionTracking-Gerät, das ein 3-Achsen-Gyroskop, einen 3-Achsen-Beschleunigungssensor, ein 3-Achsen-Magnetometer und einen Digital MotionProcessor™ (DMP) beinhaltet. Mit seinem dedizierten I²C-Sensor-Bus liefert der MPU-9250 direkt vollständige 9-Achsen-MotionFusion™-Ausgabedaten.

Der MPU-9250 ist zudem so konzipiert, dass er über seinen zusätzlichen I²C-Anschluss mit mehreren nicht-inertialen digitalen Sensoren, wie beispielsweise Drucksensoren, kommunizieren kann. Der MPU-9250 verfügt über drei 16-Bit-Analog-Digital-Wandler (ADCs) zur Digitalisierung der Gyroskop-Ausgänge, drei 16-Bit-ADCs zur Digitalisierung der Beschleunigungsmesser-Ausgänge und drei 16-Bit-ADCs zur Digitalisierung der Magnetometer- Ausgänge, siehe Abbildung 5. Zur präzisen Erfassung sowohl schneller als auch langsamer Bewegungen verfügen die Bauteile über einen vom Anwender programmierbaren Gyroskop-Vollbereich von ±250, ±500, ±1000 und ±2000°/s (dps) sowie einen vom Anwender programmierbaren Beschleunigungssensor- Vollbereich von ±2 g, ±4 g, ±8 g und ±16 g sowie einen Magnetometer-Vollbereich von ±4800 μT. Zu den weiteren branchenführenden Merkmalen zählen programmierbare digitale Filter, ein Präzisions-Taktgeber mit einer Abweichung von 1 % im Temperaturbereich von -40 °C bis 85 °C, ein integrierter Temperatursensor sowie programmierbare Interrupts. Das Gerät verfügt über serielle I²C- und SPI-Schnittstellen, einen VDD-Betriebsbereich von 2,4 V bis 3,6 V sowie eine separate digitale E/A-Versorgung (VDDIO) von 1,71 V bis VDD. Die Kommunikation mit allen Registern des Bausteins erfolgt entweder über I²C mit 400 kHz oder über SPI mit 1 MHz. Für Anwendungen, die eine schnellere Kommunikation erfordern, können die Sensor- und Interrupt-Register über SPI mit 20 MHz ausgelesen werden.

Funktionsweise der 3 Sensoren

Beschleunigungssensor (3-Achsen-Accelerometer):

Dieser arbeitet mit MEMS Technik einer Technology, bei der im Chip kleine federnde aufgehängte Silizium-Massen durch die Beschleunigung und die Erdbeschleunigung verschoben werden und deren Verschiebung gemessen werden kann z.B. durch die Messung sich verändernder Kapazitäten an Kammstruckturen, welche zwischen der Masse und dem starren äußeren Körper befinden, und deren Kapazität sich durch die Verschiebung wie bei einem klassischen Plattenkondensator ändert.

Gyroskop (3-Achsen-Gyro):

Hierbei wird die Corioliskraft genutzt. Auch hier kommen wieder MEMS zum Einsatz. Es wird die Rotation gemessen in dem man die Vibrationen quer zu ihrer Antriebsrichtung erfasst. Die Abbildung 4 zeigt wie mithilfe eines MEMS verschiedene Richtungen erfasst werden können, weiter Informationen dazu in Medium:Rapid Prototyping of Inertial MEMS Devices through.pdf.

Magnetometer (3-Achsen-Kompass):

Beim Magnetometer werden Hall-Effekt-Sensoren genutzt, mit denen man die Magnetfeldstärke und die Richtung erfassen kann. Zu beachten ist, das die Achsen des Magnetometers in unterschiedliche Richtungen ausgerichtet sind im Vergleich zum Beschleunigungssensor und des Gyros siehe Abbildung 7. Durch die Integration dreier Sensoren können die negativen Eigenschaften der einzelnen Sensoren kompensiert werden. So kann der Magnetfeldsensor die Drift des Gyroskops kompensieren werden und die Ausrichtung des Sensors im Raum bestimmt werden, solange keine magnetischen Gegenstände wie Metallteile, Magnete oder Elektromagneten wie z.B. Motoren in der Nähe sind. Daher sollten bei Verwendung des Sensors alle Sensoren beim Starten kalibriert werden, z.B. wie beim Handy der Magnetfeldsensor kalibriert wird über das Bewegen des Sensors in einer achtförmigen Schleife oder der Bestimmung des Start-Offset des Gyros.

Abbildung 7: Ausrichtung der 3 Unterschiedlichen Sensoren im MPU 9250 laut InvenSense Inc. [ https://product.tdk.com/system/files/dam/doc/product/sensor/mortion-inertial/imu/data_sheet/ps-mpu-9250a-01-v1.1.pdf Datenblatt 1.1 MPU 9250 Seite 38/42


Praktisches Beispiel zum Ausdrucken am 3D Drucker eines MEMS Gyros bei Printables von dona97m siehe Abbildung 3.

Abbildung 3: MEMS Gyro 3D Druck von https://www.printables.com/model/357673-mems-gyroscope/remixes MEMS Gyroscope
Abbildung 4: MEMS Gyro Beispiel von https://www.researchgate.net/publication/353487249/figure/fig2/AS:11431281390681098@1745289189539/Reference-layout-of-a-triaxial-beating-heart-MEMS-gyroscope-a-and-associated-modal.tif Rapid Prototyping of Inertial MEMS Devices through Structural Optimization aus sensors 26.06.2021 von Giannini, D.;Bonaccorsi, G.; Braghin, F. Rapid

Literatur

Beispiel des Aufbaus und der Auslegung eines MEMS Gyros. https://www.researchgate.net/publication/353487249_Rapid_Prototyping_of_Inertial_MEMS_Devices_through_Structural_Optimization

Software





Arduino

AlphaBot

In der Abbildung 2 des AlphaBots sieht man den MontagePunkt des MPU-9250, sowie dessen Ausrichtung der Messachsen. X zeigt in Fahrtrichtung des Linienverfolgers.

Abbildung 2: Ausrichtung der Messachsen des MPU-9250/6500 im AlphaBot

Zweiter I²C-Bus Arduino UNO R4 Wifi

https://docs.arduino.cc/tutorials/uno-r4-wifi/qwiic/



I²C-Scanner

Prüfen Sie welche Sensoren am I2C-Bus angeschlossen sind.

URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoI2C_Scanner/DemoI2C_Scanner.ino

Erwartetes Ergebnis

I2C Scan
Gefunden: 0x68

0x68 ist die I²C-Adresse des Sensors.

Prüfen welcher Chip verbaut wurde

Bei diesen Modulen kommt es vor, dass ein Board als MPU-9250 verkauft wird, aber tatsächlich ein MPU6500 bestückt ist.

Lesen Sie das Register 0x75 per I²C aus.

Tabelle 1: Erwartete Antwort
Chip WHO_AM_I
MPU-6500 0x70
MPU-9250 0x71
URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoWhoAmI/DemoWhoAmI.ino

Arduino-Bibliothek installieren

MPU9250_asukiaaa

Tabelle 1: Übersicht der Demos
Demo Funktion
DemoUnoR4Wifi.ino Demo zum Senden von Sensordaten via Wifi für die Arduino IDE
DemoUnoR4Wifi.m Demo zum Empfangen von Sensordaten via Wifi mit MATLAB®
GetDate.ino Demo zum Auslesen der IMU-Daten des Sensors MPU 9250
E15_RadInkrementalgeberFahrt.ino Demo zum Ansteuern der Motoren und auslesen der Odometrie des AlphaBot

Weitere AlphaBot und Arduino Demos finden Sie im SVN-Repositorium

https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/

MATLAB®

Simulink

Messung

Video

How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino

Datenblätter


→ zurück zum Hauptartikel: Sensor-Baukasten | HSHL-Mechatronik-Baukasten