Turinys:

Judesio stebėjimas naudojant MPU-6000 ir Raspberry Pi: 4 žingsniai
Judesio stebėjimas naudojant MPU-6000 ir Raspberry Pi: 4 žingsniai

Video: Judesio stebėjimas naudojant MPU-6000 ir Raspberry Pi: 4 žingsniai

Video: Judesio stebėjimas naudojant MPU-6000 ir Raspberry Pi: 4 žingsniai
Video: 4 patarimai kaip sumažinti netikrų suveikimų skaičių naudojant judesio jutiklius / EP73 2024, Lapkritis
Anonim
Image
Image

MPU-6000 yra 6 ašių judesio sekimo jutiklis, turintis 3 ašių akselerometrą ir 3 ašių giroskopą. Šis jutiklis gali efektyviai sekti tikslią objekto padėtį ir vietą trimatėje plokštumoje. Jis gali būti naudojamas sistemose, kurioms reikia aukščiausio tikslumo padėties analizės.

Šioje pamokoje buvo parodyta MPU-6000 jutiklio modulio sąsaja su aviečių pi. Norėdami perskaityti pagreičio ir sukimosi kampo vertes, mes naudojome aviečių pi su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimai prijungti prie jutiklio modulio.

1 veiksmas: reikalinga aparatūra:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. MPU-6000

2. Raspberry Pi

3. I2C kabelis

4. I2C skydas avietėms pi

5. Ethernet kabelis

2 veiksmas: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyriuje iš esmės paaiškinamos reikalingos laidų jungtys tarp jutiklio ir aviečių pi. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

MPU-6000 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.

Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

3 veiksmas: judesio stebėjimo kodas:

Judesio sekimo kodas
Judesio sekimo kodas

„Raspberry pi“naudojimo pranašumas yra tas, kad programavimo kalba, kuria norite programuoti plokštę, yra lanksti, kad būtų galima su ja susieti jutiklį. Pasinaudoję šiuo šios plokštės pranašumu, mes čia demonstruojame jos programavimą python'e. „Python“yra viena iš paprasčiausių programavimo kalbų, turinti lengviausią sintaksę. MPU-6000 python kodą galima atsisiųsti iš mūsų „GitHub“bendruomenės, kuri yra „Dcube Store“

Be vartotojų patogumo, mes taip pat paaiškiname kodą čia:

Pirmasis kodavimo žingsnis yra „Python“atveju atsisiųsti „SMBus“biblioteką, nes ši biblioteka palaiko kode naudojamas funkcijas. Taigi, norėdami atsisiųsti biblioteką, galite apsilankyti šioje nuorodoje:

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

Taip pat galite nukopijuoti darbo kodą iš čia:

importuoti smbus

importo laikas

# Gaukite I2C magistralę = smbus. SMBus (1)

# MPU-6000 adresas, 0x68 (104)

# Pasirinkite giroskopo konfigūracijos registrą, 0x1B (27)

# 0x18 (24) Visas diapazonas = 2000 dps

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

# MPU-6000 adresas, 0x68 (104)

# Pasirinkite akselerometro konfigūracijos registrą, 0x1C (28)

# 0x18 (24) Visas diapazonas = +/- 16 g

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

# MPU-6000 adresas, 0x68 (104)

# Pasirinkite energijos valdymo registrą1, 0x6B (107)

# 0x01 (01) PLL su „xGyro“nuoroda

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

laikas miegoti (0,8)

# MPU-6000 adresas, 0x68 (104)

# Perskaitykite duomenis iš 0x3B (59), 6 baitų

Akselerometras X ašis MSB, X ašis LSB, Y ašis MSB, Y ašis LSB, Z ašis MSB, Z ašis LSB

duomenys = autobusas.read_i2c_block_data (0x68, 0x3B, 6)

# Konvertuokite duomenis

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

jei xAccl> 32767:

xAccl -= 65536

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

jei yAccl> 32767:

yAccl -= 65536

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

jei zAccl> 32767:

zAccl -= 65536

# MPU-6000 adresas, 0x68 (104)

# Perskaitykite duomenis iš 0x43 (67), 6 baitų

# Girometras X ašis MSB, X ašis LSB, Y ašis MSB, Y ašis LSB, Z ašis MSB, Z ašis LSB

duomenys = autobusas.read_i2c_block_data (0x68, 0x43, 6)

# Konvertuokite duomenis

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

jei xGyro> 32767:

xGyro -= 65536

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

jei yGyro> 32767:

yGyro -= 65536

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

jei zGyro> 32767:

zGyro -= 65536

# Išveskite duomenis į ekraną

spausdinti "pagreitis X ašyje: %d" %xAccl

spausdinti "pagreitis Y ašyje: %d" %yAccl

spauda "Pagreitis Z ašyje: %d" %zAccl

spausdinti „X sukimosi ašis: %d“%xGyro

spausdinti „Y sukimosi ašis: %d“%yGyro

spausdinti „Z sukimosi ašis: %d“%zGyro

Kodas vykdomas naudojant šią komandą:

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

Jutiklio išvestis yra parodyta aukščiau esančiame paveikslėlyje vartotojo naudai.

4 žingsnis: programos:

Programos
Programos

MPU-6000 yra judesio sekimo jutiklis, kuris yra pritaikytas išmaniųjų telefonų ir planšetinių kompiuterių judesio sąsajoje. Išmaniuosiuose telefonuose šie jutikliai gali būti naudojami tokiose programose, kaip programų gesto komandos ir telefono valdymas, patobulinti žaidimai, papildyta realybė, panoraminės nuotraukų fiksavimas ir peržiūra, pėsčiųjų ir transporto priemonių navigacija. „MotionTracking“technologija gali paversti telefonus ir planšetinius kompiuterius į galingus 3D išmaniuosius įrenginius, kurie gali būti naudojami įvairiose programose-nuo sveikatos ir tinkamumo stebėjimo iki vietos nustatymo paslaugų.

Rekomenduojamas: