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í.

Lekce 17 - Raspberry Pi - Gyroskop

V předchozí lekci, Raspberry Pi - Připojení kamery, jsme si k Raspberry Pi připojili kameru.

V této lekci Raspberry Pi tutoriálu si k Raspberry připojíme gyroskop. Napíšeme si k němu jednoduchý kód, který bude vypisovat polohu gyroskopu a vysvětlíme si, jak gyroskop vlastně funguje.

Schéma zapojení bylo vytvořené pomocí Fritzing.

Potřebné součástky

K úspěšnému zapojení budeme potřebovat:

  • Raspberry Pi,
  • gyroskop mpu-6050,
  • nejlépe nepájivé pole a několik drátů, případně pouze dráty.

Co je gyroskop, akcelerometr a jak fungují?

MEMS (mikroelektro­mechanické systémy) jsou systémy s mikro rozměry, ve kterých jsou součástky integrovány na jednom čipu. Mezi tyto součástky patří právě například akcelerometr a gyroskop. Akcelerometr je zařízení, které se používá k detekci negravitačního pohybu. Gyroskopický senzor je naopak zařízení k detekci pohybu gravitačního. Tyto dva senzory se tedy navzájem doplňují. Náš tříosý gyroskop obsahuje jak funkce gyroskopu pomocí čipu MPU6050v, tak i funkce akcelerometru.

Gyroskop

Gyroskopický senzor pracuje na základě úhlové rychlosti a hybnosti. Ve snímači je rotor (disk), který je nastaven tak, aby se mohl otáčet. Osa, ve které se otáčí, se nazývá gimbal. V senzorech gyroskopu jsou dva závěsy. Jeden gimbal je naskládaný na druhém. Díky tomu má rotor volnost otáčení do všech tří os x,y a z.

Akcelerometr

Akcelerometr pracuje pomocí elektromechanického senzoru, který je navržen k měření statického nebo dynamického zrychlení. Síla vyvolaná vibrací nebo změnou pohybu (zrychlením) způsobí, že hmota uvnitř akcelerometru stlačí speciální materiál, který vytvoří elektrický náboj. Ten je úměrný působící síle. A protože hmotnost součástky je konstantní, náboj je pak také úměrný zrychlení. To je princip, jímž akcelerometr měří zrychlení. Stejně jako gyroskop měří akcelerometr ve třech osách, a to v x,y a z. Gyroskop tedy měří rotaci tělesa, zatímco akcelerometr jeho přímý pohyb.

Zapojení gyroskopu

U zapojení gyroskopu je velmi důležité znát sběrnici i2c. Pro detainí popis se můžeme podívat na tuto lekci.

Povolení I2C

První věc, kterou musíme udělat v Raspberry Pi, je povolit použití i2c. V defaultním nastavení je její použití zakázáno. Do terminálu našeho Raspberry Pi napíšeme tento příkaz:

sudo raspi-config

Ukáže se nám okno, které lze ovládat šipkami na klávesnici a klávesou enter. Vybereme interfacing options -> I2C. Nastavení se nás zeptá, zde chceme povolit I2C. Potvrdíme a Raspberry Pi poté restartujeme.

Než budeme pokračovat, zkontrolujeme si ještě, na jaké adrese nám náš gyroskop běží. Toho docílíme příkazem:

i2cdetect -y 1

Příkaz je jednoduchý - i2cdetect je program, který skenuje sběrnice i2c. Parametr -y přeskakuje čekání na souhlas uživatele. Číslo 1 je pak označení pro číslo sběrnice, kterou má program scanovat.

Program většinou vypíše jedno číslo, které reprezentuje adresu sběrnice pinu i2c. S naším zapojením by to mělo být číslo 68. Zapisuje se jako 0x68:

Raspberry Pi

Zapojení

Zapojení gyroskopu je jednoduché. Jediné, co nás na něm zajímá, jsou porty SLA,SLC,VCC a GND. GND zapojíme na Raspberry Pi do GND a VCC do 5V. SDA pak připojíme k GPIO portu 2 (SDA port) a SCL připojíme k GPIO portu 3 (SCL port). Když poté Raspberry Pi spustíme, měla by nám na gyroskopu svítit červená dioda:

Raspberry Pi

Programová část

Náš program bude vypisovat data data získaná z gyroskopu. Jak již víme, gyroskop nám dává data ohledně jeho otáčení ve třech osách.

Instalace knihoven

K práci s kódem budeme potřebovat knihovnu smbus, která zařizuje správnou funkci i2c pinů. Nainstalujeme ji pomocí příkazu:

sudo apt install python3-smbus

Další nutnou knihovnou bude mpu6050. Tato knihovna umožňuje ovládání našeho gyroskopu s čipem mpu6050:

pip install mpu6050-raspberrypi

Program na detekci os

Kód pro obsluhu gyroskopu pak bude vypadat 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 prvních dvou řádcích si naimportujeme dvě knihovny. Bude to knihovna mpu6050, kterou jsme si před chvílí nainstalovali, a nám už známá knihovna time. Na třetím řádku si uložíme do proměné mpu adresu, na níž i2c poslouchá náš gyroskop. Tu jsme již dříve identifikovali jako 0x68. Dále si vytvoříme nekonečnou smyčku while. To proto, že data z gyroskopu chceme načítat a vypisovat nepřetržitě. Výpis by se bez smyčky logicky provedl pouze jednou a pak by se náš program ukončil. Uvnitř smyčky si pak data, která nám gyroskop posílá, uložíme do proměné gyroskop_data. Příkaz mpu.get_gyro_data používá proměnou mpu s adresou gyroskopu. Z ní si pak bere všechny informace, které gyroskop posílá. Poté si pomocí příkazu print vypíšeme údaje z jednotlivých os. Do příkazu print vložíme námi požadovaný text, např. "gyroskop osa X :". Pomocí + pak připojíme hodnotu odpovídající osy z proměnné gyroskop_data, kterou převedeme na text. Ze všech dat, která gyroskop posílá, tímto vyfiltrujeme pouze ty údaje, které chceme vidět. Nakonec si nastavíme příkaz time.sleep na jednu sekundu, aby byl mezi jednotlivými výpisy nějaký časový interval.

Proměná gyroskop_data ukládá data jako list. Proto můžeme výše použitým způsobem jednoduše oddělit části dat a vypsat je zvlášť.

Ve výpisu potom vidíme, jak se při pohybu gyroskopu mění jednotlivé hodnoty u každé ze tří souřadnic:

Raspberry Pi

Věřím, že se vám připojení a nakódování gyroskopu podařilo. Své postřehy a případné dotazy můžete zanechat v diskusi pod článkem 🙂

V další lekci, Raspberry Pi - Zavlažovač rostlin, si k Raspberry Pi připojíme vodní čerpadlo, senzor vlhkosti půdy a reproduktor.


 

Předchozí článek
Raspberry Pi - Připojení kamery
Všechny články v sekci
Raspberry Pi
Přeskočit článek
(nedoporučujeme)
Raspberry Pi - Zavlažovač rostlin
Článek pro vás napsal Aleš Hlavín
Avatar
Uživatelské hodnocení:
4 hlasů
Raspberry
Aktivity