Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Raspberry Pi - Gyroskop

V predchádzajúcej lekcii, Raspberry Pi - Pripojenie kamery , sme si k Raspberry Pi pripojili kameru.

V tejto lekcii Raspberry Pri tutoriále si k Raspberry pripojíme gyroskop. Napíšeme si k nemu jednoduchý kód, ktorý bude vypisovať polohu gyroskopu a vysvetlíme si, ako gyroskop vlastne funguje.

Schéma zapojenia bola vytvorená pomocou Fritzing.

Potrebné súčiastky

Na úspešné zapojenie budeme potrebovať:

  • Raspberry Pi,
  • gyroskop mpu-6050,
  • najlepšie nepájivé pole a niekoľko drôtov, prípadne iba drôty.
Čo je gyroskop, akcelerometer a ako fungujú?

MEMS (mikroelektro­mechanické systémy) sú systémy s mikro rozmermi, v ktorých sú súčiastky integrované na jednom čipe. Medzi tieto súčiastky patrí práve napríklad akcelerometer a gyroskop. Akcelerometer je zariadenie, ktoré sa používa na detekciu negravitačného pohybu. Gyroskopický senzor je naopak zariadenie na detekciu pohybu gravitačného. Tieto dva senzory sa teda navzájom dopĺňajú. Náš trojosý gyroskop obsahuje ako funkcie gyroskopu pomocou čipu MPU6050v, tak aj funkcie akcelerometra.

Gyroskop

Gyroskopický senzor pracuje na základe uhlovej rýchlosti a hybnosti. V snímači je rotor (disk), ktorý je nastavený tak, aby sa mohol otáčať. Os, v ktorej sa otáča, sa nazýva gimbal. V senzoroch gyroskopu sú dva závesy. Jeden gimbal je naukladaný na druhom. Vďaka tomu má rotor voľnosť otáčania do všetkých troch osí x,y a z.

Akcelerometer

Akcelerometer pracuje pomocou elektromechanického senzora, ktorý je navrhnutý na meranie statického alebo dynamického zrýchlenia. Sila vyvolaná vibráciou alebo zmenou pohybu (zrýchlením) spôsobí, že hmota vo vnútri akcelerometra stlačí špeciálny materiál, ktorý vytvorí elektrický náboj. Ten je úmerný pôsobiacej sile. A pretože hmotnosť súčiastky je konštantná, náboj je potom tiež úmerný zrýchleniu. To je princíp, ktorým akcelerometer meria zrýchlenie. Rovnako ako gyroskop meria akcelerometer v troch osiach x,y z. Gyroskop teda meria rotáciu telesa, zatiaľ čo akcelerometer jeho priamy pohyb.

Zapojenie gyroskopu

Pri zapojení gyroskopu je veľmi dôležité poznať zbernicu i2c. Pre detailný popis sa môžeme pozrieť na túto lekciu.

Povolenie I2C

Prvá vec, ktorú musíme urobiť v Raspberry Pi, je povoliť použitie i2c. V defaultnom nastavení je jej použitie zakázané. Do terminálu nášho Raspberry Pi napíšeme tento príkaz:

sudo raspi-config

Ukáže sa nám okno, ktoré je možné ovládať šípkami na klávesnici a klávesom enter. Vyberieme interfacing options -> I2C. Nastavenie sa nás spýta, tu chceme povoliť I2C. Potvrdíme a Raspberry Pi potom reštartujeme.

Než budeme pokračovať, skontrolujeme si ešte, na akej adrese nám náš gyroskop beží. To docielime príkazom:

i2cdetect -y 1

Príkaz je jednoduchý – i2cdetect je program, ktorý skenuje zbernice i2c. Parameter -y preskakuje čakanie na súhlas používateľa. Číslo 1 je potom označenie pre číslo zbernice, ktorú má program scanovať.

Program väčšinou vypíše jedno číslo, ktoré reprezentuje adresu zbernice pinu i2c. S naším zapojením by to malo byť číslo 68. Zapisuje sa ako 0x68:

Raspberry Pi

