Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!

MPU6050

Überblick

In diesem Tutorial lernen Sie, das GY-87 IMU-Modul mit einem Arduino Uno zu verbinden, wobei der Fokus auf dem MPU6050-Sensor liegt. Wir behandeln die Initialisierung des MPU6050 und die Anzeige seiner Beschleunigungs-, Gyroskop- und Temperaturdaten auf dem Seriellen Monitor. Diese Lektion ist unerlässlich für Projekte, die Bewegungs- und Temperatursensoren benötigen, wie Robotik, gestengesteuerte Geräte und interaktive Kunstinstallationen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können die Komponenten auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Jumperkabel

KAUFEN

GY-87 IMU-Modul

-

Verdrahtung

../_images/09-gy87_bb1.png

Schaltplan

../_images/09_basic_gy87_schematic.png

Code

Bemerkung

  • Sie können die Datei 09-gy87_mpu6050.ino direkt unter dem Pfad elite-explorer-kit-main\basic_project\09-gy87_mpu6050 öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

Bemerkung

Um die Bibliothek zu installieren, verwenden Sie den Arduino Library Manager und suchen Sie nach „Adafruit MPU6050“ und installieren Sie diese.

Code-Analyse

  1. Einbinden von Bibliotheken

    Die Bibliotheken Adafruit_MPU6050, Adafruit_Sensor und Wire werden für die Sensorschnittstelle und Kommunikation eingebunden.

    #include <Adafruit_MPU6050.h>
    #include <Adafruit_Sensor.h>
    #include <Wire.h>
    
  2. Initialisieren des Sensorobjekts

    Ein Objekt der Klasse Adafruit_MPU6050 wird erstellt, um den MPU6050-Sensor darzustellen.

    Adafruit_MPU6050 mpu;
    
  3. Setup-Funktion

    Initialisiert die serielle Kommunikation und ruft die Funktion zur Initialisierung des MPU6050-Sensors auf.

    void setup() {
      Serial.begin(9600);
      initializeMPU6050();
    }
    
  4. Loop-Funktion

    Ruft wiederholt die Funktion auf, um MPU6050-Daten mit einer Verzögerung von 500 Millisekunden zwischen jedem Aufruf zu drucken.

    void loop() {
      printMPU6050();
      delay(500);
    }
    
  5. Initialisieren der MPU6050-Funktion

    Überprüft, ob der MPU6050 angeschlossen ist, stellt Beschleunigungsmesser- und Gyro-Bereiche ein und konfiguriert die Filterbandbreite.

    void initializeMPU6050() {
      // Check if the MPU6050 sensor is detected
      if (!mpu.begin()) {
        Serial.println("Failed to find MPU6050 chip");
        while (1)
          ;  // Halt if sensor not found
      }
      Serial.println("MPU6050 Found!");
    
      // set accelerometer range to +-8G
      mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
    
      // set gyro range to +- 500 deg/s
      mpu.setGyroRange(MPU6050_RANGE_500_DEG);
    
      // set filter bandwidth to 21 Hz
      mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
    
      Serial.println("");
      delay(100);
    }
    
  6. MPU6050-Daten drucken Funktion

    Liest und druckt die Beschleunigungs-, Gyroskop- und Temperaturdaten des MPU6050 auf den Seriellen Monitor.

    void printMPU6050() {
    
      Serial.println();
      Serial.println("MPU6050 ------------");
    
      /* Get new sensor events with the readings */
      sensors_event_t a, g, temp;
      mpu.getEvent(&a, &g, &temp);
    
      /* Print out the values */
      Serial.print("Acceleration X: ");
      Serial.print(a.acceleration.x);
      Serial.print(", Y: ");
      Serial.print(a.acceleration.y);
      Serial.print(", Z: ");
      Serial.print(a.acceleration.z);
      Serial.println(" m/s^2");
    
      Serial.print("Rotation X: ");
      Serial.print(g.gyro.x);
      Serial.print(", Y: ");
      Serial.print(g.gyro.y);
      Serial.print(", Z: ");
      Serial.print(g.gyro.z);
      Serial.println(" rad/s");
    
      Serial.print("Temperature: ");
      Serial.print(temp.temperature);
      Serial.println(" degC");
    
      Serial.println("MPU6050 ------------");
      Serial.println();
    }