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. Apmācību sērijas beigās jūs pats varēsiet veikt augsta līmeņa projektus. Pārbaudiet tos, lai sāktu darbu ar Raspberry Pi un Raspberry Pi konfigurāciju.
Iepriekšējās apmācībās mēs esam apsprieduši LED Blinky, Button Interfacing un PWM ģenerēšanu. Šajā apmācībā mēs kontrolēsim līdzstrāvas motora ātrumu, izmantojot Raspberry Pi un PWM tehniku. PWM (pulsa platuma modulācija) ir metode, ko izmanto, lai mainīgu spriegumu iegūtu no pastāvīga enerģijas avota. Par PWM mēs esam apsprieduši iepriekšējā apmācībā.
Raspberry Pi 2 ir 40 GPIO izvades tapas. Bet no 40 var ieprogrammēt tikai 26 GPIO tapas (GPIO2 līdz GPIO27). Daži no šiem tapām veic dažas īpašas funkcijas. Atstājot īpašu GPIO, mums ir palikuši 17 GPIO. Lai uzzinātu vairāk par GPIO tapām, iziet cauri: LED mirgo ar Raspberry Pi
Katrs no šiem 17 GPIO kontaktiem var piegādāt ne vairāk kā 15 mA. Un visu GPIO tapu strāvu summa nedrīkst pārsniegt 50mA. Tātad no katras šīs GPIO tapas mēs varam vidēji uzzīmēt maksimāli 3mA. Tāpēc nevajadzētu traucēt šīm lietām, ja vien nezināt, ko darāt.
Dēlī ir + 5V (2. un 4. kontakts ) un + 3.3V (1. un 17. kontakts ) jaudas izvades tapas citu moduļu un sensoru savienošanai. Šī barošanas sliede ir savienota paralēli procesora jaudai. Tātad lielas strāvas novilkšana no šī spēka sliedes ietekmē procesoru. PI plāksnē ir drošinātājs, kas atslēdzas, kad jūs pieliekat lielu slodzi. Jūs varat droši novilkt 100mA no sliedes + 3.3V. Mēs runājam par to šeit, jo; mēs savienojam līdzstrāvas motoru ar + 3,3 V. Ņemot vērā jaudas ierobežojumu, šeit mēs varam pieslēgt tikai mazjaudas motoru. Ja vēlaties vadīt lielas jaudas motoru, apsveriet iespēju to darbināt no atsevišķa strāvas avota.
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
- 220Ω vai 1KΩ rezistors (3)
- Mazs līdzstrāvas motors
- Pogas (2)
- 2N2222 Tranzistors
- 1N4007 Diode
- Kondensators - 1000uF
- Maizes dēlis
Ķēdes skaidrojums:
Kā minēts iepriekš, mēs nevaram iegūt vairāk par 15 mA no jebkuras GPIO tapas, un līdzstrāvas motors piesaista vairāk nekā 15 mA, tāpēc Raspberry Pi ģenerēto PWM nevar tieši ievadīt līdzstrāvas motoram. Tātad, ja mēs savienojam motoru tieši ar PI ātruma kontrolei, dēlis var neatgriezeniski sabojāt.
Tātad kā komutācijas ierīci mēs izmantosim NPN tranzistoru (2N2222). Šis tranzistors šeit virza lieljaudas līdzstrāvas motoru, ņemot PWM signālu no PI. Šeit jāpievērš uzmanība tam, ka nepareiza tranzistora pievienošana var stipri noslogot plāksni.
Motors ir indukcija, tāpēc, pārslēdzot motoru, mēs piedzīvojam induktīvu špikošanu. Šis savienojums stipri sildīs tranzistoru, tāpēc mēs izmantosim diode (1N4007), lai nodrošinātu tranzistora aizsardzību pret induktīvo spikingu.
Lai samazinātu sprieguma svārstības, mēs savienosim 1000uF kondensatoru visā barošanas blokā, kā parādīts shēmas diagrammā.
Darba 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 35” uz tāfeles ir “GPIO19”. Tātad mēs šeit sakām, vai nu mēs šeit parādīsim tapu ar “35” vai “19”.
IO.setmode (IO.BCM)
Mēs kā izejas tapu iestatām GPIO19 (vai PIN35). No šīs tapas mēs iegūsim PWM izvadi.
IO.iestatīšana (19, IO.IN)
Pēc tapas iestatīšanas kā izejas mums jāiestata tapa kā PWM izejas tapa, p = IO.PWM (izejas kanāls, PWM signāla frekvence)
Iepriekš minētā komanda ir paredzēta kanāla iestatīšanai, kā arī PWM signāla frekvences iestatīšanai. 'p' šeit ir mainīgais lielums, tas var būt jebkas. Mēs izmantojam GPIO19 kā PWM izejas kanālu . ' PWM signāla biežums ' ir izvēlēts 100, jo mēs nevēlamies redzēt, ka mirgo gaismas diode.
Zemāk esošā komanda tiek izmantota, lai sāktu PWM signāla ģenerēšanu, ' DUTYCYCLE ' ir ieslēgšanas koeficienta iestatīšanai, 0 nozīmē, ka gaismas diode iedegsies 0% laika, 30 nozīmē, ka gaismas diode iedegsies 30% laika un 100 nozīmē pilnīgi ieslēgta.
p. sākt (DUTYCYCLE)
Gadījumā, ja nosacījums lencēs ir patiess, paziņojumi cilpas iekšienē tiks izpildīti vienu reizi. Tātad, ja GPIO spraudnis 26 nonāks zemā līmenī, paziņojumi IF cilpas iekšienē tiks izpildīti vienu reizi. Ja GPIO spraudnis 26 nenokļūst zemā līmenī, paziņojumi IF cilpas iekšpusē netiks izpildīti.
ja (IO.input (26) == False):
Kamēr 1: tiek izmantots bezgalības ciklam. Izmantojot šo komandu, paziņojumi šajā cilpā tiks izpildīti nepārtraukti.
Mums ir visas komandas, kas nepieciešamas, lai ar to panāktu ātruma kontroli.
Pēc programmas uzrakstīšanas un izpildes atliek vien vadības darbināšana. Mums ir divas pogas, kas savienotas ar PI; viens PWM signāla darba cikla palielināšanai un otrs PWM signāla darba cikla samazināšanai. Nospiežot vienu pogu, līdzstrāvas motora ātrums palielinās, un, nospiežot otru pogu, līdzstrāvas motora ātrums samazinās. Ar to mēs esam sasnieguši Raspberry Pi līdzstrāvas motora ātruma kontroli.
Pārbaudiet arī:
- Līdzstrāvas motora ātruma kontrole
- Līdzstrāvas motora vadība, izmantojot Arduino