Raspberry Pi je deska založená na procesoru architektury ARM určená pro elektronické inženýry a fandy. PI je jednou z nejdůvěryhodnějších platforem pro vývoj projektů. Díky vyšší rychlosti procesoru a 1 GB RAM lze PI použít pro mnoho významných projektů, jako je zpracování obrazu a internet věcí.
Při provádění některého z vysoce profilovaných projektů je třeba porozumět základním funkcím PI. V těchto cvičeních se budeme věnovat všem základním funkcím Raspberry Pi. V každém tutoriálu probereme jednu z funkcí PI. Na konci této série tutoriálů Raspberry Pi budete moci sami dělat vysoce postavené projekty. Projděte si níže výukové programy:
- Začínáme s Raspberry Pi
- Konfigurace Raspberry Pi
- LED Blinky
- Rozhraní tlačítka Raspberry Pi
- Generace PWM Raspberry Pi
- Ovládání stejnosměrného motoru pomocí Raspberry Pi
V tomto tutoriálu budeme řídit rychlost krokového motoru pomocí Raspberry Pi. U Stepper Motor, jak již název napovídá, je rotace hřídele ve formě Step. Existují různé typy krokových motorů; zde budeme používat ten nejpopulárnější, kterým je Unipolar Stepper Motor. Na rozdíl od stejnosměrného motoru můžeme krokový motor otáčet do jakéhokoli konkrétního úhlu tím, že mu poskytneme správné pokyny.
K otáčení tohoto čtyřstupňového krokového motoru dodáme výkonové impulsy pomocí obvodu ovladače krokového motoru. Řídicí obvod přebírá logické spouště z PI. Pokud řídíme logické spouště, ovládáme výkonové impulsy a tím i rychlost krokového motoru.
V Raspberry Pi 2 je 40 výstupních pinů GPIO. Ale ze 40 lze naprogramovat pouze 26 pinů GPIO (GPIO2 až GPIO27). Některé z těchto pinů plní některé speciální funkce. Se speciálním GPIO odloženým stranou nám zbývá jen 17 GPIO. Každý z těchto 17 GPIO pinů může dodávat proud maximálně 15 mA. A součet proudů ze všech pinů GPIO nemůže překročit 50 mA. Chcete-li se dozvědět více o pinech GPIO, projděte si: LED bliká s Raspberry Pi
Na desce jsou napájecí piny + 5 V (Pin 2 a 4) a + 3,3 V (Pin 1 a 17) pro připojení dalších modulů a senzorů. Tyto napájecí kolejnice nelze použít k pohonu krokového motoru, protože k jeho otáčení potřebujeme více energie. Musíme tedy dodávat energii do krokového motoru z jiného zdroje energie. Můj krokový motor má jmenovité napětí 9 V, takže jako druhý zdroj energie používám 9v baterii. Vyhledejte číslo modelu svého krokového motoru a zjistěte jmenovité napětí. V závislosti na hodnocení vhodně vyberte sekundární zdroj.
Jak již bylo řečeno, k řízení krokového motoru potřebujeme obvod řidiče. Budeme zde také navrhovat jednoduchý obvod ovladače tranzistoru.
Požadované komponenty:
Zde používáme Raspberry Pi 2 Model B s Raspbian Jessie OS. Všechny základní požadavky na hardware a software jsou dříve diskutovány, můžete si je vyhledat v úvodu k Raspberry Pi, kromě toho, co potřebujeme:
- Spojovací kolíky
- 220Ω nebo 1KΩ rezistor (3)
- Krokový motor
- Knoflíky (2)
- Tranzistor 2N2222 (4)
- Dioda 1N4007 (4)
- Kondenzátor - 1000uF
- Chlebová deska
Vysvětlení obvodu:
Krokový motor používá k dokončení rotace o 360 stupňů 200 kroků, což znamená, že se otáčí o 1,8 stupně na krok. Jelikož řídíme čtyřstupňový krokový motor, musíme k dokončení jednoho logického cyklu dát čtyři impulsy. Každý krok tohoto motoru dokončí 1,8 stupně otáčení, takže k dokončení cyklu potřebujeme 200 pulzů. K dokončení jedné rotace je tedy zapotřebí 200/4 = 50 logických cyklů. Zaškrtněte toto a dozvíte se více o Stepperových motorech a jejich režimech jízdy.
Budeme pohánět každou z těchto čtyř cívek tranzistorem NPN (2N2222), tento tranzistor NPN odebírá logický pulz z PI a řídí odpovídající cívku. Čtyři tranzistory berou čtyři logiky z PI k řízení čtyř stupňů krokového motoru.
Obvod budiče tranzistoru je složité nastavení; zde bychom měli věnovat pozornost tomu, že nesprávné připojení tranzistoru by mohlo silně zatížit desku a poškodit ji. Toto zaškrtněte, abyste správně porozuměli obvodu ovladače krokového motoru.
Motor je indukční, a tak při přepínání motoru zažíváme indukční stouply. Toto stouplí silně zahřeje tranzistor, takže budeme používat diodu (1N4007) k zajištění ochrany tranzistoru před indukčním stouplím.
Abychom snížili kolísání napětí, připojíme přes napájecí zdroj kondenzátor 1000uF, jak je znázorněno na schématu zapojení.
Pracovní vysvětlení:
Jakmile je vše připojeno podle schématu zapojení, můžeme zapnout PI pro zápis programu do PYHTONU.
Promluvíme si o několika příkazech, které budeme používat v programu PYHTON, Chystáme se importovat soubor GPIO z knihovny, níže uvedená funkce nám umožňuje programovat GPIO piny PI. Přejmenováváme také „GPIO“ na „IO“, takže v programu, kdykoli budeme chtít odkazovat na piny GPIO, použijeme slovo „IO“.
importovat RPi.GPIO jako IO
Někdy, když piny GPIO, které se snažíme použít, mohou dělat nějaké další funkce. V takovém případě obdržíme varování při provádění programu. Níže uvedený příkaz říká PI, aby ignoroval varování a pokračoval v programu.
IO.setwarnings (False)
Můžeme označit GPIO piny PI, buď číslem kolíku na desce, nebo jejich číslem funkce. Jako „PIN 35“ na desce je „GPIO19“. Řekneme tedy, že zde buď budeme reprezentovat špendlík číslem „35“ nebo „19“.
IO.setmode (IO.BCM)
Nastavujeme čtyři GPIO piny jako výstup pro řízení čtyř cívek krokového motoru.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Jako vstupní piny nastavujeme GPIO26 a GPIO19. Podle těchto kolíků detekujeme stisknutí tlačítka.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
V případě, že je podmínka v závorkách pravdivá, příkazy uvnitř smyčky budou provedeny jednou. Pokud tedy GPIO pin 26 poklesne, pak se příkazy uvnitř smyčky IF provedou jednou. Pokud pin 26 GPIO neklesne, pak příkazy uvnitř smyčky IF nebudou provedeny.
if (IO.input (26) == False):
Tento příkaz provede smyčku 100krát, x se zvýší od 0 do 99.
pro x v rozsahu (100):
Zatímco 1: se používá pro nekonečnou smyčku. S tímto příkazem budou příkazy uvnitř této smyčky prováděny nepřetržitě.
Máme všechny příkazy potřebné k dosažení kontroly otáček krokového motoru.
Po napsání programu a jeho spuštění zbývá pouze ovládání ovládacího prvku. Máme dvě tlačítka připojená k PI. Jeden pro zvýšení zpoždění mezi čtyřmi impulsy a druhý pro snížení zpoždění mezi čtyřmi impulsy. Samotné zpoždění hovoří o rychlosti; pokud je zpoždění větší, motor mezi každým krokem zabrzdí, a proto je otáčení pomalé. Pokud je zpoždění téměř nulové, pak se motor otáčí maximální rychlostí.
Zde je třeba si uvědomit, že mezi impulsy by mělo být určité zpoždění. Po zadání impulzu krokovému motoru trvá několik milisekund času, než dosáhne své konečné fáze. Pokud mezi impulsy není žádné zpoždění, krokový motor se vůbec nepohybuje. Za normálních okolností je zpoždění 50 ms mezi impulsy v pořádku. Přesnější informace najdete v datovém listu.
Takže pomocí dvou tlačítek můžeme ovládat zpoždění, které zase řídí rychlost krokového motoru.