Sisukord:

Liikumise jälgimine MPU-6000 ja Raspberry Pi abil: 4 sammu
Liikumise jälgimine MPU-6000 ja Raspberry Pi abil: 4 sammu

Video: Liikumise jälgimine MPU-6000 ja Raspberry Pi abil: 4 sammu

Video: Liikumise jälgimine MPU-6000 ja Raspberry Pi abil: 4 sammu
Video: Liikumise jälgimine - (motion tracking) Adobe After Effects 2024, November
Anonim
Image
Image

MPU-6000 on 6-teljeline liikumisjälgimisandur, millesse on integreeritud 3-teljeline kiirendusmõõtur ja 3-teljeline güroskoop. See andur on võimeline tõhusalt jälgima objekti täpset asukohta ja asukohta kolmemõõtmelisel tasapinnal. Seda saab kasutada süsteemides, mis nõuavad võimalikult täpset positsioonianalüüsi.

Selles õpetuses on illustreeritud MPU-6000 andurimooduli liidestamist vaarika pi-ga. Kiirenduse ja pöördenurga väärtuste lugemiseks oleme kasutanud vaarika pi koos I2c adapteriga. See I2C adapter muudab ühenduse andurimooduliga lihtsaks ja usaldusväärsemaks.

Samm: vajalik riistvara:

Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara

Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:

1. MPU-6000

2. Vaarika Pi

3. I2C kaabel

4. I2C Shield vaarika pi jaoks

5. Etherneti kaabel

2. samm: riistvara ühendamine:

Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine

Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja vaarika pi vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:

MPU-6000 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.

Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik.

Kõik, mida vajate, on neli juhtmest! Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.

Neid seoseid on näidatud ülaltoodud piltidel.

3. samm: liikumise jälgimise kood:

Liikumise jälgimise kood
Liikumise jälgimise kood

Vaarika pi kasutamise eeliseks on see, et saate paindlikult programmeerida keelt, milles soovite plaati programmeerida, et andurit sellega liidestada. Kasutades selle plaadi eeliseid, demonstreerime siin selle programmeerimist pythonis. Python on üks lihtsamaid programmeerimiskeeli, millel on lihtsaim süntaks. MPU-6000 püütoni koodi saab alla laadida meie GitHubi kogukonnast, mis on Dcube Store

Lisaks kasutajate mugavusele selgitame koodi ka siin:

Kodeerimise esimese sammuna peate pythoni korral alla laadima SMBusi teegi, kuna see teek toetab koodis kasutatavaid funktsioone. Niisiis, teegi allalaadimiseks võite külastada järgmist linki:

pypi.python.org/pypi/smbus-cffi/0.5.1

Töökoodi saate kopeerida ka siit:

import smbus

impordi aeg

# Hankige I2C siinus = smbus. SMBus (1)

# MPU-6000 aadress, 0x68 (104)

# Valige güroskoobi konfiguratsiooniregister, 0x1B (27)

# 0x18 (24) Täielik skaala vahemik = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# MPU-6000 aadress, 0x68 (104)

# Valige kiirendusmõõturi konfiguratsiooniregister, 0x1C (28)

# 0x18 (24) Kogu skaala vahemik = +/- 16 g

bus.write_byte_data (0x68, 0x1C, 0x18)

# MPU-6000 aadress, 0x68 (104)

# Valige toitehaldusregister1, 0x6B (107)

# 0x01 (01) PLL koos xGyro viitega

bus.write_byte_data (0x68, 0x6B, 0x01)

uneaeg (0,8)

# MPU-6000 aadress, 0x68 (104)

# Lugege andmeid tagasi 0x3B (59), 6 baiti

# Kiirendusmõõtur X-telg MSB, X-telg LSB, Y-telg MSB, Y-telg LSB, Z-telg MSB, Z-telg LSB

andmed = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Teisendage andmed

xAccl = andmed [0] * 256 + andmed [1]

kui xAccl> 32767:

xAccl -= 65536

yAccl = andmed [2] * 256 + andmed [3]

kui yAccl> 32767:

yAccl -= 65536

zAccl = andmed [4] * 256 + andmed [5]

kui zAccl> 32767:

zAccl -= 65536

# MPU-6000 aadress, 0x68 (104)

# Lugege andmeid tagasi 0x43 (67), 6 baiti

# Güromeeter X-telg MSB, X-telg LSB, Y-telg MSB, Y-telg LSB, Z-telg MSB, Z-telg LSB

andmed = bus.read_i2c_block_data (0x68, 0x43, 6)

# Teisendage andmed

xGyro = andmed [0] * 256 + andmed [1]

kui xGyro> 32767:

xGyro -= 65536

yGyro = andmed [2] * 256 + andmed [3]

kui yGyro> 32767:

yGyro -= 65536

zGyro = andmed [4] * 256 + andmed [5]

kui zGyro> 32767:

zGyro -= 65536

# Väljastage andmed ekraanile

print "Kiirendus X-teljel: %d" %xAccl

print "Kiirendus Y-teljel: %d" %yAccl

print "Z-telje kiirendus: %d" %zAccl

print "X-pöörlemistelg: %d" %xGyro

print "Y-pöörlemistelg: %d" %yGyro

print "Z-pöörlemistelg: %d" %zGyro

Kood käivitatakse järgmise käsu abil:

$> python MPU-6000.py gt; python MPU-6000.py

Anduri väljund on näidatud ülaltoodud pildil kasutaja jaoks.

4. samm: rakendused:

Rakendused
Rakendused

MPU-6000 on liikumise jälgimise andur, mis leiab rakenduse nutitelefonide ja tahvelarvutite liikumisliideses. Nutitelefonides saab neid andureid kasutada sellistes rakendustes nagu rakenduste liigutamise käsud ja telefoni juhtimine, täiustatud mängud, liitreaalsus, panoraamfotode jäädvustamine ja vaatamine ning jalakäijate ja sõidukite navigeerimine. MotionTracking tehnoloogia võib muuta telefonid ja tahvelarvutid võimsateks 3D-intelligentseteks seadmeteks, mida saab kasutada rakendustes, alates tervise- ja treeningseirest kuni asukohapõhiste teenusteni.

Soovitan: