- PWM (impulsa platuma modulācija):
- Servomotors un PWM:
- Nepieciešamās sastāvdaļas:
- Ķēdes shēma:
- Darbības un programmēšanas skaidrojums:
Raspberry Pi ir ARM arhitektūras procesors, kas paredzēts elektronikas inženieriem un vaļaspriekiem. PI ir viena no uzticamākajām projektu izstrādes platformām, kas tur pastāv. Ar lielāku procesora ātrumu un 1 GB RAM PI var izmantot daudziem augsta līmeņa projektiem, piemēram, attēlu apstrādei un lietu internetam.
Lai veiktu kādu no augsta līmeņa projektiem, ir jāsaprot PI pamatfunkcijas. Šajās apmācībās mēs aplūkosim visas Raspberry Pi pamatfunkcijas. Katrā apmācībā mēs apspriedīsim vienu no PI funkcijām. Šīs Raspberry Pi apmācības sērijas beigās jūs pats varēsiet veikt augsta līmeņa projektus. Iet cauri tālāk sniegtajām apmācībām:
- Darba sākšana ar Raspberry Pi
- Aveņu Pi konfigurācija
- LED mirgo
- Aveņu Pi pogas saskarne
- Aveņu Pi PWM paaudze
- DC motora vadība, izmantojot Raspberry Pi
- Stepper motora vadība ar Raspberry Pi
- Saskarņu maiņu reģistrs ar Raspberry Pi
- Aveņu Pi ADC apmācība
Šajā apmācībā mēs kontrolēsim servomotoru ar Raspberry Pi. Pirms došanās uz servo parunāsim par PWM, jo no tā izriet Servo motora vadības koncepcija.
PWM (impulsa platuma modulācija):
Mēs jau iepriekš daudzkārt runājām par PWM: Pulsa platuma modulācija ar ATmega32, PWM ar Arduino Uno, PWM ar 555 taimera IC un PWM ar Arduino Due. PWM nozīmē pulsa platuma modulāciju. PWM ir metode, ko izmanto mainīga sprieguma iegūšanai no stabilas barošanas avota. Lai labāk izprastu PWM, ņemiet vērā zemāk esošo shēmu,
Iepriekš redzamajā attēlā, ja slēdzis ir nepārtraukti slēgts noteiktā laika periodā, šajā laikā LED nepārtraukti ieslēgsies. Ja slēdzis ir slēgts uz pusi sekundes un atvērts uz nākamo pusi sekundes, tad gaismas diode iedegsies tikai pirmajā sekundes pusē. Tagad proporciju, kurai LED ir ieslēgta visā laikā, sauc par darba ciklu, un to var aprēķināt šādi:
Darba cikls = Ieslēgšanas laiks / (Ieslēgšanas laiks + Izslēgšanas laiks)
Darba cikls = (0,5 / (0,5 + 0,5)) = 50%
Tātad vidējais izejas spriegums būs 50% no akumulatora sprieguma.
Palielinot ieslēgšanas un izslēgšanas ātrumu līdz līmenim, mēs redzēsim, ka gaismas diode tiek aptumšota, nevis ieslēgta un izslēgta. Tas ir tāpēc, ka mūsu acis nevar skaidri uztvert frekvences, kas augstākas par 25Hz. Apsveriet 100 ms ciklu, kad LED ir izslēgts 30 ms un 70 sekundes. Pie izejas mums būs 70% no stabilā sprieguma, tāpēc LED nepārtraukti spīdēs ar 70% intensitātes.
Nodokļu attiecība ir no 0 līdz 100. '0' nozīmē pilnīgi IESLĒGTS un '100' ir pilnībā IESLĒGTS. Šī darba attiecība ir ļoti svarīga servomotoram. Servo motora pozīciju nosaka šī darba attiecība. Pārbaudiet to PWM demonstrēšanai ar LED un Raspberry Pi.
Servomotors un PWM:
Servomotors ir līdzstrāvas motora, stāvokļa kontroles sistēmas un pārnesumu kombinācija. Servos ir daudz lietojumu mūsdienu pasaulē, un līdz ar to tie ir pieejami dažādās formās un izmēros. Šajā apmācībā mēs izmantosim SG90 servomotoru, tas ir viens no populārākajiem un lētākajiem. SG90 ir 180 grādu servo. Tātad ar šo servo mēs varam novietot asi no 0-180 grādiem.
Servomotoram galvenokārt ir trīs vadi, viens ir paredzēts pozitīvam spriegumam, otrs - zemējumam, bet pēdējais - pozīcijas iestatīšanai. Sarkanais vads ir pieslēgts pie varas, Brown vads ir savienots ar zemi un Yellow vadu (vai balta), ir saistīts ar signālu.
Servo servisā mums ir vadības sistēma, kas paņem PWM signālu no Signāla tapas. Tas atšifrē signālu un iegūst no tā darba attiecību. Pēc tam tas salīdzina attiecību ar iepriekš definētajām pozīciju vērtībām. Ja vērtībās ir atšķirība, tas attiecīgi pielāgo servo stāvokli. Tātad servomotora ass stāvoklis ir balstīts uz PWM signāla darba attiecību pie Signāla tapas.
PWM (pulsa platuma modulēta) signāla frekvence var atšķirties atkarībā no servomotora veida. SG90 PWM signāla frekvence ir 50Hz. Lai uzzinātu servo darbības biežumu, pārbaudiet konkrētā modeļa datu lapu. Tātad, kad frekvence ir izvēlēta, otra svarīga lieta šeit ir PWM signāla DUTY RATIO.
Zemāk esošajā tabulā parādīta servo pozīcija konkrētajam nodokļa koeficientam. Starp tiem var iegūt jebkuru leņķi, attiecīgi izvēloties vērtību. Tātad 45º servo gadījumā nodokļa likmei jābūt “5” vai 5%.
NOSTĀJA |
PIENĀKUMA RATIO |
0º |
2.5 |
90º |
7.5 |
180º |
12.5 |
Pirms servomotora saskarnes ar Raspberry Pi jūs varat pārbaudīt servo ar šīs servomotora testēšanas shēmas palīdzību. Pārbaudiet arī mūsu zemāk esošos Servo projektus:
- Servomotora vadība, izmantojot Arduino
- Servomotora vadība ar Arduino Due
- Servomotora mijiedarbība ar 8051 mikrokontrolleru
- Servomotora vadība, izmantojot MATLAB
- Servomotora vadība ar Flex sensoru
- Servo pozīcijas kontrole ar svaru (spēka sensors)
Nepieciešamās sastāvdaļas:
Šeit mēs izmantojam Raspberry Pi 2 B modeli ar Raspbian Jessie OS. Visas aparatūras un programmatūras pamatprasības ir iepriekš apspriestas, jūs to varat meklēt Raspberry Pi ievadā, izņemot to, kas mums nepieciešams:
- Savienojošās tapas
- 1000uF kondensators
- SG90 servomotors
- Maizes dēlis
Ķēdes shēma:
A1000µF jābūt savienotam ar + 5V barošanas sliedi, pretējā gadījumā PI var nejauši izslēgties, kontrolējot servo.
Darbības un programmēšanas skaidrojums:
Kad viss ir savienots, kā norādīts shēmā, mēs varam ieslēgt PI, lai programmu ierakstītu PYHTON.
Mēs runāsim par dažām komandām, kuras mēs izmantosim PYHTON programmā, Mēs importēsim GPIO failu no bibliotēkas, zemāk esošā funkcija ļauj mums ieprogrammēt PI GPIO tapas. Mēs arī pārdēvējam “GPIO” par “IO”, tāpēc programmā, kad vien mēs vēlamies atsaukties uz GPIO tapām, mēs izmantosim vārdu “IO”.
importēt RPi.GPIO kā IO
Dažreiz, kad GPIO tapas, kuras mēs cenšamies izmantot, iespējams, veic citas funkcijas. Tādā gadījumā mēs saņemsim brīdinājumus, izpildot programmu. Zemāk komanda liek PI ignorēt brīdinājumus un turpināt programmu.
IO.setwarnings (False)
Mēs varam atsaukties uz PI GPIO tapām vai nu pēc tapas numura uz kuģa, vai pēc to funkcijas numura. Tāpat kā “PIN 29” uz tāfeles ir “GPIO5”. Tātad mēs šeit sakām, vai nu mēs šeit parādīsim tapu ar “29” vai “5”.
IO.setmode (IO.BCM)
Mēs kā izejas tapu iestatām PIN39 vai GPIO19. No šīs tapas mēs iegūsim PWM izvadi.
IO. Iestatīšana (19, IO.OUT)
Pēc izejas tapas iestatīšanas mums jāiestata tapa kā PWM izvades tapa, p = IO.PWM (izejas kanāls, PWM signāla frekvence)
Iepriekš minētā komanda ir paredzēta kanāla un arī kanāla frekvences iestatīšanai ”. 'p' šeit ir mainīgais lielums, tas var būt jebkas. Mēs izmantojam GPIO19 kā PWM izvades kanālu. “PWM signāla frekvence” mēs izvēlēsimies 50, jo SG90 darba frekvence ir 50Hz.
Komanda zemāk tiek izmantota, lai sāktu PWM signāla ģenerēšanu. ' DUTYCYCLE ' ir paredzēts 'Ieslēgt' attiecības iestatīšanai, kā paskaidrots iepriekš, p. sākt (DUTYCYCLE)
Zemāk esošā komanda tiek izmantota kā uz visiem laikiem, ar šo komandu šīs cilpas iekšējie paziņojumi tiks izpildīti nepārtraukti.
Kamēr 1:
Programma Servo kontrolēšanai, izmantojot Raspberry Pi, nodrošina PWM signālu GPIO19. PWM signāla darba attiecība tiek mainīta starp trim vērtībām trīs sekundes. Tātad katru sekundi servo pagriežas stāvoklī, ko nosaka Nodokļu attiecība. Servo trīs sekunžu laikā nepārtraukti pagriežas uz 0º, 90º un 180º.