IMU MPU-9250/6500: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 67: Zeile 67:
=Software=
=Software=
==Arduino==
==Arduino==
=== I²C-Scanner ===
Prüfen Sie welche Sensoren am I2C-Bus angeschlossen sind.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>DemoI2C_Scanner.ino  &thinsp;</strong>
|-
| <source line lang="C" style="font-size:medium">#include <Wire.h>
void setup()
{
  Serial.begin(115200);
  Wire.begin();
  Serial.println("I2C Scan");
  for(byte address=1; address<127; address++)
  {
    Wire.beginTransmission(address);
    if(Wire.endTransmission()==0)
    {
      Serial.print("Gefunden: 0x"); // 0x71 MPU9250 auf einem GY-6500/GY-9250-Board
      Serial.println(address, HEX);
    }
  }
}
void loop(){}
</source>
|}
URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoI2C_Scanner/DemoI2C_Scanner.ino
Erwartetes Ergebnis
I2C Scan
Gefunden: 0x68
<code>0x68</code> ist die I²C-Adresse des Sensors.
=== Prüfen welcher Chip verbaut wurde ===
=== 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.
Bei diesen Modulen kommt es vor, dass ein Board als MPU-9250 verkauft wird, aber tatsächlich ein MPU6500 bestückt ist.
Zeile 112: Zeile 144:
|}
|}
  URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoWhoAmI/DemoWhoAmI.ino
  URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoWhoAmI/DemoWhoAmI.ino
=== I²C-Scanner ===
Prüfen Sie welche Sensoren am I2C-Bus angeschlossen sind.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>DemoI2C_Scanner.ino  &thinsp;</strong>
|-
| <source line lang="C" style="font-size:medium">#include <Wire.h>


void setup()
{
  Serial.begin(115200);
  Wire.begin();
  Serial.println("I2C Scan");
  for(byte address=1; address<127; address++)
  {
    Wire.beginTransmission(address);
    if(Wire.endTransmission()==0)
    {
      Serial.print("Gefunden: 0x"); // 0x71 MPU9250 auf einem GY-6500/GY-9250-Board
      Serial.println(address, HEX);
    }
  }
}
void loop(){}
</source>
|}
URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoI2C_Scanner/DemoI2C_Scanner.ino


=== Arduino-Bibliothek installieren===
=== Arduino-Bibliothek installieren===

Version vom 22. Juli 2026, 05:57 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

Tabelle 1: Eigenschaften des MPU-9250/6500
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 3 V bis 5 V
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
1 Betriebsspannung Vcc
2 Masse GND 3-5 V VCC, 3,3 V
3 SCL Empfang von Daten TX, D4
4 SDA Senden von Daten RX, D3
5 EDA
6 ECL
7 ADO/SDO
8 INT
9 NCS
10 FSYNC

Messverfahren

Software

Arduino

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