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 boste lahko sami izvajali odmevne projekte. Pojdite skozi spodnje vaje:
- Uvod v Raspberry Pi
- Konfiguracija Raspberry Pi
- LED utripa
- Vmesnik gumbov
- Generacija PWM
- 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 z Raspberry Pi nadzorovali LCD zaslon 16x2. LCD bomo povezali z zatiči PI GPIO (General Purpose Input Output) za prikaz znakov na njem. V programu PYTHON bomo napisali program za pošiljanje ustreznih ukazov na LCD prek GPIO in prikaz potrebnih znakov na njegovem zaslonu. Ta zaslon bo prišel prav za prikaz vrednosti senzorjev, stanja prekinitev in tudi za prikaz časa.
Na trgu obstajajo različne vrste LCD-jev. Grafični LCD je bolj zapleten kot 16x2 LCD. Torej gremo za LCD zaslon 16x2, po želji lahko uporabite celo LCD 16x1. 16x2 LCD ima 32 znakov v celoti, 16 v 1. st liniji in še 16 v 2 nd liniji. JHD162 je LCD LCD s 16x2 znaki v modulu. 16x2 LCD smo že povezali z 8051, AVR, Arduino itd. Vse naše 16x2 povezane LCD zasnove najdete na tej povezavi.
Pred nadaljevanjem se bomo pogovorili o PI GPIO.
V Raspberry Pi 2 je 40 izhodnih zatičev GPIO. Toda od 40 je mogoče programirati le 26 zatičev GPIO (GPIO2 do GPIO27). Nekateri od teh zatičev opravljajo nekatere posebne funkcije. Ob posebnem GPIO, ki je na strani, imamo še 17 GPIO.
Na plošči so + 5V (Pin 2 ali 4) in + 3,3V (Pin 1 ali 17) izhodni moči, ti so za priključitev drugih modulov in senzorjev. Bomo moči za LCD 16 * 2 skozi železniški + 5V. Na LCD lahko pošljemo nadzorni signal + 3,3 v, za delovanje LCD pa ga moramo napajati s + 5 V. LCD ne bo deloval s + 3,3 V.
Č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
- 16 * 2 LCD modul
- 1KΩ upor (2 kosa)
- 10K lonec
- 1000µF kondenzator
- Breadboard
Pojasnilo vezja in dela:
Kot je prikazano v vezju, smo Raspberry Pi povezali z LCD zaslonom, tako da smo priključili 10 GPIO zatičev PI na 16 * 2 LCD-jeve nadzorne in prenosne podatke. Kot bajt smo uporabili GPIO Pin 21, 20, 16, 12, 25, 24, 23 in 18 in ustvarili funkcijo 'PORT' za pošiljanje podatkov na LCD. Tu je GPIO 21 LSB (najmanj pomemben bit), GPIO18 pa MSB (najpomembnejši bit).
LCD-modul 16x2 ima 16 nožic, ki jih lahko razdelimo v pet kategorij, napajalniki, kontrastni zatiči, kontrolni zatiči, podatkovni zatiči in zatiči z osvetlitvijo. Tu je kratek opis zanje:
Kategorija |
Pin NO. |
Pripnite ime |
Funkcija |
Napajalni zatiči |
1. |
VSS |
Ground Pin, povezan z Ground |
2. |
VDD ali Vcc |
Napetostni pin + 5V |
|
Kontrastni pin |
3. |
V0 ali VEE |
Nastavitev kontrasta, priključen na Vcc skozi spremenljiv upor. |
Kontrolni zatiči |
4. |
RS |
Register Izberi pin, RS = 0 ukazni način, RS = 1 Podatkovni način |
5. |
RW |
Zatiči za branje / pisanje, RW = 0 Način pisanja, RW = 1 način branja |
|
6. |
E |
Omogoči, LCD mora biti omogočen z visokim do nizkim impulzom |
|
Podatkovni zatiči |
7-14 |
D0-D7 |
Podatkovni zatiči, shrani podatke za prikaz na LCD-prikazovalniku ali navodila za ukaz |
Zatiči za osvetlitev ozadja |
15. |
LED + ali A |
Za napajanje osvetlitve ozadja + 5V |
16. |
LED- ali K |
Osvetlitev ozemljitve |
Toplo priporočamo, da si ogledate ta članek, da boste razumeli LCD, ki deluje s svojimi ukazi Pins in Hex.
Na kratko bomo obravnavali postopek pošiljanja podatkov na LCD:
1. E je nastavljeno visoko (omogočanje modula), RS pa nizko (na LCD-ju je zapisano, da damo ukaz)
2. Dajanje vrednosti 0x01 v podatkovna vrata kot ukaz za čiščenje zaslona.
3. E je nastavljeno visoko (omogočanje modula), RS pa visoko (na LCD-ju je zapisano, da podajamo podatke)
4. Prikazati je treba dokazovanje kode ASCII za znake.
5. E je nastavljeno na nizko (na LCD-prikazovalniku povemo, da smo s pošiljanjem podatkov končali)
6. Ko se ta E-pin spusti, LCD obdela prejete podatke in prikaže ustrezen rezultat. Torej je ta pin pred pošiljanjem podatkov nastavljen na visoko in po pošiljanju spuščen na tla.
Kot rečeno, bomo znake pošiljali enega za drugim. Na znaki so imeli LCD, ki ga ASCII kod (ameriški standardni nabor za izmenjavo informacij). Tabela kod ASCII je prikazana spodaj. Če želimo na primer prikazati znak "@", moramo poslati šestnajstiško kodo "40". Če LCD-ju damo vrednost 0x73, bo prikazal »s«. Tako bomo na LCD-prikazovalnik poslali ustrezne kode za prikaz niza " CIRCUITDIGEST ".
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 10 GPIO nožic.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
medtem ko se ukaz 1: uporablja kot zanka za vedno, se s tem ukazom stavki znotraj te zanke izvajajo neprekinjeno.
Vse druge funkcije in ukazi so razloženi v spodnjem razdelku "Koda" s pomočjo "Komentarji".
Po pisanju programa in njegovem izvajanju Raspberry Pi pošlje znake na LCD enega za drugim in LCD jih prikaže na zaslonu.