Satura rādītājs:

Kustību izsekošana, izmantojot MPU-6000 un Raspberry Pi: 4 soļi
Kustību izsekošana, izmantojot MPU-6000 un Raspberry Pi: 4 soļi

Video: Kustību izsekošana, izmantojot MPU-6000 un Raspberry Pi: 4 soļi

Video: Kustību izsekošana, izmantojot MPU-6000 un Raspberry Pi: 4 soļi
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Novembris
Anonim
Image
Image

MPU-6000 ir 6 asu kustības izsekošanas sensors, kurā ir iestrādāts 3 asu akselerometrs un 3 asu žiroskops. Šis sensors spēj efektīvi izsekot precīzu objekta atrašanās vietu un atrašanās vietu trīsdimensiju plaknē. To var izmantot sistēmās, kurām nepieciešama visaugstākā precizitāte.

Šajā apmācībā ir parādīta MPU-6000 sensora moduļa saskarne ar aveņu pi. Lai nolasītu paātrinājuma un griešanās leņķa vērtības, mēs esam izmantojuši aveņu pi ar I2c adapteri. Šis I2C adapteris padara savienojumu ar sensora moduli vieglu un uzticamāku.

1. darbība. Nepieciešamā aparatūra:

Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra

Materiāli, kas nepieciešami mūsu mērķa sasniegšanai, ietver šādas aparatūras sastāvdaļas:

1. MPU-6000

2. Aveņu Pi

3. I2C kabelis

4. I2C vairogs aveņu pi

5. Ethernet kabelis

2. darbība. Aparatūras savienošana:

Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums

Aparatūras savienošanas sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un aveņu pi. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:

MPU-6000 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni.

Izņemot komplektu, tāfele ir konfigurēta I2C saskarnei, tāpēc mēs iesakām izmantot šo savienojumu, ja esat citādi agnostiķis.

Viss, kas Jums nepieciešams, ir četri vadi! Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli.

Šie savienojumi ir parādīti iepriekš redzamajos attēlos.

3. darbība. Kustības izsekošanas kods:

Kustības izsekošanas kods
Kustības izsekošanas kods

Aveņu pi izmantošanas priekšrocība ir tā, ka nodrošina elastību programmēšanas valodā, kurā vēlaties programmēt tāfeli, lai ar to savienotu sensoru. Izmantojot šīs plates priekšrocības, mēs šeit demonstrējam tās programmēšanu pitonā. Python ir viena no vienkāršākajām programmēšanas valodām ar vienkāršāko sintaksi. MPU-6000 python kodu var lejupielādēt no mūsu GitHub kopienas, kas ir Dcube Store

Kā arī lietotāju ērtībai mēs šeit izskaidrojam kodu:

Kā pirmais kodēšanas solis, jums ir nepieciešams lejupielādēt SMBus bibliotēku python gadījumā, jo šī bibliotēka atbalsta kodā izmantotās funkcijas. Tātad, lai lejupielādētu bibliotēku, varat apmeklēt šo saiti:

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

Darba kodu varat nokopēt arī šeit:

importēt smbus

importa laiks

# Iegūstiet I2C kopni = smbus. SMBus (1)

# MPU-6000 adrese, 0x68 (104)

# Izvēlieties žiroskopa konfigurācijas reģistru, 0x1B (27)

# 0x18 (24) Pilns skalas diapazons = 2000 dps

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

# MPU-6000 adrese, 0x68 (104)

# Izvēlieties akselerometra konfigurācijas reģistru, 0x1C (28)

# 0x18 (24) Pilns skalas diapazons = +/- 16g

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

# MPU-6000 adrese, 0x68 (104)

# Atlasiet enerģijas pārvaldības reģistru1, 0x6B (107)

# 0x01 (01) PLL ar xGyro atsauci

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

miega laiks (0,8)

# MPU-6000 adrese, 0x68 (104)

# Lasīt datus no 0x3B (59), 6 baiti

# Akselerometrs X ass MSB, X ass LSB, Y ass MSB, Y ass LSB, Z ass MSB, Z ass LSB

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

# Konvertējiet datus

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

ja xAccl> 32767:

xAccl -= 65536

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

ja yAccl> 32767:

yAccl -= 65536

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

ja zAccl> 32767:

zAccl -= 65536

# MPU-6000 adrese, 0x68 (104)

# Lasīt datus no 0x43 (67), 6 baiti

# Girometrs X ass MSB, X ass LSB, Y ass MSB, Y ass LSB, Z ass MSB, Z ass LSB

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

# Konvertējiet datus

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

ja xGyro> 32767:

xGyro -= 65536

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

ja yGyro> 32767:

yGyro -= 65536

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

ja zGyro> 32767:

zGyro -= 65536

# Izvadiet datus ekrānā

drukāt "Paātrinājums X-asī: %d" %xAccl

drukāt "Paātrinājums Y-asī: %d" %yAccl

drukāt "Paātrinājums Z-asī: %d" %zAccl

izdrukāt "Rotācijas X ass: %d" %xGyro

izdrukāt "Y rotācijas ass: %d" %yGyro

izdrukāt "Z rotācijas ass: %d" %zGyro

Kods tiek izpildīts, izmantojot šādu komandu:

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

Sensora izeja ir parādīta iepriekšējā attēlā lietotāja atsaucei.

4. darbība. Lietojumprogrammas:

Lietojumprogrammas
Lietojumprogrammas

MPU-6000 ir kustības izsekošanas sensors, kas tiek izmantots viedtālruņu un planšetdatoru kustības saskarnē. Viedtālruņos šos sensorus var izmantot tādās lietojumprogrammās kā žestu komandas lietojumprogrammām un tālruņa vadība, uzlabotas spēles, paplašinātā realitāte, panorāmas fotoattēlu uzņemšana un apskate, kā arī gājēju un transportlīdzekļu navigācija. MotionTracking tehnoloģija var pārvērst tālruņus un planšetdatorus par jaudīgām 3D viedām ierīcēm, kuras var izmantot lietojumprogrammās, sākot no veselības un fiziskās sagatavotības uzraudzības līdz pakalpojumiem, kas balstīti uz atrašanās vietu.

Ieteicams: