Verwenden der MPU-6050 mit dem Raspberry Pi

Using the MPU-6050 with the Raspberry Pi

Der MPU-6050 ist ein 6-Achsen-Bewegungsverfolgungsgerät mit einem Gyroskop und einem Beschleunigungsmesser, wodurch es ideal für Bewegungssenganwendungen wie Robotik-, Drohnen- und IoT-Projekte ist. In diesem Leitfaden lernen Sie, wie Sie die MPU-6050 mit einem Himbeer-PI anschließen und verwenden, um Bewegungs- und Orientierungsdaten zu erfassen.


Was Sie brauchen werden

  1. Raspberry Pi (Jedes Modell mit GPIO -Unterstützung, z. B. PI 3, PI 4)
  2. MPU-6050 Modul
  3. Breadboard- und Jumper -Drähte
  4. Ein Computer mit SSH -Zugriff auf den Raspberry PI oder eine angeschlossene Tastatur und einen Monitor
  5. Python auf dem Raspberry Pi installiert

Schritt 1: Verkabelung des MPU-6050 mit dem Raspberry Pi

Der MPU-6050 kommuniziert mit dem Raspberry Pi mit dem I2C-Protokoll.

Verbindungen

MPU-6050 Pin Raspberry Pi Pin
VCC 3,3 V (Pin 1)
GND Masse (Pin 6)
SDA SDA (Pin 3, gpio2)
Scl SCL (Pin 5, gpio3)

Notiz: Stellen Sie sicher, dass das MPU-6050-Modul bei 3,3 V funktioniert. Die meisten Module enthalten einen Spannungsregler, mit dem sie mit 5 V angetrieben werden können.


Schritt 2: Aktivieren Sie die I2C -Schnittstelle am Raspberry Pi

  1. Öffnen Sie das Raspberry PI -Konfigurationstool:
    sudo raspi-config
    
  2. Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
  3. Starten Sie den Raspberry Pi neu:
    sudo reboot
    

Schritt 3: Installieren Sie die erforderlichen Tools und Bibliotheken

  1. Aktualisieren Sie Ihren Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installieren Sie die I2C -Tools:
    sudo apt install -y i2c-tools
    
  3. Installieren Sie Python -Bibliotheken für I2C -Kommunikations- und Datenverarbeitung:
    pip install smbus2
    

Schritt 4: Überprüfen Sie die Verbindung

  1. Verwenden i2cdetect Um zu überprüfen, ob der MPU-6050 im I2C-Bus erkannt wird:
    sudo i2cdetect -y 1
    
  2. Sie sollten die MPU-6050 an der Adresse sehen 0x68 (oder 0x69 Wenn der Ad0 -Pin hoch gezogen wird). Wenn nicht:
    • Überprüfen Sie Ihre Verkabelung.
    • Stellen Sie sicher, dass die MPU-6050 angetrieben wird.

Schritt 5: Daten aus der MPU-6050 lesen

Das folgende Python-Skript liest Accelerometer- und Gyroskop-Daten aus der MPU-6050.

Beispiel für Python -Code

import smbus2
import time

# MPU-6050 Registers and Address
MPU6050_ADDR = 0x68
PWR_MGMT_1 = 0x6B
ACCEL_XOUT_H = 0x3B
GYRO_XOUT_H = 0x43

# Initialize I2C bus
bus = smbus2.SMBus(1)

# Wake up the MPU-6050
bus.write_byte_data(MPU6050_ADDR, PWR_MGMT_1, 0)

def read_raw_data(addr):
    # Read two bytes of data from the given address
    high = bus.read_byte_data(MPU6050_ADDR, addr)
    low = bus.read_byte_data(MPU6050_ADDR, addr+1)
    value = (high << 8) | low
    # Convert to signed value
    if value > 32767:
        value -= 65536
    return value

try:
    while True:
        # Read accelerometer data
        accel_x = read_raw_data(ACCEL_XOUT_H)
        accel_y = read_raw_data(ACCEL_XOUT_H + 2)
        accel_z = read_raw_data(ACCEL_XOUT_H + 4)

        # Read gyroscope data
        gyro_x = read_raw_data(GYRO_XOUT_H)
        gyro_y = read_raw_data(GYRO_XOUT_H + 2)
        gyro_z = read_raw_data(GYRO_XOUT_H + 4)

        # Convert raw data to meaningful values (optional scaling may be needed)
        accel_x_scaled = accel_x / 16384.0
        accel_y_scaled = accel_y / 16384.0
        accel_z_scaled = accel_z / 16384.0

        gyro_x_scaled = gyro_x / 131.0
        gyro_y_scaled = gyro_y / 131.0
        gyro_z_scaled = gyro_z / 131.0

        print(f"Accelerometer: X={accel_x_scaled:.2f}, Y={accel_y_scaled:.2f}, Z={accel_z_scaled:.2f}")
        print(f"Gyroscope: X={gyro_x_scaled:.2f}, Y={gyro_y_scaled:.2f}, Z={gyro_z_scaled:.2f}")

        time.sleep(1)

except KeyboardInterrupt:
    print("Exiting...")

Schritt 6: Anwendungen der MPU-6050

  1. Bewegungsverfolgung: Verfolgen Sie die Bewegung und Orientierung in Robotik oder Wearables.
  2. Stabilisierungssysteme: Implementieren Sie die gyroskopische Stabilisierung für Drohnen oder Gimbale.
  3. Spiele: Erstellen Sie bewegungsbasierte Spielcontroller.
  4. IoT -Projekte: Verwenden Sie Bewegungsdaten, um Automatisierungsereignisse auszulösen.

Fehlerbehebung

  1. Gerät nicht erkannt:

    • Überprüfen Sie die SDA- und SCL -Verbindungen.
    • Stellen Sie sicher, dass die I2C -Schnittstelle am Raspberry Pi aktiviert ist.
    • Überprüfen Sie die Stromversorgung der MPU-6050.
  2. Ungenaue Lesungen:

    • Kalibrieren Sie den Sensor, indem Sie einen Offset für jede Achse implementieren.
    • Stellen Sie sicher, dass der Sensor auf eine stabile Oberfläche platziert wird.
  3. I2C -Fehler:

    • Stellen Sie sicher, dass im I2C -Bus keine widersprüchlichen Geräte vorhanden sind.

Abschluss

Der MPU-6050 ist ein vielseitiger Bewegungssensor, der Ihren Raspberry PI-Projekten präzise Bewegungsverfolgungsfunktionen hinzufügen kann. Wenn Sie diesem Handbuch folgen, können Sie die MPU-6050 für Anwendungen wie Robotik, Stabilisierungssysteme und IoT-Automatisierung einrichten und verwenden. Experimentieren Sie mit Skalierung und Filterung von Daten, um den Sensor für Ihre Bedürfnisse zu optimieren!

Hinterlasse einen Kommentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.