Raspberry Pi je doska založená na procesore ARM architektúry určená pre elektronických inžinierov a fandov. PI je jednou z najdôveryhodnejších platforiem pre vývoj projektov. Vďaka vyššej rýchlosti procesora a 1 GB RAM môže byť PI použitý pre mnoho významných projektov, ako je spracovanie obrazu a internet vecí.
Pri uskutočňovaní ktoréhokoľvek z významných profilov je potrebné porozumieť základným funkciám PI. V týchto výučbách sa budeme venovať všetkým základným funkciám Raspberry Pi. V každom návode si rozoberieme jednu z funkcií PI. Na konci série tutoriálov budete môcť sami robiť vysoko hodnotné projekty. Začiarknite tieto políčka Začíname s konfiguráciou Raspberry Pi a Raspberry Pi.
O LED Blinky, Button Interfacing a generovaní PWM sme hovorili v predchádzajúcich tutoriáloch. V tomto výučbe budeme riadiť rýchlosť jednosmerného motora pomocou techniky Raspberry Pi a PWM. PWM (Pulse Width Modulation) je metóda používaná na získanie premenlivého napätia z konštantného zdroja energie. O PWM sme hovorili v predchádzajúcom tutoriáli.
V Raspberry Pi 2 je 40 výstupných pinov GPIO. Ale zo 40 možno naprogramovať iba 26 pinov GPIO (GPIO2 až GPIO27). Niektoré z týchto pinov vykonávajú niektoré špeciálne funkcie. Keď odložíme špeciálne GPIO, zostane nám 17 GPIO. Ak sa chcete dozvedieť viac informácií o kolíkoch GPIO, prečítajte si: Blikanie LED s Raspberry Pi
Každý z týchto 17 GPIO pinov môže dodať maximálne 15 mA. A súčet prúdov zo všetkých pinov GPIO nemôže prekročiť 50mA. Takže z každého z týchto pinov GPIO môžeme v priemere čerpať maximálne 3 mA. S týmito vecami by sa teda nemalo manipulovať, pokiaľ neviete, čo robíte.
Na doske sú napájacie kolíky + 5 V (pin 2 a 4) a + 3,3 V (pin 1 a 17) na pripojenie ďalších modulov a senzorov. Táto napájacia lišta je pripojená paralelne k napájaniu procesora. Takže odber vysokého prúdu z tejto napájacej lišty ovplyvňuje procesor. Na doske PI je poistka, ktorá sa vypne, keď vyviniete vysoké zaťaženie. Vy môžete čerpať 100mA bezpečne z + 3,3 železnici. Hovoríme o tom tu, pretože; pripájame jednosmerný motor na +3,3V. S ohľadom na limit výkonu tu môžeme pripojiť iba motor s nízkym výkonom, ak chcete poháňať motor s vysokým výkonom, zvážte jeho napájanie zo samostatného zdroja energie.
Požadované komponenty:
Tu používame Raspberry Pi 2 Model B s Raspbian Jessie OS. Všetky základné hardvérové a softvérové požiadavky sú už diskutované. Môžete si ich vyhľadať v úvode k Raspberry Pi, okrem toho, čo potrebujeme:
- Spojovacie čapy
- 220Ω alebo 1KΩ rezistor (3)
- Malý jednosmerný motor
- Gombíky (2)
- 2N2222 Tranzistor
- Dióda 1N4007
- Kondenzátor - 1000uF
- Chlebová doska
Vysvetlenie obvodu:
Ako už bolo povedané, zo žiadnych pinov GPIO nemôžeme odoberať viac ako 15 mA a jednosmerný motor odoberá viac ako 15 mA, takže PWM generovaný programom Raspberry Pi nemožno napájať priamo do jednosmerného motora. Takže ak pripojíme motor priamo k PI na riadenie rýchlosti, doska by sa mohla trvale poškodiť.
Ako spínacie zariadenie teda použijeme tranzistor NPN (2N2222). Tento tranzistor tu riadi vysokovýkonný jednosmerný motor prijímaním signálu PWM z PI. Tu by ste mali venovať pozornosť tomu, že nesprávne pripojenie tranzistora by mohlo dosku poriadne zaťažiť.
Motor je indukčný, a tak pri spínaní motora zažívame indukčné zrýchlenie. Toto zosilnenie silno zahreje tranzistor, takže na zabezpečenie ochrany tranzistora pred indukčným zosilnením použijeme diódu (1N4007).
S cieľom znížiť kolísanie napätia, budeme pripojenie 1000uF kondenzátor cez napájanie, ako je uvedené v schéme zapojenia.
Pracovné vysvetlenie:
Keď je všetko zapojené podľa schémy zapojenia, môžeme zapnúť PI a program napísať do PYHTONU.
Povieme si o niekoľkých príkazoch, ktoré použijeme v programe PYHTON.
Chystáme sa importovať súbor GPIO z knižnice, funkcia nižšie nám umožňuje programovať GPIO piny PI. Premenujeme „GPIO“ na „IO“, takže v programe budeme kedykoľvek, keď budeme chcieť odkazovať na piny GPIO, použiť slovo „IO“.
importovať RPi.GPIO ako IO
Niekedy, keď piny GPIO, ktoré sa snažíme používať, môžu robiť nejaké ďalšie funkcie. V takom prípade dostaneme varovania počas vykonávania programu. Príkaz dole povie PI, aby ignoroval varovania a pokračoval v programe.
IO.setwarnings (False)
Môžeme označiť GPIO piny PI, buď číslom kolíka na doske, alebo počtom ich funkcií. Rovnako ako „PIN 35“ na doske je „GPIO19“. Takže tu hovoríme, že tu budeme špendlík reprezentovať číslicami „35“ alebo „19“.
IO.setmode (IO.BCM)
Ako výstupný pin nastavujeme GPIO19 (alebo PIN35). Z tohto pinu dostaneme výstup PWM.
IO.setup (19, IO.IN)
Po nastavení kolíka ako výstupu musíme nastaviť kolík ako PWM výstupný kolík, p = IO.PWM (výstupný kanál, frekvencia signálu PWM)
Vyššie uvedený príkaz slúži na nastavenie kanálu a tiež na nastavenie frekvencie signálu PWM. 'p' tu je premenná, môže to byť čokoľvek. Ako výstupný kanál PWM používame GPIO19. „ Frekvencia signálu PWM “ bola zvolená 100, pretože nechceme, aby LED blikala.
Nasledujúci príkaz sa používa na spustenie generovania signálu PWM, „ DUTYCYCLE “ slúži na nastavenie pomeru zapnutí , 0 znamená, že LED bude svietiť 0% času, 30 znamená, že LED bude svietiť 30% času a 100 znamená úplne ZAPNUTÉ.
p.start (DUTYCYCLE)
V prípade, že je podmienka v zložených zátvorkách splnená, príkazy vo vnútri cyklu sa vykonajú raz. Takže ak pin 26 GPIO klesne na nízku hodnotu, potom sa príkazy vo vnútri slučky IF vykonajú raz. Ak pin 26 GPIO neklesne na nízku hodnotu, potom sa príkazy vo vnútri slučky IF nebudú vykonávať.
if (IO.input (26) == False):
Zatiaľ čo 1: sa používa pre nekonečnú slučku. Týmto príkazom sa budú príkazy v tejto slučke vykonávať nepretržite.
Máme tu všetky príkazy potrebné na dosiahnutie regulácie rýchlosti.
Po napísaní programu a jeho vykonaní zostáva už len ovládanie. Máme dve tlačidlá spojené s PI; jeden na zvýšenie pracovného cyklu signálu PWM a druhý na zníženie pracovného cyklu signálu PWM. Stlačením jedného tlačidla sa zvýšia otáčky jednosmerného motora a stlačením druhého tlačidla sa znížia otáčky jednosmerného motora. Týmto sme dosiahli Raspberry Pi reguláciu otáčok jednosmerného motora.
Skontrolujte tiež:
- Riadenie otáčok jednosmerného motora
- Ovládanie jednosmerného motora pomocou Arduina