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 série tutoriálů budete moci sami dělat vysoce postavené projekty. Zaškrtněte je pro Začínáme s konfigurací Raspberry Pi a Raspberry Pi.
V předchozích cvičeních jsme diskutovali o LED Blinky, Button Interfacing a generování PWM. V tomto tutoriálu budeme řídit rychlost stejnosměrného motoru pomocí techniky Raspberry Pi a PWM. PWM (Pulse Width Modulation) je metoda používaná k získání proměnného napětí ze zdroje konstantní energie. O PWM jsme diskutovali v předchozím tutoriálu.
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á 17 GPIO. Chcete-li se dozvědět více o pinech GPIO, projděte si: LED bliká s Raspberry Pi
Každý z těchto 17 GPIO pinů může dodávat maximálně 15 mA. A součet proudů ze všech pinů GPIO nemůže překročit 50 mA. Z každého z těchto pinů GPIO tedy můžeme v průměru čerpat maximálně 3 mA. Člověk by tedy neměl s těmito věcmi manipulovat, pokud nevíte, co děláte.
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ů. Tato napájecí lišta je připojena paralelně k napájení procesoru. Takže odběr vysokého proudu z této napájecí lišty ovlivňuje procesor. Na desce PI je pojistka, která se vypne, jakmile použijete vysoké zatížení. Vy můžete čerpat 100mA bezpečně z + 3,3 železnici. Mluvíme o tom tady, protože; připojujeme stejnosměrný motor na +3,3 V. S ohledem na limit výkonu zde můžeme připojit pouze motor s nízkým výkonem, pokud chcete pohánět motor s vysokým výkonem, zvažte jeho napájení ze samostatného zdroje energie.
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)
- Malý stejnosměrný motor
- Knoflíky (2)
- 2N2222 Tranzistor
- Dioda 1N4007
- Kondenzátor - 1000uF
- Chlebová deska
Vysvětlení obvodu:
Jak již bylo řečeno, z žádných pinů GPIO nemůžeme odebírat více než 15 mA a stejnosměrný motor odebírá více než 15 mA, takže PWM generovaný Raspberry Pi nelze přímo napájet stejnosměrným motorem. Pokud tedy připojíme motor přímo k PI pro regulaci rychlosti, může se deska trvale poškodit.
Jako spínací zařízení tedy použijeme tranzistor NPN (2N2222). Tento tranzistor zde pohání vysoce výkonný stejnosměrný motor tím, že přijímá PWM signál z PI. Zde je třeba věnovat pozornost tomu, že nesprávné připojení tranzistoru by mohlo desku silně zatížit.
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.
Budeme si povídat 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)
Jako výstupní pin nastavujeme GPIO19 (nebo PIN35). Z tohoto pinu získáme PWM výstup.
IO.setup (19, IO.IN)
Po nastavení kolíku jako výstupu musíme nastavit kolík jako PWM výstupní kolík, p = IO.PWM (výstupní kanál, frekvence signálu PWM)
Výše uvedený příkaz slouží k nastavení kanálu a také k nastavení frekvence signálu PWM. 'p' zde je proměnná, může to být cokoli. Jako výstupní kanál PWM používáme GPIO19. „ frekvence PWM signálu “ byla zvolena 100, protože nechceme, aby LED blikala.
Níže uvedený příkaz se používá ke spuštění generování signálu PWM, „ DUTYCYCLE “ slouží k nastavení poměru zapnutí, 0 znamená, že LED bude svítit po dobu 0% času, 30 znamená, že LED bude svítit po 30% času a 100 znamená úplně zapnuto.
p.start (DUTYCYCLE)
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):
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 povely potřebné k dosažení kontroly rychlosti.
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í pracovního cyklu signálu PWM a druhý pro snížení pracovního cyklu signálu PWM. Stisknutím jednoho tlačítka se zvýší rychlost stejnosměrného motoru a stisknutím druhého tlačítka se sníží rychlost stejnosměrného motoru. Tím jsme dosáhli DC Speed Speed Control od Raspberry Pi.
Zkontrolujte také:
- Řízení otáček stejnosměrného motoru
- Řízení stejnosměrného motoru pomocí Arduina