Kazalo:

Sledenje gibanju z uporabo MPU-6000 in Raspberry Pi: 4 koraki
Sledenje gibanju z uporabo MPU-6000 in Raspberry Pi: 4 koraki

Video: Sledenje gibanju z uporabo MPU-6000 in Raspberry Pi: 4 koraki

Video: Sledenje gibanju z uporabo MPU-6000 in Raspberry Pi: 4 koraki
Video: Основные приемы пикапа. Быстрое соблазнение. Способы внушения. Анна Богинская 2024, Julij
Anonim
Image
Image

MPU-6000 je 6-osni senzor za sledenje gibanju, ki ima vgrajen 3-osni merilnik pospeška in 3-osni žiroskop. Ta senzor lahko učinkovito sledi natančnemu položaju in lokaciji predmeta v tridimenzionalni ravnini. Uporablja se lahko v sistemih, ki zahtevajo natančno analizo položaja.

V tej vadnici je prikazano povezovanje senzorskega modula MPU-6000 z malino pi. Za branje vrednosti pospeška in kota vrtenja smo uporabili malino pi z adapterjem I2c, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.

1. korak: Potrebna strojna oprema:

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:

1. MPU-6000

2. Malina Pi

3. Kabel I2C

4. I2C ščit za malinovo pi

5. Ethernetni kabel

2. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in malinovim pi. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:

MPU-6000 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.

Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.

Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.

Te povezave so prikazane na zgornjih slikah.

3. korak: Koda za sledenje gibanju:

Koda za sledenje gibanju
Koda za sledenje gibanju

Prednost uporabe maline pi je, da vam omogoča prilagodljivost programskega jezika, v katerem želite programirati ploščo, da povežete senzor z njo. Če izkoristimo to prednost te plošče, tukaj dokazujemo njeno programiranje v pythonu. Python je eden najlažjih programskih jezikov z najlažjo sintakso. Kodo python za MPU-6000 lahko prenesete iz naše skupnosti GitHub, to je Dcube Store

Poleg lažjega uporabnika kodo razlagamo tudi tukaj:

Kot prvi korak kodiranja morate v primeru pythona prenesti knjižnico SMBus, ker ta knjižnica podpira funkcije, ki se uporabljajo v kodi. Če želite prenesti knjižnico, obiščite naslednjo povezavo:

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

Delovno kodo lahko kopirate tudi od tu:

uvoz smbus

čas uvoza

# Pridobite vodilo I2C = smbus. SMBus (1)

# Naslov MPU-6000, 0x68 (104)

# Izberite konfiguracijski register žiroskopa, 0x1B (27)

# 0x18 (24) Celotno območje obsega = 2000 dps

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

# Naslov MPU-6000, 0x68 (104)

# Izberite konfiguracijski register merilnika pospeška, 0x1C (28)

# 0x18 (24) Celotno območje lestvice = +/- 16g

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

# Naslov MPU-6000, 0x68 (104)

# Izberite register za upravljanje porabe energije1, 0x6B (107)

# 0x01 (01) PLL z referenco xGyro

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

time.sleep (0,8)

# Naslov MPU-6000, 0x68 (104)

# Preberite podatke nazaj iz 0x3B (59), 6 bajtov

# Merilnik pospeška X-osi MSB, X-osi LSB, Y-osi MSB, Y-osi LSB, Z-osi MSB, Z-osi LSB

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

# Pretvorite podatke

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

če je xAccl> 32767:

xAccl -= 65536

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

če je yAccl> 32767:

yAccl -= 65536

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

če je zAccl> 32767:

zAccl -= 65536

# Naslov MPU-6000, 0x68 (104)

# Preberite podatke nazaj od 0x43 (67), 6 bajtov

# Girometer X-osi MSB, X-osi LSB, Y-osi MSB, Y-osi LSB, Z-osi MSB, Z-osi LSB

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

# Pretvorite podatke

xGiro = podatki [0] * 256 + podatki [1]

če je xGyro> 32767:

xžiroskop = 65536

yGiro = podatki [2] * 256 + podatki [3]

če je yGyro> 32767:

yGiro -= 65536

zGiro = podatki [4] * 256 + podatki [5]

če je zGyro> 32767:

zGiro -= 65536

# Iznesite podatke na zaslon

natisni "Pospešek v osi X: %d" %xAccl

natisni "Pospešek v osi Y: %d" %yAccl

natisni "Pospešek v osi Z: %d" %zAccl

natisnite "X-os vrtenja: %d" %xGiroskop

natisnite "Y-os vrtenja: %d" %yGiro

natisnite "Z-os vrtenja: %d" %zGiro

Koda se izvede z naslednjim ukazom:

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

Izhod senzorja je prikazan na zgornji sliki za referenco uporabnika.

4. korak: Aplikacije:

Aplikacije
Aplikacije

MPU-6000 je senzor za sledenje gibanju, ki najde svojo uporabo v vmesniku gibanja pametnih telefonov in tabličnih računalnikov. V pametnih telefonih se ti senzorji lahko uporabljajo v aplikacijah, kot so ukazi s kretnjami za aplikacije in nadzor telefona, izboljšano igranje iger, razširjena resničnost, panoramsko zajemanje in ogled fotografij ter navigacija za pešce in vozila. Tehnologija MotionTracking lahko pretvori mobilne telefone in tablične računalnike v zmogljive 3D-inteligentne naprave, ki jih je mogoče uporabiti v aplikacijah, od spremljanja zdravja in telesne pripravljenosti do storitev, ki temeljijo na lokaciji.

Priporočena: