ICM-20948 Board v2.0
Der ICM ist ein digitales IMU-Sensormodul zur Erfassung von Bewegung und Orientierung.
Er misst mehrere physikalische Größen gleichzeitig und eignet sich für Anwendungen
in Embedded-Systemen, Robotik, Steuerungstechnik sowie IoT-Projekten.
Kurzüberblick
- Messgrößen: Beschleunigung, Drehrate, Magnetfeld, Temperatur
- Sensorik: 9-Achsen IMU
- Schnittstelle: I²C
- Versorgungsspannung: 3,3 – 5,0 V
- Logikpegel (I²C): 3,3 V und 5 V kompatibel
- I²C-Pull-Ups: auf dem Breakout-Board vorhanden
Typische Anwendungsfälle
- Bewegungserkennung und Motion-Tracking
- Lage- und Orientierungsmessung
- Robotik- und Stabilisierungssysteme
- Embedded- und IoT-Projekte
- Technische Demonstratoren und Prototypen
Technische Daten
| Parameter |
Wert |
| Sensorik |
9-Achsen IMU |
| Schnittstelle |
I²C |
| Versorgungsspannung |
3,3 – 5,0 V |
| Logikpegel |
3,3 V / 5 V tolerant |
| Temperaturmessung |
integriert |
| Interrupt |
INT-Pin vorhanden |
Pinout & Anschlüsse
| Pin |
Bezeichnung |
Beschreibung |
| VIN |
Versorgung |
3,3 – 5,0 V |
| GND |
Masse |
Ground |
| SDA |
I²C Data |
I²C Datenleitung |
| SCL |
I²C Clock |
I²C Taktleitung |
| INT |
Interrupt |
Interrupt-Ausgang (optional) |
Hinweis:
Auf dem verwendeten Breakout-Board sind die I²C-Pull-Up-Widerstände bereits integriert.
Das ICM-Modul kann daher direkt an 3,3-V- oder 5-V-I²C-Busse angeschlossen werden.
Elektrische Eigenschaften
- Betrieb mit 3,3 V oder 5 V Versorgungsspannung
- I²C-Logikpegel kompatibel zu 3,3 V und 5 V
- Stabiler Betrieb nach kurzer Initialisierungsphase
Kommunikation (I²C)
- Bus: I²C
- Pull-Ups: vorhanden auf dem Board
Messwerte auslesen (vereinfacht)
- Startbedingung
- I²C-Adresse + Read
- Messdaten empfangen
- Messwerte verarbeiten (Accel / Gyro / Mag / Temp)
Beispielcode
Arduino (I²C)
#include <Adafruit_ICM20X.h>
#include <Adafruit_ICM20948.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_ICM20948 icm;
void setup(void) {
Serial.begin(115200);
while (!Serial) delay(10);
Serial.println("Adafruit ICM20948 test!");
if (!icm.begin_I2C()) {
Serial.println("Échec : ICM20948 non détecté. Vérifie le câblage !");
while (1) { delay(10); }
}
Serial.println("ICM20948 détecté avec succès !");
}
void loop() {
sensors_event_t accel;
sensors_event_t gyro;
sensors_event_t mag;
sensors_event_t temp;
icm.getEvent(&accel, &gyro, &temp, &mag);
Serial.println("------ Mesures ICM20948 ------");
Serial.print("Accel X: "); Serial.print(accel.acceleration.x); Serial.print(" m/s^2 ");
Serial.print("Y: "); Serial.print(accel.acceleration.y); Serial.print(" m/s^2 ");
Serial.print("Z: "); Serial.println(accel.acceleration.z); Serial.println(" m/s^2");
Serial.print("Gyro X: "); Serial.print(gyro.gyro.x); Serial.print(" rad/s ");
Serial.print("Y: "); Serial.print(gyro.gyro.y); Serial.print(" rad/s ");
Serial.print("Z: "); Serial.println(gyro.gyro.z); Serial.println(" rad/s");
Serial.print("Magnétomètre X: "); Serial.print(mag.magnetic.x); Serial.print(" uT ");
Serial.print("Y: "); Serial.print(mag.magnetic.y); Serial.print(" uT ");
Serial.print("Z: "); Serial.println(mag.magnetic.z); Serial.println(" uT");
Serial.print("Température: "); Serial.print(temp.temperature); Serial.println(" °C");
Serial.println("-------------------------------\n");
delay(500);
}
Kalibrierung & Hinweise
- Nach dem Einschalten eine kurze Initialisierungszeit abwarten.
- Die Messwerte sind relativ und abhängig von Montage, Ausrichtung und Umgebungseinflüssen.
- Für präzise Ergebnisse wird eine softwareseitige Kalibrierung von Beschleunigungssensor und Gyroskop empfohlen.
- Eine Magnetometer-Kalibrierung (Hard-/Soft-Iron) verbessert die Genauigkeit der Richtungsbestimmung.
- Das ICM-Sensormodul nicht in unmittelbarer Nähe starker Magnetfelder oder stromführender Leitungen betreiben.
Troubleshooting
Keine I²C-Kommunikation
- SDA und SCL korrekt angeschlossen
- Versorgungsspannung prüfen (3,3 V oder 5 V)
- Keine externen I²C-Pull-Up-Widerstände notwendig (bereits auf dem Board vorhanden)
- I²C-Bus ggf. mit einem I²C-Scanner überprüfen
- Andere I²C-Geräte testweise vom Bus trennen
Downloads
Weiterführende Links
- I²C-Spezifikation
- Grundlagen zur IMU-Sensorik
Revision / Changelog
| Version |
Datum |
Änderung |
| 1.0 |
2025-01-13 |
Erster Release |