De MPU-6050 is een 6-assig motion tracking-apparaat met een gyroscoop en versnellingsmeter, waardoor het ideaal is voor motion-sensing-toepassingen zoals robotica, drones en IoT-projecten. In deze handleiding leert u hoe u de MPU-6050 kunt verbinding maken en gebruiken met een Raspberry Pi om bewegings- en oriëntatiegegevens vast te leggen.
Wat u nodig hebt
- Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
 - MPU-6050 module
 - Breadboard en jumper draden
 - Een computer met SSH -toegang tot de Raspberry Pi of een aangesloten toetsenbord en monitor
 - Python geïnstalleerd op de Raspberry Pi
 
Stap 1: De MPU-6050 bedraden naar de Raspberry Pi
De MPU-6050 communiceert met de Raspberry Pi met behulp van het I2C-protocol.
Verbindingen
| MPU-6050 pin | Raspberry Pi Pin | 
|---|---|
| VCC | 3.3V (pin 1) | 
| GND | Grond (pin 6) | 
| SDA | SDA (Pin 3, GPIO2) | 
| SCL | SCL (Pin 5, GPIO3) | 
Opmerking: Zorg ervoor dat de MPU-6050-module werkt op 3,3 V. De meeste modules omvatten een spanningsregelaar, waardoor ze kunnen worden aangedreven met 5V.
Stap 2: Schakel de I2C -interface in op de Raspberry Pi
- Open de Raspberry Pi -configuratie -tool:
sudo raspi-config - Navigeren naar Interface -opties> I2C en schakel het in.
 - Start de Raspberry Pi opnieuw op:
sudo reboot 
Stap 3: Installeer de vereiste tools en bibliotheken
- Update uw Raspberry Pi:
sudo apt update && sudo apt upgrade -y - Installeer de I2C -tools:
sudo apt install -y i2c-tools - Installeer Python -bibliotheken voor I2C -communicatie en gegevensverwerking:
pip install smbus2 
Stap 4: Controleer de verbinding
- Gebruik 
i2cdetectOm te verifiëren wordt de MPU-6050 gedetecteerd op de I2C-bus:sudo i2cdetect -y 1 - U zou de MPU-6050 op adres moeten zien 
0x68(of0x69Als de AD0 -pin hoog wordt getrokken). Zo niet:- Controleer uw bedrading.
 - Zorg ervoor dat de MPU-6050 wordt aangedreven.
 
 
Stap 5: Gegevens lezen van de MPU-6050
Het volgende Python-script leest versnellingsmeter en gyroscoopgegevens van de MPU-6050.
Python Code Voorbeeld
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...")
Stap 6: Toepassingen van de MPU-6050
- Motion tracking: Volg beweging en oriëntatie in robotica of wearables.
 - Stabilisatiesystemen: Implementeer gyroscopische stabilisatie voor drones of gimbalen.
 - Gamen: Maak op beweging gebaseerde gamecontrollers.
 - IoT -projecten: Gebruik bewegingsgegevens om automatiseringsgebeurtenissen te activeren.
 
Problemen oplossen
- 
Apparaat niet gedetecteerd:
- Controleer SDA- en SCL -verbindingen.
 - Zorg ervoor dat de I2C -interface is ingeschakeld op de Raspberry Pi.
 - Controleer de voeding naar de MPU-6050.
 
 - 
Onnauwkeurige metingen:
- Kalibreer de sensor door een offset voor elke as te implementeren.
 - Zorg ervoor dat de sensor op een stabiel oppervlak wordt geplaatst.
 
 - 
I2C -fouten:
- Zorg ervoor dat er geen tegenstrijdige apparaten op de I2C -bus staan.
 
 
Conclusie
De MPU-6050 is een veelzijdige bewegingssensor die precieze motion trackingmogelijkheden kan toevoegen aan uw Raspberry PI-projecten. Door deze gids te volgen, kunt u de MPU-6050 instellen en gebruiken voor toepassingen zoals robotica, stabilisatiesystemen en IoT-automatisering. Experimenteer met het schalen en filteren van gegevens om de sensor voor uw behoeften te verfijnen!
            
      
      
      
      