Ang MPU-6050 ay isang 6-axis motion tracking device na may gyroscope at accelerometer, kaya mainam ito para sa mga application na nangangailangan ng motion-sensing gaya ng robotics, drones, at mga proyekto sa IoT. Sa gabay na ito, matututuhan mo kung paano ikonekta at gamitin ang MPU-6050 sa isang Raspberry Pi upang kumuha ng data ng galaw at oryentasyon.
Mga Kakailanganin
- Raspberry Pi (anumang model na may suporta sa GPIO, hal. Pi 3, Pi 4)
- MPU-6050 Module
- Breadboard at Jumper Wires
- Isang computer na may SSH access sa Raspberry Pi o nakakonektang keyboard at monitor
- Python na naka-install sa Raspberry Pi
Hakbang 1: Pag-wire ng MPU-6050 sa Raspberry Pi
Ang MPU-6050 ay nakikipag-ugnayan sa Raspberry Pi gamit ang I2C protocol.
Mga Koneksyon
| MPU-6050 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Ground (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
Paalala: Siguraduhin na ang MPU-6050 module ay gumagana sa 3.3V. Karamihan sa mga module ay may kasamang voltage regulator, kaya maaari silang paandarin gamit ang 5V.
Hakbang 2: I-enable ang I2C Interface sa Raspberry Pi
- Buksan ang configuration tool ng Raspberry Pi:
sudo raspi-config - Pumunta sa Interface Options > I2C at i-enable ito.
- I-reboot ang Raspberry Pi:
sudo reboot
Hakbang 3: I-install ang mga Kinakailangang Tool at Library
- I-update ang iyong Raspberry Pi:
sudo apt update && sudo apt upgrade -y - I-install ang mga I2C tool:
sudo apt install -y i2c-tools - I-install ang mga Python library para sa I2C communication at data processing:
pip install smbus2
Hakbang 4: I-verify ang Koneksyon
- Gamitin ang
i2cdetectupang i-verify kung nade-detect ang MPU-6050 sa I2C bus:sudo i2cdetect -y 1 - Dapat mong makita ang MPU-6050 sa address na
0x68(o0x69kung ang AD0 pin ay naka-pull high). Kung hindi:- Suriin ang iyong mga wiring.
- Siguraduhin na may kuryente ang MPU-6050.
Hakbang 5: Pagbabasa ng Data mula sa MPU-6050
Ang sumusunod na Python script ay nagbabasa ng data ng accelerometer at gyroscope mula sa MPU-6050.
Halimbawa ng Python Code
import smbus2
import time
# MPU-6050 Registers at Address
MPU6050_ADDR = 0x68
PWR_MGMT_1 = 0x6B
ACCEL_XOUT_H = 0x3B
GYRO_XOUT_H = 0x43
# I-initialize ang I2C bus
bus = smbus2.SMBus(1)
# Gisingin ang MPU-6050
bus.write_byte_data(MPU6050_ADDR, PWR_MGMT_1, 0)
def read_raw_data(addr):
# Magbasa ng dalawang byte ng data mula sa ibinigay na address
high = bus.read_byte_data(MPU6050_ADDR, addr)
low = bus.read_byte_data(MPU6050_ADDR, addr+1)
value = (high << 8) | low
# I-convert sa signed value
if value > 32767:
value -= 65536
return value
try:
while True:
# Magbasa ng data ng accelerometer
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)
# Magbasa ng data ng gyroscope
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)
# I-convert ang raw data sa makabuluhang values (maaaring kailanganin ang optional scaling)
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...")
Hakbang 6: Mga Application ng MPU-6050
- Motion Tracking: Subaybayan ang galaw at oryentasyon sa robotics o mga naisusuot na device (wearables).
- Stabilization Systems: Magpatupad ng gyroscopic stabilization para sa mga drone o gimbal.
- Gaming: Gumawa ng mga game controller na nakabase sa galaw.
- IoT Projects: Gamitin ang motion data para mag-trigger ng mga automation event.
Troubleshooting
-
Hindi Nade-detect ang Device:
- Suriin ang mga koneksyon ng SDA at SCL.
- Siguraduhin na naka-enable ang I2C interface sa Raspberry Pi.
- Suriin ang power supply sa MPU-6050.
-
Hindi Tumpak na Readings:
- I-calibrate ang sensor sa pamamagitan ng paglalagay ng offset para sa bawat axis.
- Siguraduhin na ang sensor ay nakalagay sa isang matatag na ibabaw.
-
Mga I2C Error:
- Siguraduhin na walang mga sumasalungat na device sa I2C bus.
Konklusyon
Ang MPU-6050 ay isang versatile na motion sensor na kayang magdagdag ng tumpak na kakayahan sa motion tracking sa iyong mga proyekto sa Raspberry Pi. Sa pagsunod sa gabay na ito, maaari mong i-set up at gamitin ang MPU-6050 para sa mga application gaya ng robotics, stabilization systems, at IoT automation. Mag-eksperimento sa scaling at pag-filter ng data para i-fine-tune ang sensor ayon sa iyong mga pangangailangan!




