A MPU-6050 egy 6 tengelyes mozgáskövető eszköz giroszkóppal és gyorsulásmérővel, így ideális az olyan mozgásérzékelős alkalmazásokhoz, mint a robotika, a drónok és az IoT-projektek. Ebben az útmutatóban megtudhatja, hogyan csatlakoztassa és használja a MPU-6050 egy Raspberry Pi-vel a mozgás- és orientációs adatok rögzítéséhez.
Amire szükséged lesz
- Raspberry Pi
- MPU-6050 modul
- Próbapanel és összekötő vezetékek
- Egy számítógép, amellyel SSH-n keresztül hozzáférhet a Raspberry Pi-hez, vagy egy csatlakoztatott billentyűzet és monitor
- A Raspberry Pi-re telepített Python
1. lépés: A huzalozás MPU-6050 a Raspberry Pi-hez
A MPU-6050 I2C protokollon keresztül kommunikál a Raspberry Pi-vel.
Kapcsolatok
| MPU-6050 Pin | Raspberry Pi tűs csatlakozó sáv (Pin) |
|---|---|
| VCC | 3,3 V (1. tű) |
| GND | Földelés (6. érintkező) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (5. tű, GPIO3) |
Megjegyzés: Gondoskodjon arról, hogy a MPU-6050 modul 3,3 V-on működik. A legtöbb modul tartalmaz feszültségszabályozót, így 5 V-ról is táplálhatók.
2. lépés: Az I2C interfész engedélyezése a Raspberry Pi-n
- Nyissa meg a Raspberry Pi konfigurációs eszközt:
sudo raspi-config - Navigáljon ide: Interfész beállítások > I2C
- A Raspberry Pi újraindítása:
sudo reboot
3. lépés: A szükséges eszközök és könyvtárak telepítése
-
sudo apt update && sudo apt upgrade -y - Telepítse az I2C eszközöket:
sudo apt install -y i2c-tools - Telepítse a Python könyvtárakat az I2C kommunikációhoz és az adatfeldolgozáshoz:
pip install smbus2
4. lépés: A kapcsolat ellenőrzése
- Használat
i2cdetecthogy ellenőrizze a MPU-6050 észlelhető az I2C buszon:sudo i2cdetect -y 1 - Látnia kell a MPU-6050 a(z) címen
0x680x69if az AD0 pin magas szintre van húzva). Ha nem:- Ellenőrizze a vezetékezést.
- Gondoskodjon arról, hogy a MPU-6050 bekapcsolt állapotban van.
5. lépés: Adatok beolvasása a(z) MPU-6050
A következő Python-szkript beolvassa a gyorsulásmérő és a giroszkóp adatait a MPU-6050.
Python kódpélda
python
import smbus2
import time
# MPU-6050 python
Regiszterek és címek
MPU6050_ADDR = 0x68
PWR_MGMT_1 = 0x6B
ACCEL_XOUT_H = 0x3B
GYRO_XOUT_H = 0x43
# I2C busz inicializálása
bus = smbus2.SMBus(1)
# Ébresztés a MPU-6050
python
bus.write_byte_data(MPU6050_ADDR, PWR_MGMT_1, 0)
def read_raw_data(addr):
# Két bájtnyi adat beolvasása a megadott címről
high = bus.read_byte_data(MPU6050_ADDR, addr)
low = bus.read_byte_data(MPU6050_ADDR, addr+1)
value = (high << 8) | low
# Átalakítás előjeles értékké
if value > 32767:
value -= 65536
return value
try:
while True:
# Gyorsulásmérő adatainak beolvasása
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)
# Giroszkóp adatainak beolvasása
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)
# Nyers adatok átalakítása értelmezhető értékekké (opcionálisan skálázás szükséges lehet)
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"Gyorsulásmérő: X={accel_x_scaled:.2f}, Y={accel_y_scaled:.2f}, Z={accel_z_scaled:.2f}")
print(f"Giroszkóp: X={gyro_x_scaled:.2f}, Y={gyro_y_scaled:.2f}, Z={gyro_z_scaled:.2f}")
time.sleep(1)
except KeyboardInterrupt:
print("Kilépés...")
6. lépés: Alkalmazásai a MPU-6050
- Mozgáskövetés: Kövesse nyomon a mozgást és az orientációt a robotikában vagy a hordható eszközökben.
- Stabilization Systems: Valósítson meg giroszkópos stabilizálást drónokhoz vagy gimbalokhoz.
- Gaming: Készíts mozgásérzékelős játékvezérlőket.
- IoT projektek: Használjon mozgásadatokat az automatizálási események indításához.
Hibaelhárítás
-
Eszköz nem észlelhető:
- Ellenőrizze az SDA és SCL csatlakozásokat.
- Győződjön meg arról, hogy az I2C interfész engedélyezve van a Raspberry Pi-n.
- Ellenőrizze a tápellátást a MPU-6050.
-
Pontatlan mérések:
- Kalibrálja a szenzort az egyes tengelyekhez tartozó eltolás (offset) beállításával.
- Gondoskodjon róla, hogy a szenzor stabil felületre legyen helyezve.
-
I2C hibák:
- Győződjön meg arról, hogy nincsenek ütköző eszközök az I2C buszon.
Összegzés
A MPU-6050 MPU-6050 robotikai alkalmazásokhoz, stabilizáló rendszerekhez és IoT-automatizáláshoz. Kísérletezzen az adatok skálázásával és szűrésével, hogy a szenzort pontosan az Ön igényeire szabja!




