Gamit ang MPU-6050 kasama ang Raspberry Pi

Using the MPU-6050 with the Raspberry Pi

Ang MPU-6050 ay isang aparato na pagsubaybay sa paggalaw ng paggalaw na may gyroscope at accelerometer, na ginagawang perpekto para sa mga application na gumagalaw tulad ng mga robotics, drone, at mga proyekto ng IoT. Sa gabay na ito, malalaman mo kung paano kumonekta at gamitin ang MPU-6050 na may isang Raspberry Pi upang makuha ang data ng paggalaw at orientation.


Ano ang kakailanganin mo

  1. Raspberry Pi (Anumang modelo na may suporta sa GPIO, hal., PI 3, PI 4)
  2. MPU-6050 module
  3. Mga wire ng tinapay at jumper
  4. Isang computer na may pag -access sa SSH sa Raspberry Pi o isang konektadong keyboard at monitor
  5. Naka -install ang Python sa Raspberry Pi

Hakbang 1: Ang mga kable ng MPU-6050 sa Raspberry Pi

Ang MPU-6050 ay nakikipag-usap 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)

Tandaan: Tiyakin na ang module ng MPU-6050 ay nagpapatakbo sa 3.3V. Karamihan sa mga module ay nagsasama ng isang boltahe regulator, na nagpapahintulot sa kanila na pinapagana ng 5V.


Hakbang 2: Paganahin ang I2C Interface sa Raspberry Pi

  1. Buksan ang tool ng pagsasaayos ng Raspberry Pi:
    sudo raspi-config
    
  2. Mag -navigate sa Mga pagpipilian sa interface> i2c at paganahin ito.
  3. I -reboot ang Raspberry Pi:
    sudo reboot
    

Hakbang 3: I -install ang mga kinakailangang tool at aklatan

  1. I -update ang iyong Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. I -install ang mga tool ng I2C:
    sudo apt install -y i2c-tools
    
  3. I -install ang mga aklatan ng python para sa pagproseso ng komunikasyon at data:
    pip install smbus2
    

Hakbang 4: Patunayan ang koneksyon

  1. Gumamit i2cdetect Upang mapatunayan ang MPU-6050 ay napansin sa bus ng I2C:
    sudo i2cdetect -y 1
    
  2. Dapat mong makita ang MPU-6050 sa address 0x68 (o 0x69 Kung ang AD0 pin ay hinila ng mataas). Kung hindi:
    • Suriin ang iyong mga kable.
    • Tiyakin na ang MPU-6050 ay pinapagana.

Hakbang 5: Ang pagbabasa ng data mula sa MPU-6050

Ang sumusunod na script ng Python ay nagbabasa ng accelerometer at data ng gyroscope mula sa MPU-6050.

Halimbawa ng Python Code

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

Hakbang 6: Mga Aplikasyon ng MPU-6050

  1. Pagsubaybay sa paggalaw: Subaybayan ang paggalaw at oryentasyon sa mga robotics o mga suot.
  2. Mga Sistema ng Pag -stabilize: Ipatupad ang gyroscopic stabilization para sa mga drone o gimbals.
  3. Gaming: Lumikha ng mga controller na batay sa paggalaw.
  4. IoT Proyekto: Gumamit ng data ng paggalaw upang mag -trigger ng mga kaganapan sa automation.

Pag -aayos

  1. Hindi nakita ang aparato:

    • Patunayan ang mga koneksyon sa SDA at SCL.
    • Tiyakin na ang interface ng I2C ay pinagana sa Raspberry Pi.
    • Suriin ang power supply sa MPU-6050.
  2. Hindi tumpak na pagbabasa:

    • I -calibrate ang sensor sa pamamagitan ng pagpapatupad ng isang offset para sa bawat axis.
    • Tiyakin na ang sensor ay nakalagay sa isang matatag na ibabaw.
  3. Mga error sa I2C:

    • Tiyakin na walang magkasalungat na aparato sa bus ng I2C.

Konklusyon

Ang MPU-6050 ay isang maraming nalalaman na sensor ng paggalaw na maaaring magdagdag ng tumpak na mga kakayahan sa pagsubaybay sa paggalaw sa iyong mga proyekto ng Raspberry Pi. Sa pamamagitan ng pagsunod sa gabay na ito, maaari kang mag-set up at gumamit ng MPU-6050 para sa mga aplikasyon tulad ng mga robotics, mga sistema ng pag-stabilize, at automation ng IoT. Eksperimento sa scaling at pag-filter ng data upang maayos ang sensor para sa iyong mga pangangailangan!

Mag -iwan ng komento

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.