Käyttämällä MPU-6050: tä Raspberry Pi: n kanssa

Using the MPU-6050 with the Raspberry Pi

MPU-6050 on 6-akselisen liikkeen seurantalaite, jossa on gyroskooppi ja kiihtyvyysanturi, joten se on ihanteellinen liikkeen havaitseviin sovelluksiin, kuten robotti-, droneihin ja IoT-projekteihin. Tässä oppaassa opit yhdistämään ja käyttämään MPU-6050: tä Raspberry PI: llä liike- ja suuntatietojen sieppaamiseksi.


Mitä tarvitset

  1. Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
  2. MPU-6050-moduuli
  3. Leipälevy- ja hyppyjohdot
  4. Tietokone, jolla on SSH -pääsy Raspberry PI: hen tai kytketty näppäimistö ja näyttö
  5. Python asennettu Raspberry Pi

Vaihe 1: MPU-6050: n johdotus Raspberry Pi: hen

MPU-6050 kommunikoi Raspberry PI: n kanssa I2C-protokollan avulla.

Yhteydet

MPU-6050-nasta Raspberry Pi -tappi
VCC 3,3 V (nasta 1)
Hölynpöly Maa (nasta 6)
SDA SDA (PIN 3, GPIO2)
SCL SCL (nasta 5, GPIO3)

Huomaa: Varmista, että MPU-6050-moduuli toimii 3,3 V: n nopeudella. Useimmat moduulit sisältävät jännitesäätimen, jonka avulla ne voivat saada virtalähteen 5 V: llä.


Vaihe 2: Ota I2C -rajapinta käyttöön Raspberry Pi: ssä

  1. Avaa Raspberry Pi -määritystyökalu:
    sudo raspi-config
    
  2. Siirtyä jhk Käyttöliittymävaihtoehdot> I2C ja ota se käyttöön.
  3. Käynnistä Raspberry Pi uudelleen:
    sudo reboot
    

Vaihe 3: Asenna vaadittavat työkalut ja kirjastot

  1. Päivitä Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Asenna I2C -työkalut:
    sudo apt install -y i2c-tools
    
  3. Asenna Python -kirjastot I2C -viestintään ja tietojenkäsittelyyn:
    pip install smbus2
    

Vaihe 4: Varmista yhteys

  1. Käyttää i2cdetect MPU-6050: n varmistaminen havaitaan I2C-väylässä:
    sudo i2cdetect -y 1
    
  2. Sinun pitäisi nähdä MPU-6050 osoitteessa 0x68 (tai 0x69 Jos AD0 -nasta vedetään korkealle). Jos ei:
    • Tarkista johdotus.
    • Varmista, että MPU-6050 on virta.

Vaihe 5: MPU-6050: n tietojen lukeminen

Seuraava Python-komentosarja lukee MPU-6050: n kiihtyvyysmittarin ja gyroskooppien tiedot.

Python -koodiesimerkki

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

Vaihe 6: MPU-6050: n sovellukset

  1. Liikkeen seuranta: Seuraa liikettä ja suuntausta robotiikassa tai puettavissa.
  2. Vakautusjärjestelmät: Toteuta droonien tai gimbalien gyroskooppinen stabilointi.
  3. Peli: Luo liikepohjaisia ​​peliohjaimia.
  4. IoT -projektit: Käytä liiketietoa automaatiotapahtumien käynnistämiseen.

Vianetsintä

  1. Laitetta ei havaittu:

    • Varmista SDA- ja SCL -yhteydet.
    • Varmista, että I2C -käyttöliittymä on käytössä Raspberry PI: ssä.
    • Tarkista virtalähde MPU-6050: een.
  2. Epätarkkojen lukemat:

    • Kalibroi anturi toteuttamalla siirtymä jokaiselle akselille.
    • Varmista, että anturi asetetaan vakaalle pinnalle.
  3. I2C -virheet:

    • Varmista, että I2C -bussissa ei ole ristiriitaisia ​​laitteita.

Johtopäätös

MPU-6050 on monipuolinen liike-anturi, joka voi lisätä tarkkoja liikkeen seurantaominaisuuksia Raspberry Pi -projekteihisi. Seuraamalla tätä opasta voit määrittää ja käyttää MPU-6050: tä sovelluksiin, kuten robotiikka, stabilointijärjestelmät ja IoT-automaatio. Kokeile datan skaalaus- ja suodattamista anturin hienosäätöön tarpeitasi varten!

Jätä kommentti

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.