MPU6050: Arduino 6-Achsen-Beschleunigungsmesser + Gyro - GY 521 Test & 3D-Simulation
Möchten Sie mit Arduino Ihre eigene Quadcopter-Drohne oder ein RC-Flugzeug bauen, wissen aber nicht, wie Sie den Kreisel zum Laufen bringen können? Vielleicht haben Sie bereits einige 6-Achsen-MPU6050-Module (auf den GY-521-Breakout-Boards) gekauft, um herauszufinden, dass sie nicht so einfach zu bedienen sind, wie Sie dachten? Probieren Sie es aus!
Sie lernen, eine einfache Schaltung zu verkabeln, um Ihre MPU6050 mit einem Arduino zu testen und YAW, PITCH und ROLL auf einer 3D-Modellebene auf dem Bildschirm zu simulieren. Dies ist als Lernwerkzeug gedacht, um Sie mit Kreiselmodulen, Breakout-Boards und der Installation der erforderlichen Bibliotheken in Ihrer Arduino IDE vertraut zu machen, damit Sie Ihren MEMS-Kreisel optimal nutzen und Zeit sparen können, anstatt komplexen Code von Grund auf neu zu schreiben.
Was Sie brauchen, finden Sie bei eBay (Links unten):
- 1 x Arduino UNO + USB-Kabel
- 1 x Mini-Prototyping-Steckbrett
- 1 x GY-521 Breakout Board
- Einige Überbrückungskabel von Stecker zu Stecker
- Lötkolben + Lötmittel
Schritt 1: Kabelkreis wie unten gezeigt:

*** HINWEIS : Alle roten Kabel sind VCC (+ 5V) und schwarze Kabel sind GND. Überprüfen Sie dies sorgfältig, wenn Sie Ihren Stromkreis verkabeln. Die Breakout-Platine wird mit Stiften geliefert, muss jedoch gelötet werden. ***
Für Ihr eigenes Lernen:
- Das Kreiselmodul kommuniziert mit dem Arduino über die serielle I2C-Kommunikation über die serielle Uhr (SCL) und die Daten (SDA).
- Der MPU6050-Chip benötigt 3, 3 V, aber ein Spannungsregler auf der GY-521-Platine ermöglicht es Ihnen, bis zu 5 V zu liefern
- Weitere Informationen zum Modul finden Sie auf dieser Seite des Arduino-Spielplatzes
Schritt 2: Installieren Sie die I2Cdev- und MPU6050-Bibliotheken

