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
- Raspberry Pi (Jedes Modell mit GPIO -Unterstützung, z. B. PI 3, PI 4)
- MPU-6050 Modul
- Breadboard- und Jumper -Drähte
- Ein Computer mit SSH -Zugriff auf den Raspberry PI oder eine angeschlossene Tastatur und einen Monitor
- 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
- Öffnen Sie das Raspberry PI -Konfigurationstool:
sudo raspi-config
- Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
- Starten Sie den Raspberry Pi neu:
sudo reboot
Schritt 3: Installieren Sie die erforderlichen Tools und Bibliotheken
- Aktualisieren Sie Ihren Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installieren Sie die I2C -Tools:
sudo apt install -y i2c-tools
- Installieren Sie Python -Bibliotheken für I2C -Kommunikations- und Datenverarbeitung:
pip install smbus2
Schritt 4: Überprüfen Sie die Verbindung
- Verwenden i2cdetectUm zu überprüfen, ob der MPU-6050 im I2C-Bus erkannt wird:sudo i2cdetect -y 1
- Sie sollten die MPU-6050 an der Adresse sehen 0x68(oder0x69Wenn 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
- Bewegungsverfolgung: Verfolgen Sie die Bewegung und Orientierung in Robotik oder Wearables.
- Stabilisierungssysteme: Implementieren Sie die gyroskopische Stabilisierung für Drohnen oder Gimbale.
- Spiele: Erstellen Sie bewegungsbasierte Spielcontroller.
- IoT -Projekte: Verwenden Sie Bewegungsdaten, um Automatisierungsereignisse auszulösen.
Fehlerbehebung
- 
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.
 
- 
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.
 
- 
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!
 
            
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  