Tartalomjegyzék:

Mozgáskövetés MPU-6000 és Raspberry Pi használatával: 4 lépés
Mozgáskövetés MPU-6000 és Raspberry Pi használatával: 4 lépés

Videó: Mozgáskövetés MPU-6000 és Raspberry Pi használatával: 4 lépés

Videó: Mozgáskövetés MPU-6000 és Raspberry Pi használatával: 4 lépés
Videó: mozgáskövetés 2024, November
Anonim
Image
Image

Az MPU-6000 egy 6 tengelyes mozgáskövető érzékelő, amelybe 3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp van beépítve. Ez az érzékelő képes hatékonyan követni az objektum pontos helyzetét és elhelyezkedését a 3 dimenziós síkban. Alkalmazható olyan rendszerekben, amelyek a legnagyobb pontosságú helyzetelemzést igényelnek.

Ebben az oktatóanyagban szemléltetjük az MPU-6000 érzékelő modul és a málna pi illesztését. A gyorsulás és a forgási szög értékeinek leolvasásához málna pi -t használtunk I2c adapterrel. Ez az I2C adapter megkönnyíti és megbízhatóbbá teszi a kapcsolatot az érzékelőmodullal.

1. lépés: Szükséges hardver:

Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver

A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:

1. MPU-6000

2. Málna Pi

3. I2C kábel

4. I2C Shield málna pi

5. Ethernet kábel

2. lépés: Hardver csatlakoztatása:

Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása

A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és a málna pi között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:

Az MPU-6000 az I2C-n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.

A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus.

Csak négy vezetékre van szüksége! Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.

Ezeket az összefüggéseket a fenti képek mutatják be.

3. lépés: A mozgáskövetés kódja:

A mozgáskövetés kódja
A mozgáskövetés kódja

A málna pi használatának előnye az, hogy rugalmasságot biztosít a programozási nyelvben, amelyen a táblát programozni szeretné, hogy az érzékelőt hozzá lehessen illeszteni. A tábla ezen előnyét kihasználva bemutatjuk a programozását a pythonban. A Python az egyik legegyszerűbb programozási nyelv, a legegyszerűbb szintaxissal. Az MPU-6000 python kódja letölthető a GitHub közösségünkből, azaz a Dcube Store-ból

A felhasználók kényelme érdekében itt is elmagyarázzuk a kódot:

A kódolás első lépéseként le kell töltenie az SMBus könyvtárat python esetén, mert ez a könyvtár támogatja a kódban használt funkciókat. Tehát a könyvtár letöltéséhez látogasson el az alábbi linkre:

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

Innen is átmásolhatja a működőkódot:

import smbus

importálási idő

# I2C busz beszerzése = smbus. SMBus (1)

# MPU-6000 cím, 0x68 (104)

# Válassza ki a giroszkóp konfigurációs regiszterét, 0x1B (27)

# 0x18 (24) Teljes skálatartomány = 2000 dps

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

# MPU-6000 cím, 0x68 (104)

# Válassza ki a gyorsulásmérő konfigurációs regiszterét, 0x1C (28)

# 0x18 (24) Teljes skálatartomány = +/- 16g

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

# MPU-6000 cím, 0x68 (104)

# Válassza ki az energiagazdálkodási nyilvántartást1, 0x6B (107)

# 0x01 (01) PLL xGyro hivatkozással

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

time.sleep (0.8)

# MPU-6000 cím, 0x68 (104)

# Adatok visszaolvasása 0x3B (59), 6 bájtból

# Gyorsulásmérő X-tengely MSB, X-tengely LSB, Y-tengely MSB, Y-tengely LSB, Z-tengely MSB, Z-tengely LSB

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

# Konvertálja az adatokat

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

ha xAccl> 32767:

xAccl -= 65536

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

ha yAccl> 32767:

yAccl -= 65536

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

ha zAccl> 32767:

zAccl -= 65536

# MPU-6000 cím, 0x68 (104)

# Adatok visszaolvasása 0x43 (67), 6 bájtból

# Girométer X-tengely MSB, X-tengely LSB, Y-tengely MSB, Y-tengely LSB, Z-tengely MSB, Z-tengely LSB

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

# Konvertálja az adatokat

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

ha xGyro> 32767:

xGyro -= 65536

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

ha yGyro> 32767:

yGyro -= 65536

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

ha zGyro> 32767:

zGyro -= 65536

# Adatok megjelenítése a képernyőn

print "Gyorsulás az X-tengelyben: %d" %xAccl

print "Gyorsulás Y tengelyen: %d" %yAccl

print "Gyorsulás Z-tengelyben: %d" %zAccl

print "X forgástengely: %d" %xGyro

print "Y forgástengely: %d" %yGyro

print "Z forgástengely: %d" %zGyro

A kód végrehajtása a következő paranccsal történik:

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

Az érzékelő kimenete a fenti képen látható a felhasználó számára.

4. lépés: Alkalmazások:

Alkalmazások
Alkalmazások

Az MPU-6000 egy mozgáskövető érzékelő, amely az okostelefonok és táblagépek mozgásfelületén találja meg alkalmazását. Az okostelefonokban ezek az érzékelők olyan alkalmazásokban használhatók, mint az alkalmazások gesztusparancsai és a telefonvezérlés, a továbbfejlesztett játék, a kibővített valóság, a panorámás fényképek rögzítése és megtekintése, valamint a gyalogosok és a járművek navigálása. A MotionTracking technológia a készülékeket és a táblagépeket erőteljes 3D intelligens eszközökké alakíthatja, amelyek felhasználhatók az egészségtől és a fitnesz felügyeletétől a helyalapú szolgáltatásokig.

Ajánlott: