- PWM (modulácia šírky impulzu):
- Servomotor a PWM:
- Požadované komponenty:
- Schéma zapojenia:
- Vysvetlenie k práci a programovaniu:
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
- Ovládanie krokového motora s Raspberry Pi
- Prepojenie posunovej registrácie s Raspberry Pi
- Výukový program ADC pre Raspberry Pi
V tomto tutoriáli budeme riadiť servomotor s Raspberry Pi. Predtým, ako sa pustíme do serva, poďme sa baviť o PWM, pretože koncept riadenia servomotora pochádza z toho.
PWM (modulácia šírky impulzu):
O PWM sme už hovorili mnohokrát v: Pulse width Modulation s ATmega32, PWM s Arduino Uno, PWM s 555 časovačom IC a PWM s Arduino Due. PWM je skratka pre „Pulse Width Modulation“. PWM je metóda používaná na získavanie premenlivého napätia zo stabilného napájacieho zdroja. Pre lepšie pochopenie PWM zvážte obvod uvedený nižšie,
Na obrázku vyššie, ak je spínač nepretržite zapnutý po určitú dobu, bude LED svietiť počas tejto doby nepretržite. Ak je spínač na pol sekundy zatvorený a otvorený na ďalšiu pol sekundu, potom bude LED svietiť iba v prvej pol sekunde. Teraz sa proporcia, pre ktorú svieti LED dióda po celkovú dobu, nazýva pracovným cyklom a dá sa vypočítať takto:
Pracovný cyklus = čas zapnutia / (čas zapnutia + čas vypnutia)
Pracovný cyklus = (0,5 / (0,5 + 0,5)) = 50%
Takže priemerné výstupné napätie bude 50% napätia batérie.
Keď zvýšime rýchlosť ZAPNUTIA a VYPNUTIA na úroveň, uvidíme, že LED dióda bude namiesto ZAPNUTIA a VYPNUTIA stlmená. Je to preto, že naše oči nemôžu zreteľne zachytiť frekvencie vyššie ako 25 Hz. Zvážte 100 ms cyklus, LED nesvieti 30 ms a svieti 70 ms. Na výstupe budeme mať 70% stabilného napätia, takže LED bude nepretržite svietiť so 70% intenzitou.
Pracovný pomer sa pohybuje od 0 do 100. „0“ znamená úplne VYPNUTÉ a „100“ je úplne ZAPNUTÉ. Tento pomer výkonu je pre servomotor veľmi dôležitý. Pozícia servomotora je určená týmto pracovným pomerom. Skontrolujte túto ukážku PWM pomocou LED a Raspberry Pi.
Servomotor a PWM:
Servomotor je kombináciou jednosmerného motora, systému riadenia polohy a prevodových stupňov. Servá majú veľa aplikácií v modernom svete a sú k dispozícii v rôznych tvaroch a veľkostiach. V tomto výučbe budeme používať servomotor SG90, je to jeden z populárnych a najlacnejších. SG90 je 180 stupňové servo. Takže pomocou tohto serva môžeme polohovať os od 0 do 180 stupňov.
Servomotor má hlavne tri vodiče, jeden je na kladné napätie, druhý na zem a posledný na nastavenie polohy. Červený vodič je pripojený k napájaniu, hnedý vodič je spojený so zemou a žltý drôt (alebo biele) je pripojený k signálu.
V serve máme riadiaci systém, ktorý odoberá signál PWM z kolíka Signal. Dekóduje signál a získa z neho pracovný pomer. Potom porovnáva pomer s preddefinovanými hodnotami pozícií. Ak je rozdiel v hodnotách, upraví to zodpovedajúcim spôsobom polohu serva. Poloha osi servomotora je teda založená na pracovnom pomere signálu PWM na kolíku Signal.
Frekvencia signálu PWM (Pulse Width Modulated) sa môže líšiť v závislosti od typu servomotora. Pre SG90 je frekvencia signálu PWM 50 Hz. Ak chcete zistiť frekvenciu prevádzky vášho serva, pozrite si technický list pre konkrétny model. Akonáhle je teda zvolená frekvencia, ďalšou dôležitou vecou je POVINNOSŤ PWM signálu.
Nasledujúca tabuľka zobrazuje pozíciu serva pre konkrétny pomer výkonu. Medzi príslušnými hodnotami môžete dostať akýkoľvek uhol. Takže pre 45 ° serva by mal byť duty ratio „5“ alebo 5%.
POZÍCIA |
POVINNOSŤ POVINNOSTI |
0º |
2.5 |
90 ° |
7.5 |
180 ° |
12.5 |
Pred pripojením servomotora na Raspberry Pi môžete svoje servo otestovať pomocou tohto testovacieho obvodu servomotora. Skontrolujte tiež naše servoprojekty uvedené nižšie:
- Ovládanie servomotora pomocou Arduina
- Ovládanie servomotora s Arduino Due
- Prepojenie servomotorov s mikrokontrolérom 8051
- Ovládanie servomotora pomocou MATLABu
- Ovládanie servomotora pomocou Flex senzora
- Riadenie polohy serva s hmotnosťou (snímač sily)
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
- 1000uF kondenzátor
- Servomotor SG90
- Nepál
Schéma zapojenia:
A1000µF musí byť pripojený cez napájaciu lištu + 5V, inak by sa PI mohol náhodne vypnúť pri ovládaní serva.
Vysvetlenie k práci a programovaniu:
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 29“ na doske je „GPIO5“. Takže tu hovoríme, že tu budeme špendlík reprezentovať číslom „29“ alebo „5“.
IO.setmode (IO.BCM)
Ako výstupný pin nastavujeme PIN39 alebo GPIO19. Z tohto pinu dostaneme výstup PWM.
IO.setup (19, IO.OUT)
Po nastavení výstupného kolíka 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 kanálu. “. 'p' tu je premenná, môže to byť čokoľvek. Ako výstupný kanál PWM používame GPIO19. „Frekvencia signálu PWM“ vyberieme 50, pretože pracovná frekvencia SG90 je 50 Hz.
Nasledujúci príkaz sa používa na spustenie generovania signálu PWM. „ DUTYCYCLE “ slúži na nastavenie pomeru „ zapnutia “, ako bolo vysvetlené vyššie, p.start (DUTYCYCLE)
Nasledujúci príkaz sa používa ako večná slučka, s týmto príkazom sa budú príkazy vo vnútri tejto slučky vykonávať nepretržite.
Zatiaľ čo 1:
Program ovládania serva pomocou Raspberry Pi tu poskytuje signál PWM na GPIO19. Pracovný pomer signálu PWM sa mení medzi tromi hodnotami na tri sekundy. Takže každú sekundu sa servo otáča do polohy určenej pracovným pomerom. Servo sa nepretržite otáča na 0 °, 90 ° a 180 ° za tri sekundy.