Sisällysluettelo:

Liikkeen seuranta MPU-6000: n ja Raspberry Pi: n avulla: 4 vaihetta
Liikkeen seuranta MPU-6000: n ja Raspberry Pi: n avulla: 4 vaihetta

Video: Liikkeen seuranta MPU-6000: n ja Raspberry Pi: n avulla: 4 vaihetta

Video: Liikkeen seuranta MPU-6000: n ja Raspberry Pi: n avulla: 4 vaihetta
Video: Digital Motion Processing test on MPU 2024, Joulukuu
Anonim
Image
Image

MPU-6000 on 6-akselinen liikkeenseuranta-anturi, johon on upotettu 3-akselinen kiihtyvyysanturi ja 3-akselinen gyroskooppi. Tämä anturi pystyy tehokkaasti seuraamaan kohteen tarkan sijainnin ja sijainnin kolmiulotteisessa tasossa. Sitä voidaan käyttää järjestelmissä, jotka edellyttävät sijainnin analysointia mahdollisimman tarkasti.

Tässä opetusohjelmassa on kuvattu MPU-6000-anturimoduulin liitäntä vadelmapi: n kanssa. Kiihtyvyys- ja kiertokulman arvojen lukemiseen olemme käyttäneet vadelma pi: tä I2c -sovittimen kanssa. Tämä I2C -sovitin tekee liitännän anturimoduuliin helppoa ja luotettavaa.

Vaihe 1: Tarvittava laitteisto:

Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto

Tavoitteemme saavuttamiseen tarvittavat materiaalit sisältävät seuraavat laitteistokomponentit:

1. MPU-6000

2. Vadelma Pi

3. I2C -kaapeli

4. I2C Shield vadelmalle pi

5. Ethernet -kaapeli

Vaihe 2: Laitteiston kytkentä:

Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä

Laitteiston liitäntäosa selittää periaatteessa anturin ja vadelmapi: n väliset tarvittavat johdotusliitännät. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:

MPU-6000 toimii I2C: n kautta. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.

Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko.

Tarvitset vain neljä johtoa! Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.

Nämä yhteydet on esitetty yllä olevissa kuvissa.

Vaihe 3: Liikkeentunnistuksen koodi:

Liikkeentunnistuksen koodi
Liikkeentunnistuksen koodi

Raspberry pi: n käytön etuna on, että se tarjoaa joustavuuden ohjelmointikielelle, jolla haluat ohjelmoida levyn, jotta liitäntä anturiin sen kanssa. Hyödynnämme tämän levyn etua ja esittelemme sen ohjelmointia pythonissa. Python on yksi helpoimmista ohjelmointikielistä, jolla on helpoin syntaksi. MPU-6000: n python-koodin voi ladata GitHub-yhteisöltämme, joka on Dcube Store

Käyttäjien helpottamiseksi selitämme koodin myös täällä:

Koodauksen ensimmäisenä vaiheena sinun on ladattava SMBus -kirjasto python -tapauksessa, koska tämä kirjasto tukee koodissa käytettyjä toimintoja. Joten voit ladata kirjaston seuraavasta linkistä:

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

Voit myös kopioida toimivan koodin täältä:

tuoda smbus

tuonnin aika

# Hanki I2C -väylä = smbus. SMBus (1)

# MPU-6000-osoite, 0x68 (104)

# Valitse gyroskoopin määritysrekisteri, 0x1B (27)

# 0x18 (24) Koko skaala -alue = 2000 dps

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

# MPU-6000-osoite, 0x68 (104)

# Valitse kiihtyvyysmittarin määritysrekisteri, 0x1C (28)

# 0x18 (24) Koko asteikon alue = +/- 16 g

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

# MPU-6000-osoite, 0x68 (104)

# Valitse virranhallintarekisteri1, 0x6B (107)

# 0x01 (01) PLL xGyro -viitteellä

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

aika. unta (0,8)

# MPU-6000-osoite, 0x68 (104)

# Lue tiedot takaisin 0x3B (59), 6 tavua

# Kiihtyvyysmittari X-akseli MSB, X-akseli LSB, Y-akseli MSB, Y-akseli LSB, Z-akseli MSB, Z-akseli LSB

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

# Muunna tiedot

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

jos xAccl> 32767:

xAccl -= 65536

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

jos yAccl> 32767:

yAccl -= 65536

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

jos zAccl> 32767:

zAccl -= 65536

# MPU-6000-osoite, 0x68 (104)

# Lue tiedot takaisin 0x43 (67), 6 tavua

# Gyrometri X-akseli MSB, X-akseli LSB, Y-akseli MSB, Y-akseli LSB, Z-akseli MSB, Z-akseli LSB

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

# Muunna tiedot

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

jos xGyro> 32767:

xGyro -= 65536

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

jos yGyro> 32767:

yGyro -= 65536

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

jos zGyro> 32767:

zGyro -= 65536

# Tulosta tiedot näytölle

tulosta "Kiihtyvyys X-akselilla: %d" %xAccl

tulosta "Kiihtyvyys Y-akselilla: %d" %yAccl

tulosta "Kiihtyvyys Z-akselilla: %d" %zAccl

tulosta "X-pyörimisakseli: %d" %xGyro

tulosta "Y-kiertoakseli: %d" %yGyro

tulosta "Z-pyörimisakseli: %d" %zGyro

Koodi suoritetaan käyttämällä seuraavaa komentoa:

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

Anturin lähtö näkyy yllä olevassa kuvassa käyttäjän viitteenä.

Vaihe 4: Sovellukset:

Sovellukset
Sovellukset

MPU-6000 on liikkeenseuranta-anturi, joka löytää sovelluksensa älypuhelimien ja tablettien liikerajapinnassa. Älypuhelimissa näitä antureita voidaan käyttää sovelluksissa, kuten sovellusten elekomennot ja puhelimen ohjaus, parannettu pelaaminen, lisätty todellisuus, panoraamakuvien sieppaus ja katselu sekä jalankulkijoiden ja ajoneuvojen navigointi. MotionTracking-tekniikka voi muuttaa puhelimet ja tabletit tehokkaiksi 3D-älylaitteiksi, joita voidaan käyttää sovelluksissa terveydestä ja kuntotarkkailusta sijaintiin perustuviin palveluihin.

Suositeltava: