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
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- MPU-6050-moduuli
- Leipälevy- ja hyppyjohdot
- Tietokone, jolla on SSH -pääsy Raspberry PI: hen tai kytketty näppäimistö ja näyttö
- 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ä
- Avaa Raspberry Pi -määritystyökalu:
sudo raspi-config
- Siirtyä jhk Käyttöliittymävaihtoehdot> I2C ja ota se käyttöön.
- Käynnistä Raspberry Pi uudelleen:
sudo reboot
Vaihe 3: Asenna vaadittavat työkalut ja kirjastot
- Päivitä Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Asenna I2C -työkalut:
sudo apt install -y i2c-tools
- Asenna Python -kirjastot I2C -viestintään ja tietojenkäsittelyyn:
pip install smbus2
Vaihe 4: Varmista yhteys
- Käyttää
i2cdetect
MPU-6050: n varmistaminen havaitaan I2C-väylässä:sudo i2cdetect -y 1
- Sinun pitäisi nähdä MPU-6050 osoitteessa
0x68
(tai0x69
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
- Liikkeen seuranta: Seuraa liikettä ja suuntausta robotiikassa tai puettavissa.
- Vakautusjärjestelmät: Toteuta droonien tai gimbalien gyroskooppinen stabilointi.
- Peli: Luo liikepohjaisia peliohjaimia.
- IoT -projektit: Käytä liiketietoa automaatiotapahtumien käynnistämiseen.
Vianetsintä
-
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.
-
Epätarkkojen lukemat:
- Kalibroi anturi toteuttamalla siirtymä jokaiselle akselille.
- Varmista, että anturi asetetaan vakaalle pinnalle.
-
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!