Raspberry Pi je plošča na osnovi procesorja ARM, zasnovana za elektronske inženirje in ljubitelje. PI je zdaj ena najbolj zaupanja vrednih platform za razvoj projektov. Z večjo hitrostjo procesorja in 1 GB RAM-a se PI lahko uporablja za številne pomembne projekte, kot sta obdelava slik in IoT.
Za izvajanje katerega koli od pomembnih projektov je treba razumeti osnovne funkcije PI. V teh vadnicah bomo obravnavali vse osnovne funkcije Raspberry Pi. V vsaki vaji bomo obravnavali eno od funkcij PI. Do konca te vadnice Raspberry Pi se boste lahko naučili Raspberry Pi in sami naredili dobre projekte. Pojdite skozi spodnje vaje:
- Uvod v Raspberry Pi
- Konfiguracija Raspberry Pi
- LED utripa
- Vmesnik gumbov
- Generacija Raspberry Pi PWM
- Povezava LCD z Raspberry Pi
- Upravljanje enosmernega motorja
- Nadzor koračnega motorja
- Interface Shift Register
- Vadnica za ADC Raspberry Pi
- Krmiljenje servo motorja
- Kapacitivna sledilna ploščica
V tej vadnici bomo izvedli povezavo zaslona Raspberry Pi 7. Zasloni Seven Segment so najcenejši za prikazno enoto. Nekaj teh segmentov, zloženih skupaj, bi lahko uporabili za prikaz temperature, vrednosti števca itd. 7-segmentno prikazovalno enoto bomo povezali z GPIO PI in jih ustrezno nadzorovali za prikaz številk. Po tem bomo v PYTHON-u napisali program za sedemsegmentni prikaz, ki šteje od 0 do 9 in se ponastavi na nič.
Prikaz sedmih segmentov:
Obstajajo različne vrste in velikosti 7-segmentnih zaslonov. Tukaj smo podrobno obdelali sedem segmentov. V bistvu obstajata dve vrsti 7 segmentov, vrsta skupne anode (skupna pozitivna ali skupna VCC) in vrsta skupne katode (skupna negativna ali skupna podlaga).
Skupna anoda (CA): V tem so vsi negativni terminali (katoda) vseh 8 LED diod povezani (glejte spodnji diagram), imenovani COM. In vsi pozitivni terminali so ostali sami.
Skupna katoda (CC): V tem so vsi pozitivni terminali (anode) vseh 8 LED diod povezani, imenovani COM. In vse negativne termike ostanejo same.
Ti sedemsegmentni zasloni CC in CA so zelo priročni med multipleksiranjem več celic. V naši vadnici bomo uporabili CC ali sedemsegmentni prikaz skupne katode.
7 segment smo že povezali z 8051, z Arduinom in z AVR. V mnogih naših projektih smo uporabili tudi 7-segmentni prikaz.
Pred nadaljevanjem se bomo pogovorili o Raspberry Pi GPIO, V Raspberry Pi 2 je 40 izhodnih zatičev GPIO. Toda od 40 je mogoče programirati samo 26 zatičev GPIO (GPIO2 do GPIO27), glejte spodnjo sliko. Nekateri od teh zatičev opravljajo nekatere posebne funkcije. Ob posebnem GPIO, ki je na strani, imamo še 17 GPIO.
Signal GPIO (pin 1 ali 17) + 3,3 V je dovolj za pogon 7-segmentnega zaslona. Za zagotovitev trenutne omejitve bomo uporabili upor 1KΩ za vsak segment, kot je prikazano na vezju.
Če želite izvedeti več o zatičih GPIO in njihovih trenutnih izhodih, pojdite na: LED utripa z Raspberry Pi
Potrebne komponente:
Tu uporabljamo model Raspberry Pi 2 Model B z OS Raspbian Jessie. Vse osnovne zahteve glede strojne in programske opreme so že obravnavane, poglejte jih v uvodu Raspberry Pi, razen tistega, ki ga potrebujemo:
- Povezovalni zatiči
- Skupni katodni 7-segmentni zaslon (LT543)
- 1KΩ upor (8 kosov)
- Breadboard
Pojasnilo vezja in dela:
Povezave, ki so narejene za prikazovanje 7-segmentnega zaslona z Raspberry Pi, so podane spodaj. Tu smo uporabili segment Common Cathode 7:
PIN1 ali e ------------------ GPIO21
PIN2 ali d ------------------ GPIO20
PIN4 ali c ------------------ GPIO16
PIN5 ali h ali DP ---------- GPIO 12 // ni obvezen, saj ne uporabljamo decimalne vejice
PIN6 ali b ------------------ GPIO6
PIN7 ali ------------------ GPIO13
PIN9 ali f ------------------ GPIO19
PIN10 ali g ---------------- GPIO26
PIN3 ali PIN8 ------------- povezan z zemljo
Torej bomo uporabili 8 GPIO nožic PI kot 8-bitni PORT. Tu je GPIO13 LSB (najmanj pomemben bit), GPIO 12 pa MSB (najpomembnejši bit).
Zdaj, če želimo, da se prikaže številka "1", moramo moči segmenta B in C. Za napajanje segmentov B in C moramo napajati GPIO6 in GPIO16. Torej bo bajt za funkcijo 'PORT' 0b00000110, šestnajstiška vrednost 'PORT' pa 0x06. Z obema zatičema smo na zaslonu dobili 1.
Vrednosti za vsako števko smo zapisali in jih shranili v niz znakov z imenom 'DISPLAY' (preverite spodnji odsek kode). Nato smo te vrednosti poklicali eno za drugo, da na zaslonu prikažemo ustrezno številko s pomočjo funkcije 'PORT'.
Pojasnilo programiranja:
Ko je vse povezano po shemi vezja, lahko vklopimo PI in napišemo program v PYHTON.
Govorili bomo o nekaj ukazih, ki jih bomo uporabili v programu PYHTON, Datoteko GPIO bomo uvozili iz knjižnice, spodnja funkcija nam omogoča programiranje GPIO nožic PI. Prav tako preimenujemo »GPIO« v »IO«, zato bomo v programu, kadar se želimo sklicevati na zatiče GPIO, uporabili besedo »IO«.
uvozi RPi.GPIO kot IO
Včasih, ko zatiči GPIO, ki jih poskušamo uporabiti, morda opravljajo nekatere druge funkcije. V tem primeru bomo med izvajanjem programa prejeli opozorila. Spodaj ukaz PI-ju sporoči, naj prezre opozorila in nadaljuje s programom.
IO.setwarnings (False)
Zatiče GPIO PI lahko označimo bodisi s številko zatiča na krovu bodisi s številko njihove funkcije. Tako kot »PIN 29« na plošči je »GPIO5«. Torej tukaj povemo, ali bomo tu zastopali pin z '29' ali '5'.
IO.setmode (IO.BCM)
Kot izhodne nožice za podatkovne in nadzorne nožice LCD nastavimo 8 GPIO nožic.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
Če je pogoj v oklepajih resničen, se stavki znotraj zanke izvedejo enkrat. Torej, če je bit0 8-bitnega 'pin-a' resničen, bo PIN13 VISOK, v nasprotnem primeru bo PIN13 LOW. Za bit0 do bit7 imamo osem pogojev „če drugače“, tako da lahko na 7-segmentnem zaslonu ustrezna LED postane visoka ali nizka, da se prikaže ustrezna številka.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Ta ukaz izvede zanko 10-krat, x pa se poveča od 0 do 9.
za x v območju (10):
Spodaj se ukaz uporablja kot zanka za vedno, s tem ukazom se bodo stavki znotraj te zanke izvajali neprekinjeno.
Medtem ko 1:
Vse druge funkcije in ukazi so razloženi v spodnjem razdelku "Koda" s pomočjo "Komentarji".
Po pisanju programa in njegovem izvajanju Raspberry Pi sproži ustrezne GPIO, da prikaže številko na 7-segmentnem zaslonu. Program je napisan tako, da zaslon neprekinjeno šteje od 0 do 9.