Zapojenie

Zapojenie gyroskopu je jednoduché. Jediné, čo nás na ňom zaujíma, sú porty SLA,SLC,VCC a GND. GND zapojíme na Raspberry Pi do GND a VCC do 5V. SDA potom pripojíme k GPIO portu 2 (SDA port) a SCL pripojíme k GPIO portu 3 (SCL port). Keď potom Raspberry Pi spustíme, mala by nám na gyroskope svietiť červená dióda:

Raspberry Pi

Programová časť

Náš program bude vypisovať dáta dáta získané z gyroskopu. Ako už vieme, gyroskop nám dáva dáta ohľadom jeho otáčania v troch osiach.

Inštalácia knižníc

K práci s kódom budeme potrebovať knižnicu smbus, ktorá zariaďuje správnu funkciu i2c pinov. Nainštalujeme ju pomocou príkazu:

sudo apt install python3-smbus

Ďalšou nutnou knižnicou bude mpu6050. Táto knižnica umožňuje ovládanie nášho gyroskopu s čipom mpu6050:

pip install mpu6050-raspberrypi

Program na detekciu osí

Kód pre obsluhu gyroskopu potom bude vyzerať takto:

from mpu6050 import mpu6050
import time
mpu = mpu6050(0X68)
while True:
    gyroskop_data = mpu.get_gyro_data()
    print("Gyroskop X : "+str(gyroskop_data['x']))
        print("Gyroskop Y : "+str(gyroskop_data['y']))
        print("Gyroskop Z : "+str(gyroskop_data['z']))
    print("-------------")
        time.sleep(1)

V prvých dvoch riadkoch si naimportujeme dve knižnice. Budú to knižnica mpu6050, ktorú sme si pred chvíľou nainštalovali, a nám už známa knižnica time. Na treťom riadku si uložíme do premene mpu adresu, na ktorej i2c počúva náš gyroskop. Tú sme už predtým identifikovali ako 0x68. Ďalej si vytvoríme nekonečnú slučku while. To preto, že dáta z gyroskopu chceme načítať a vypisovať nepretržite. Výpis by sa bez slučky logicky vykonal iba raz a potom by sa náš program ukončil. Vnútri slučky si potom dáta, ktoré nám gyroskop posiela, uložíme do premene gyroskop_data. Príkaz mpu.get_gyro_data používa premenu mpu s adresou gyroskopu. Z nej si potom berie všetky informácie, ktoré gyroskop posiela. Potom si pomocou príkazu print vypíšeme údaje z jednotlivých osí. Do príkazu print vložíme nami požadovaný text, napr. "gyroskop os X:". Pomocou + potom pripojíme hodnotu zodpovedajúcu osi z premennej gyroskop_data, ktorú prevedieme na text. Zo všetkých dát, ktoré gyroskop posiela, týmto vyfiltrujeme iba tie údaje, ktoré chceme vidieť. Nakoniec si nastavíme príkaz time.sleep na jednu sekundu, aby bol medzi jednotlivými výpismi nejaký časový interval.

Premena gyroskop_data ukladá dáta ako list. Preto môžeme vyššie použitým spôsobom jednoducho oddeliť časti dát a vypísať ich zvlášť.

Vo výpise potom vidíme, ako sa pri pohybe gyroskopu menia jednotlivé hodnoty pri každej z troch súradníc:

Raspberry Pi

Verím, že sa vám pripojenie a nakódovanie gyroskopu podarilo. Svoje postrehy a prípadné otázky môžete zanechať v diskusii pod článkom 🙂

V ďalšej lekcii, Raspberry Pi - Zavlažovač rastlín , si k Raspberry Pi pripojíme vodné čerpadlo, senzor vlhkosti pôdy a reproduktor.


 

Predchádzajúci článok
Raspberry Pi - Pripojenie kamery
Všetky články v sekcii
Raspberry Pi
Preskočiť článok
(neodporúčame)
Raspberry Pi - Zavlažovač rastlín
Článok pre vás napísal Aleš Hlavín
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Raspberry
Aktivity