MPU-6050 är en 6-axlig rörelsespårningsanordning med ett gyroskop och accelerometer, vilket gör det idealiskt för rörelseavkännande applikationer som robotik, drönare och IoT-projekt. I den här guiden kommer du att lära dig att ansluta och använda MPU-6050 med en Raspberry Pi för att fånga rörelse- och orienteringsdata.
Vad du behöver
- Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
- MPU-6050-modul
- Breadboard och jumpertrådar
- En dator med SSH -åtkomst till Raspberry Pi eller ett anslutet tangentbord och monitor
- Python installerad på Raspberry Pi
Steg 1: Koppling av MPU-6050 till Raspberry Pi
MPU-6050 kommunicerar med Raspberry PI med I2C-protokollet.
Anslutningar
| MPU-6050-stift | Hallon pi | 
|---|---|
| Vcc | 3.3V (stift 1) | 
| Gard | Mark (stift 6) | 
| SDA | SDA (stift 3, GPIO2) | 
| SCL | SCL (stift 5, GPIO3) | 
Notera: Se till att MPU-6050-modulen fungerar vid 3,3V. De flesta moduler inkluderar en spänningsregulator, vilket gör att de kan drivas med 5V.
Steg 2: Aktivera I2C -gränssnittet på Raspberry Pi
- Öppna Raspberry PI -konfigurationsverktyget:
sudo raspi-config
- Navigera till Gränssnittsalternativ> i2c och aktivera det.
- Starta om Raspberry Pi:
sudo reboot
Steg 3: Installera nödvändiga verktyg och bibliotek
- Uppdatera din Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installera I2C -verktygen:
sudo apt install -y i2c-tools
- Installera pythonbibliotek för I2C -kommunikation och databehandling:
pip install smbus2
Steg 4: Verifiera anslutningen
- Använda i2cdetectFör att verifiera MPU-6050 upptäcks på i2C-bussen:sudo i2cdetect -y 1
- Du bör se MPU-6050 på adressen 0x68(eller0x69Om AD0 -stiftet dras högt). Om inte:- Kontrollera dina ledningar.
- Se till att MPU-6050 drivs.
 
Steg 5: Läsa data från MPU-6050
Följande Python-skript läser accelerometer och gyroskopdata från MPU-6050.
Python -kodexempel
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...")
Steg 6: Tillämpningar av MPU-6050
- Rörelsespårning: Spåra rörelse och orientering i robotik eller bärbara.
- Stabiliseringssystem: Implementera gyroskopisk stabilisering för drönare eller gimbaler.
- Spel: Skapa rörelsebaserade spelkontroller.
- IoT -projekt: Använd rörelsedata för att utlösa automatiseringshändelser.
Felsökning
- 
Enheten inte upptäckt: - Verifiera SDA- och SCL -anslutningar.
- Se till att I2C -gränssnittet är aktiverat på Raspberry Pi.
- Kontrollera strömförsörjningen till MPU-6050.
 
- 
Felaktiga avläsningar: - Kalibrera sensorn genom att implementera en offset för varje axel.
- Se till att sensorn placeras på en stabil yta.
 
- 
I2C -fel: - Se till att det inte finns några motstridiga enheter på I2C -bussen.
 
Slutsats
MPU-6050 är en mångsidig rörelsessensor som kan lägga till exakta rörelsespårningsfunktioner till dina Raspberry PI-projekt. Genom att följa den här guiden kan du ställa in och använda MPU-6050 för applikationer som robotik, stabiliseringssystem och IoT-automatisering. Experimentera med skalning och filtrering av data för att finjustera sensorn för dina behov!
 
            
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  