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 tejto série tutoriálov Raspberry Pi budete môcť sami robiť vysoko hodnotné projekty. Prejdite si nižšie uvedené návody:
- Začíname s Raspberry Pi
- Konfigurácia Raspberry Pi
- LED Blinky
- Rozhranie tlačidla Raspberry Pi
- Generácia PWM Raspberry Pi
- Ovládanie jednosmerného motora pomocou Raspberry Pi
V tomto tutoriáli budeme riadiť rýchlosť krokového motora pomocou Raspberry Pi. V Stepper Motor, ako už samotný názov hovorí, je rotácia hriadeľa vo forme Step. Existujú rôzne typy krokových motorov; tu budeme používať najobľúbenejší krokový motor Unipolar. Na rozdiel od jednosmerného motora môžeme krokový motor otáčať do ľubovoľného konkrétneho uhla tým, že mu dávame príslušné pokyny.
Na otáčanie tohto štvorstupňového krokového motora budeme dodávať výkonové impulzy pomocou ovládacieho obvodu krokového motora. Obvod budiča berie logické spúšťače z PI. Ak riadime logické spúšťače, riadime výkonové impulzy, a tým aj rýchlosť krokového motora.
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 iba 17 GPIO. Každý z týchto 17 GPIO pinov môže dodávať maximálne 15 mA prúdu. A súčet prúdov zo všetkých pinov GPIO nemôže prekročiť 50mA. Ak sa chcete dozvedieť viac informácií o pinoch GPIO, prečítajte si: Blikanie LED s Raspberry Pi
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. Tieto silové koľajnice nemožno použiť na pohon krokového motora, pretože na jeho otáčanie potrebujeme viac energie. Takže musíme dodávať energiu do krokového motora z iného zdroja energie. Môj krokový motor má napätie 9 V, takže ako druhý zdroj energie používam 9V batériu. Vyhľadajte číslo modelu krokového motora, aby ste vedeli hodnotenie napätia. V závislosti na hodnotení vhodne vyberte sekundárny zdroj.
Ako už bolo uvedené vyššie, na pohon krokového motora potrebujeme obvod vodiča. Taktiež tu navrhneme obvod jednoduchého tranzistora.
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)
- Krokový motor
- Gombíky (2)
- Tranzistor 2N2222 (4)
- Dióda 1N4007 (4)
- Kondenzátor - 1000uF
- Chlebová doska
Vysvetlenie obvodu:
Krokový motor používa na dokončenie otáčania o 360 stupňov 200 krokov, čo znamená, že sa otáča o 1,8 stupňa na krok. Pretože poháňame štvorstupňový krokový motor, musíme na dokončenie jedného logického cyklu dať štyri impulzy. Každý krok tohto motora dokončí 1,8 stupňa rotácie, takže na dokončenie cyklu potrebujeme 200 impulzov. Na dokončenie jednej rotácie je teda potrebných 200/4 = 50 logických cyklov. Začiarknite toto, ak sa chcete dozvedieť viac o krokových motoroch a ich jazdných režimoch.
Budeme poháňať každú z týchto štyroch cievok NPN tranzistorom (2N2222), tento NPN tranzistor odoberá logický impulz z PI a riadi príslušnú cievku. Štyri tranzistory berú štyri logiky z PI na pohon štyroch stupňov krokového motora.
Obvod budiča tranzistora je zložité nastavenie; tu by sme mali venovať pozornosť tomu, že nesprávne pripojenie tranzistora by mohlo vážne zaťažiť dosku a poškodiť ju. Začiarknite toto, aby ste správne pochopili obvod ovládača krokového motora.
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)
Nastavujeme štyri GPIO piny ako výstup pre pohon štyroch cievok krokového motora.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Nastavujeme GPIO26 a GPIO19 ako vstupné piny. Podľa týchto kolíkov detekujeme stlačenie tlačidla.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
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):
Tento príkaz vykoná slučku 100-krát, x sa zvýši od 0 do 99.
pre x v rozsahu (100):
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 kontroly rýchlosti krokového motora.
Po napísaní programu a jeho vykonaní zostáva už len ovládanie. Máme dve tlačidlá spojené s PI. Jeden pre zvýšenie oneskorenia medzi štyrmi impulzmi a druhý pre zníženie oneskorenia medzi štyrmi impulzmi. Samotné oneskorenie hovorí o rýchlosti; ak je oneskorenie väčšie, motor medzi každým krokom zabrzdí, a preto je rotácia pomalá. Ak je oneskorenie takmer nulové, potom sa motor otáča maximálnymi otáčkami.
Tu si treba uvedomiť, že medzi impulzmi by malo byť určité oneskorenie. Po vydaní impulzu krokovému motoru trvá niekoľko milisekúnd času, kým sa dostane do svojej konečnej fázy. Ak medzi impulzmi nie je žiadne oneskorenie, krokový motor sa nebude vôbec pohybovať. Medzi impulzmi je zvyčajne jemné oneskorenie 50 ms. Presnejšie informácie nájdete v údajovom liste.
Takže pomocou dvoch tlačidiel môžeme ovládať oneskorenie, ktoré zase riadi rýchlosť krokového motora.