Wenn wir den Code von Grund auf neu schreiben würden, würde es Ewigkeiten dauern und es wäre viel Reverse Engineering erforderlich, um die proprietäre DMP-Engine (Digital Motion Processing) des Moduls gut zu nutzen, da Invensense absichtlich nur minimale Daten auf seiner MPU6050 veröffentlicht hat. Gut, dass jemand schon die harte Arbeit für uns geleistet hat; Jeff Rowberg hat einige Arduino-Bibliotheken geschrieben, um die Beschleunigungsmesser- / Kreiseldaten zu erhalten und alle Berechnungen durchzuführen. Sie sind hier als Zip-Datei verfügbar:
//github.com/jrowberg/i2cdevlib/zipball/master
Suchen Sie nach dem Entpacken den darin enthaltenen Arduino-Ordner und kopieren Sie die beiden Ordner "I2Cdev" und "MPU6050" in den Ordner "Arduino-Bibliotheken" im folgenden Verzeichnis:
C: \ Programme (x86) \ Arduino \ Bibliotheken
Öffnen Sie dann die Arduino IDE und im Abschnitt "Beispiele" sollten Sie MPU6050_DMP6 in MPU6050 finden. Öffnen Sie es, schließen Sie Ihr Arduino an, wählen Sie den entsprechenden COM-Port aus und laden Sie die Skizze hoch. Wählen Sie im seriellen Fenster eine Baudrate von 115200 aus. Sie sollten aufgefordert werden, die MPU6050-Verbindung erfolgreich herzustellen. Sie können die Datenerfassung testen, indem Sie etwas in die Textleiste eingeben und die Eingabetaste drücken. Die Daten sollten angezeigt werden.
Jetzt möchten wir den Code für die Ausführung der Teekannen-Demo festlegen, um die 3D-Simulation anzuzeigen. Schließen Sie das serielle Fenster, suchen und kommentieren Sie die Zeile #define OUTPUT_READABLE_YAWPITCHROLL und kommentieren Sie die Zeile // # define OUTPUT_TEAPOT aus. Wählen Sie "Speichern unter" und wählen Sie aus, wo Sie den geänderten Code speichern möchten. Laden Sie erneut hoch, aber öffnen Sie diesmal nicht das serielle Fenster.
Schritt 3: Laden Sie die neueste Version der Processing & ToxicLibs Library herunter und installieren Sie sie
Um eine 3D-Simulation der Gier- / Nick- / Rollwerte in einem Flugzeug auf dem Bildschirm auszuführen, führen wir die Teekannen-Demo aus dem MPU6050_DMP6-Beispiel aus Jeff Rowbergs MPU6050-Bibliothek aus. Die Arduino IDE erfasst jedoch nur die Daten. Um die 3D-Simulation anzuzeigen, benötigen wir zusätzliche Software: Verarbeitung. Laden Sie Processing von hier herunter und entpacken Sie es nach Belieben:
//processing.org/download/?processing
Wir brauchen eine letzte Bibliothek, um die Dinge zum Laufen zu bringen: ToxicLib. Diese Bibliothek wird anstelle von Arduino in den Bibliotheksordner von Processing verschoben. Die neueste Version der ToxicLibs-Bibliothek finden Sie hier:
//bitbucket.org/postspectacular/toxiclibs/downloads/
Der Ordner "Bibliotheken" von Processing kann wie folgt gefunden werden (beginnend im Verarbeitungsordner): Modi -> Java -> Bibliotheken. Entpacken Sie ToxicLibs und platzieren Sie den gesamten Inhalt dort.
Schritt 4: Führen Sie die Simulation aus

Öffnen Sie zuletzt die Anwendungsdatei "Verarbeitung" und dann
Datei -> Öffnen -> Folgen Sie diesem Verzeichnis C: \ Programme (x86) \ Arduino \ Bibliotheken \ MPU6050 \ Beispiele \ MPU6050_DMP6 \ Processing \ MPUTeapot
und öffnen Sie die MPUTeapot-Datei.
Klicken Sie auf die Wiedergabetaste, und das System sollte etwa 20 bis 30 Sekunden lang kalibrieren. Lassen Sie den Kreisel während dieser Zeit stehen.
Nehmen Sie nun den Kreisel und testen Sie das Gieren / Neigen / Rollen. Sobald Sie zufrieden sind, dass alles richtig funktioniert, können Sie damit für Ihre eigenen Projekte experimentieren. Wenn Sie die I2Cdev- oder MPU6050-Bibliotheken und ihre Funktionen vollständig nutzen möchten, konsultieren Sie deren Header-Dateien.
Ich hoffe, dass ich in Kürze eine Anleitung zur Herstellung einer DIY-Drohne geben kann. Wenn Sie diese also nützlich fanden, können Sie sich auf zukünftige Projekte einstellen, indem Sie mir auf Instructables und auf Facebook / Twitter / Google+ folgen.
Wenn Ihnen diese Anleitung gefallen hat und Sie mehr davon sehen möchten, unterstützen Sie mich bitte, indem Sie Ihre Materialien für dieses Projekt über die Affiliate-Links im Materialbereich kaufen oder unten spenden:
PayPal : //www.paypal.me/HobbyTransform
Bitcoin : 1Mqe7et24Lz4DY1RUN4iAQVHkvJsdFArKR
Ethereum : 0x6d8248db1cdea6a783cb6b41ae67bb8e6144f479
Litecoin : LW6PWESqsr8xHw6EJ9WLbsQsAyTvPnwnxJ
Bindestrich : Xemv7jud697v8tQmKfNFoMxfkd17ZayH2t
Ihre Unterstützung wird sehr geschätzt! Viel Spaß beim Basteln!