ARDUINO GY87 Kombinierter Sensor-Testskizze
Einführung
Wenn Sie ein begeisterter Hersteller oder ein Robotik-Enthusiast sind, sind Sie auf dieses kleine, aber leistungsstarke Modul gestoßen. Das GY-085 IMU-Modul ist eine großartige Möglichkeit, um Bewegungserkennung zu Ihren Projekten hinzuzufügen, wie z. B. ein selbstbalancierender Roboter oder ein Quadrocopter.
Bevor Sie jedoch mit dem GY-87-IMU-Modul experimentieren können, müssen Sie wissen, wie Sie es mit Ihrem Arduino-Board verbinden. Hier kommt dieser Blog ins Spiel! In den folgenden Abschnitten behandeln wir die Grundlagen des GY-87 IMU-Moduls, wie man es einrichtet und wie man den Arduino-Code schreibt, um die Sensordaten zu lesen. Wir stellen auch einige Tipps und Ressourcen zur Behebung häufiger Probleme bereit.
Wenn Sie also bereit sind, loszulegen, lassen Sie uns eintauchen und mehr über die Verbindung des GY-87-IMU-Moduls mit Arduino erfahren!
Was ist GY-87 IMU MPU6050
Inertial Measurement Unit (IMU)-Module wie das GY-87 vereinen viele Sensoren in einem einzigen Paket, wie den MPU6050-Beschleunigungsmesser/Gyroskop, das HMC5883L-Magnetometer und den BMP085-Barometerdrucksensor. Daher ist das GY-87 IMU MPU6050 ein All-in-One-9-Achsen-Bewegungsverfolgungsmodul, das ein 3-Achsen-Gyroskop, einen 3-Achsen-Beschleunigungsmesser, ein 3-Achsen-Magnetometer und einen digitalen Bewegungsprozessor kombiniert. Es wird häufig in Roboterprojekten wie Quadrocoptern und anderen unbemannten Luftfahrzeugen (UAVs) eingesetzt, da es Orientierung und Bewegung genau messen und verfolgen kann. Es wird auch in anderen Anwendungen wie Navigation, Spielen und virtueller Realität verwendet.
Hardwarekomponenten
Sie benötigen die folgende Hardware, um das GY-87 IMU MPU6050 HMC5883L BMP085-Modul mit Arduino zu verbinden.
Komponenten | Wert | Menge |
Arduino UNO | – | 1 |
MPU6050 Sensor-Modul | GY-87 | 1 |
Steckplatine | – | 1 |
Überbrückungsdrähte | – | 1 |
GY-87 mit Arduino
Nachdem Sie den GY-87 verstanden haben, ist es an der Zeit, eine Schnittstelle mit dem Arduino herzustellen. Gehen Sie dazu wie folgt vor. Nachdem Sie den GY-87 verstanden haben, ist es an der Zeit, eine Schnittstelle mit dem Arduino herzustellen. Folgen Sie dazu
schematisch
Stellen Sie die Anschlüsse gemäß dem unten angegebenen Schaltplan her
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoVerdrahtung / Anschlüsse
Arduino | MPU6050-Sensor |
5V | VCC |
Masse | Masse |
A4 | SDA |
A5 | SCA |
Arduino IDE installieren
Zuerst müssen Sie die Arduino IDE-Software von ihrer offiziellen Seite installieren webSeite Arduino. Hier ist eine einfache Schritt-für-Schritt-Anleitung zum „Installieren von Arduino IDE“.
Installieren von Bibliotheken
Bevor Sie mit dem Hochladen von Code beginnen, laden Sie die folgenden Bibliotheken unter /Program herunter und entpacken Sie sie Files (x86)/Arduino/Libraries (Standard), um den Sensor mit dem Arduino-Board zu verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung zum „Hinzufügen von Bibliotheken in Arduino IDE“.
- MPU6050
- Adafruit_BMP085
- HMC5883L_Einfach
Code
Kopieren Sie nun den folgenden Code und laden Sie ihn in die Arduino IDE Software hoch.
#include „I2Cdev.h“ #include „MPU6050.h“ #include #enthalten MPU085 Beschleunigungsgyro; Adafruit_BMP5883 bmp; HMC6050L_Einfacher Kompass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = falsch; void setup () {Serial.begin (16); Wire.begin (); // Geräte initialisieren Serial.println ("Initialisieren von I13C-Geräten ..."); // bmp9600 initialisieren if (!bmp.begin()) { Serial.println(“Konnte keinen gültigen BMP2-Sensor finden, check (!bmp.begin()) { Serial.println(“Konnte keinen gültigen BMP085-Sensor finden, check Serial.println(accelgyro.testConnection() ? „MPU085-Verbindung erfolgreich“ : „MPU085-Verbindung fehlgeschlagen“); accelgyro.setI6050CBypassEnabled(true); // Bypass-Modus für Gateway zu hmc6050L setzen // hmc2l initialisieren Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamplingMode (COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // Arduino LED für die Überprüfung der Aktivität konfigurieren PinMode (LED_PIN, OUTPUT); } Leere Schleife () {
Serial.print ("Temperatur = "); Serial.print (bmp.readTemperature());
Serial.println(”*C”); Serial.print ("Druck = ");
Serial.print (bmp.readPressure()); Serial.println("Pa"); // Berechnen Sie die Höhe unter der Annahme eines "Standard" barometrischen // Drucks von 1013.25 Millibar = 101325 Pascal Serial.print ("Höhe = "); Serial.print (bmp.readAltitude()); Serial.println ("Meter"); Serial.print ("Druck auf Meereshöhe (berechnet) = ");
Serial.print (bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print ("Echte Höhe = "); Serial.print (bmp.readAltitude (101500));
Serial.println ( "Meter"); // unbearbeitete Beschleunigungs-/Kreiselmessungen vom Gerät lesen accelgyro.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); // tabulatorgetrennte Beschleunigungs-/Kreisel-x/y/z-Werte anzeigen Serial.print ("a/g:\t"); Serial.print (ax);
Serial.print ("\ t"); Serial.print (ay); Serial.print ("\ t"); Serial.print (az);
Serial.print ("\ t"); Serial.print (gx); Serial.print ("\ t"); Serial.print (gy);
Serial.print ("\ t"); Serial.println (gz); float Überschrift =
Compass.GetHeadingDegrees(); Serial.print ("Überschrift: \ t"); Serial.println (Überschrift); // LED blinken, um Aktivität anzuzeigen blinkState = !blinkState;
digitalWrite (LED_PIN, blinkState); Verzögerung (500); }
Testen wir es
Sobald Sie den Code hochgeladen haben, ist es Zeit, die Schaltung zu testen! Der Code im Arduino-Programm verbindet sich mit den Sensoren unter Verwendung ihrer Bibliotheken, wodurch Sensordaten gelesen und verschiedene Konfigurationen der Sensoren eingestellt werden können. Dann druckt es die Sensordaten über die serielle Schnittstelle aus. Die LED wird verwendet, um anzuzeigen, dass die Schaltung etwas tut. Dies bedeutet, dass die LED jedes Mal blinkt, wenn die Schleifenfunktion ausgeführt wird, was anzeigt, dass der Code aktiv Sensorwerte liest.
Arbeitserklärung
Der Code ist die Hauptsache, auf der die Funktionsweise der Schaltung basiert. Also, lassen Sie uns den Code verstehen:.
- Erstens enthält es mehrere Bibliotheken für die Schnittstelle mit den Sensoren:
- „I2Cdev.h“ und „MPU6050.h“ sind Bibliotheken für den 6050-Achsen-Beschleunigungsmesser/Gyroskopsensor MPU6
- „Adafruit_BMP085.h“ ist eine Bibliothek für den barometrischen Drucksensor BMP085.
- „HMC5883L_Simple.h“ ist eine Bibliothek für den Magnetometersensor HMC5883L.
- Dann erstellt es globale Objekte für die drei Sensoren: MPU6050 accelgyro, Adafruit_BMP085 bmp und HMC5883L_Simple Compass.
- Als nächstes definiert es einige Variablen, um Sensorwerte zu speichern, wie z. B. ax, ay und az für den Beschleunigungsmesser von MPU6050 und um zum Magnetometer von HMC5883L zu gehen. Und es definiert eine LED_PIN-Konstante und eine blinkState-Variable.
- Die Funktion setup() startet eine serielle Kommunikation und beginnt mit der I2C-Kommunikation. Dann initialisiert es die drei Sensoren:
- Der BMP085-Sensor wird durch Aufrufen der begin()-Methode initialisiert. Wenn dies falsch zurückgibt, was anzeigt, dass der Sensor nicht gefunden werden konnte, tritt das Programm in eine Endlosschleife ein und gibt eine Fehlermeldung über die serielle Schnittstelle aus.
- Der MPU6050-Sensor wird initialisiert, indem die Methode initialize() aufgerufen und überprüft wird, ob sie korrekt funktioniert. Und es hat den I2C-Bypass für MPU6050 aktiviert.
- Der HMC5883L-Sensor wird durch Aufrufen einiger Funktionen wie SetDeclination, SetS initialisiertamplingMode, SetScale und SetOrientation zum Einstellen unterschiedlicher Konfigurationen für den Sensor.
- In der Funktion loop() liest der Code Daten von den drei Sensoren und druckt sie über die serielle Schnittstelle aus:
- Es liest Temperatur, Druck, Höhe und Druck auf Meereshöhe vom Sensor.
- Es liest unbearbeitete Beschleunigungs- und Gyroskopmessungen vom MPU6050-Sensor.
- Es liest den Kurs vom HMC5883L-Sensor, das ist der Winkel zwischen der Richtung, in die der Sensor zeigt, und der Richtung, in der der magnetische Norden liegt.
- Schließlich blinkt die LED, um Aktivität anzuzeigen, und wartet einen Moment, bevor die Sensoren erneut gelesen werden.
Dokumente / Ressourcen
![]() |
ARDUINO GY87 Kombinierter Sensor-Testskizze [pdf] Benutzerhandbuch GY87 Kombinierte Sensortestskizze, GY87, Kombinierte Sensortestskizze, Sensortestskizze, Testskizze |