Az MPU-6050 használatával a Raspberry PI-vel

Using the MPU-6050 with the Raspberry Pi

Az MPU-6050 egy 6 tengelyes mozgáskövető eszköz, giroszkóppal és gyorsulásmérővel, ideálisvá téve a mozgásérzékelő alkalmazásokhoz, például a robotika, a drónok és az IoT projektekhez. Ebben az útmutatóban megtanulja, hogyan lehet csatlakoztatni és használni az MPU-6050-et egy Raspberry PI-vel a mozgási és orientációs adatok rögzítéséhez.


Mire lesz szüksége

  1. Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
  2. MPU-6050 modul
  3. Kenyérlemez és jumper vezetékek
  4. Egy SSH -hozzáféréssel rendelkező számítógép a Raspberry Pi -hez vagy a csatlakoztatott billentyűzethez és a monitorhoz
  5. Python telepítve a Raspberry Pi -re

1. lépés: Az MPU-6050 vezetékesítése a Raspberry PI-hez

Az MPU-6050 az I2C protokoll segítségével kommunikál a Raspberry Pi-vel.

Kapcsolatok

MPU-6050 PIN Málna pi tű
VCC 3.3 V (1. érintkező)
GND Föld (6. érintkező)
SDA SDA (3. érintkező, GPIO2)
SCL SCL (5. érintkező, GPIO3)

Jegyzet: Győződjön meg arról, hogy az MPU-6050 modul 3,3 V-on működik. A legtöbb modul egy feszültségszabályozóval rendelkezik, amely lehetővé teszi számukra az 5 V -os táplálékot.


2. lépés: Engedélyezze az I2C felületet a Raspberry PI -n

  1. Nyissa meg a Raspberry PI konfigurációs eszközt:
    sudo raspi-config
    
  2. Navigál Interfész opciók> i2c és engedélyezze.
  3. Indítsa újra a Raspberry Pi -t:
    sudo reboot
    

3. lépés: Telepítse a szükséges eszközöket és könyvtárakat

  1. Frissítse a Raspberry Pi -t:
    sudo apt update && sudo apt upgrade -y
    
  2. Telepítse az I2C eszközöket:
    sudo apt install -y i2c-tools
    
  3. Telepítse a Python könyvtárakat az I2C kommunikációhoz és adatfeldolgozáshoz:
    pip install smbus2
    

4. lépés: Ellenőrizze a kapcsolatot

  1. Használat i2cdetect Az MPU-6050-et az I2C buszon észlelték:
    sudo i2cdetect -y 1
    
  2. Látnia kell az MPU-6050 címet 0x68 (vagy 0x69 Ha az AD0 tűt magasra húzza). Ha nem:
    • Ellenőrizze a vezetékeket.
    • Győződjön meg arról, hogy az MPU-6050 táplálkozik.

5. lépés: Adatok olvasása az MPU-6050-ből

A következő Python szkript az MPU-6050 gyorsulásmérő és giroszkóp adatait olvassa el.

Python kód példa

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...")

6. lépés: Az MPU-6050 alkalmazásai

  1. Mozgáskövetés: A robotikában vagy a hordható anyagban a mozgás és a tájolás nyomon követése.
  2. Stabilizáló rendszerek: Végezze el a giroszkópos stabilizációt a drónok vagy a gimbalok számára.
  3. Szerencsejáték: Hozzon létre mozgás-alapú játékvezérlőket.
  4. IoT projektek: Használja a mozgási adatokat az automatizálási események kiváltásához.

Hibaelhárítás

  1. Az eszközt nem észlelték:

    • Ellenőrizze az SDA és az SCL kapcsolatokat.
    • Győződjön meg arról, hogy az I2C interfész engedélyezve van -e a Raspberry PI -n.
    • Ellenőrizze az MPU-6050 tápegységét.
  2. Pontatlan leolvasások:

    • Kalibrálja az érzékelőt az egyes tengelyek eltolásának megvalósításával.
    • Győződjön meg arról, hogy az érzékelő stabil felületre van helyezve.
  3. I2C hibák:

    • Győződjön meg arról, hogy az I2C buszon nincsenek ellentmondásos eszközök.

Következtetés

Az MPU-6050 egy sokoldalú mozgásérzékelő, amely pontos mozgáskövetési képességeket adhat a Raspberry PI projektekhez. Az útmutató követésével beállíthatja és használhatja az MPU-6050 alkalmazást olyan alkalmazásokhoz, mint a robotika, a stabilizáló rendszerek és az IoT automatizálás. Kísérletezzen az adatok méretezésével és szűrésével, hogy az érzékelőt finomítsa az Ön igényeihez!

Hagyj egy megjegyzést

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.