2.34 MPU6050-Modul¶
Überblick¶
In dieser Lektion lernen Sie, wie Sie MPU6050 verwenden. MPU-6050 ist ein 6-Achsen-Bewegungsverfolgungsgerät (kombiniert aus 3-Achsen-Gyroskop und 3-Achsen-Beschleunigungsmesser). Es wird häufig für Augmented Reality und elektronische Bildstabilisierung (EIS: Electronic Image Stabilization), optische Bildstabilisierung (OIS: Optical Image Stabilization) und „Zero Touch“-Gesten-Benutzeroberfläche verwendet.
Erforderliche Komponenten¶
Fritzing-Schaltung¶
In dieser Lektion lernen Sie, wie Sie MPU6050 verwenden. MPU-6050 ist ein 6-Achsen-Bewegungsverfolgungsgerät (kombiniert aus 3-Achsen-Gyroskop und 3-Achsen-Beschleunigungsmesser). Es wird häufig für Augmented Reality und elektronische Bildstabilisierung (EIS: Electronic Image Stabilization), optische Bildstabilisierung (OIS: Optical Image Stabilization) und „Zero Touch“-Gesten-Benutzeroberfläche verwendet.
Schematische Darstellung¶
Code¶
Bemerkung
Sie können die Datei
2.34_MPU6050.ino
unter dem Pfadsunfounder_vincent_kit_for_arduino\code\2.34_MPU6050
direkt öffnen.Oder kopieren Sie diesen Code in Arduino IDE.
Nachdem Sie die Codes auf das Mega2560-Board hochgeladen haben, können Sie den seriellen Monitor öffnen, um die Schwerkraftbeschleunigung und Winkelgeschwindigkeit von MPU6050 in jeder Richtung zu sehen.
Code-Analyse¶
Im stationären Desktop-Zustand beträgt die Beschleunigung der Z-Achse 1 Gravitationseinheit und die X- und Y-Achse sind 0.
Vor der Verwendung müssen Sie das Modul kalibrieren, die Methoden sind wie folgt:
MPU6050-Module werden horizontal auf dem Schreibtisch platziert und können dann mit Klemmen oder Klebeband befestigt werden.
Führen Sie die Beispielcodes aus, um die ROHDATEN von MPU6050 zu erhalten, wenn es statisch ist.
Fügen Sie eine Kompensation gemäß den Messwerten hinzu, wenn MPU6050 statisch ist.
Nehmen Sie die MPU6050, die wir als Beispiel verwenden, und die Ergebnisse der Kompensation sind wie folgt:
Serial.print(AcX / 65536 * ACCELE_RANGE - 0.02);
Serial.print(AcY / 65536 * ACCELE_RANGE + 0);
Serial.print(AcZ/65536 * ACCELE_RANGE + 0.02);
Serial.print(GyX / 65536 * GYROSC_RANGE + 1.70);
Serial.print(GyY/65536 * GYROSC_RANGE - 1.70);
Serial.print(GyZ/65536*GYROSC_RANGE + 0.25);