„Raspberry Pi“ yra ARM architektūros procesoriaus plokštė, skirta elektronikos inžinieriams ir mėgėjams. PI yra viena iš labiausiai patikimų projektų kūrimo platformų. Turėdamas didesnį procesoriaus greitį ir 1 GB RAM, PI gali būti naudojamas daugeliui aukšto lygio projektų, tokių kaip Vaizdo apdorojimas ir IoT.
Norint atlikti bet kurį iš aukšto rango projektų, reikia suprasti pagrindines PI funkcijas. Šiose pamokose aptarsime visas pagrindines „Raspberry Pi“ funkcijas. Kiekvienoje pamokoje aptarsime vieną iš PI funkcijų. Šios „Raspberry Pi Tutorial“ serijos pabaigoje galėsite patys atlikti aukšto lygio projektus. Peržiūrėkite žemiau esančias pamokas:
- Darbo pradžia naudojant „Raspberry Pi“
- Aviečių Pi konfigūracija
- LED mirksi
- Mygtukų sąsajos
- PWM karta
- Nuolatinės srovės variklio valdymas
- Žingsninio variklio valdymas
- Sąveikaujantis pamainų registras
- Raspberry Pi ADC pamoka
- Servo variklio valdymas
- Talpinis jutiklinis kilimėlis
Šioje pamokoje mes valdysime 16x2 LCD ekraną naudodami „Raspberry Pi“. Mes prijungsime skystųjų kristalų ekraną prie GPIO (bendrosios paskirties įvesties išvesties) kaiščių, kad jame būtų rodomi simboliai. Parašysime programą PYTHON, kad per GPIO išsiųstume atitinkamas komandas į LCD ir rodytume reikiamus simbolius jo ekrane. Šis ekranas bus naudingas rodyti jutiklio vertes, pertraukimo būseną ir laiko rodymą.
Rinkoje yra įvairių tipų LCD. Grafinis LCD yra sudėtingesnis nei 16x2 LCD. Taigi čia mes ketiname naudoti 16x2 LCD ekraną, jei norite, netgi galite naudoti 16x1 LCD ekraną. 16x2 skystųjų kristalų turi 32 simbolių iš viso 16 1 -ojo linija, o kitas 16 2 -osios linija. JHD162 yra 16x2 LCD modulio simbolių LCD. Mes jau sujungėme 16x2 skystųjų kristalų ekraną su 8051, AVR, „Arduino“ ir kt. Visus mūsų su 16x2 skystųjų kristalų projektais galite rasti spustelėdami šią nuorodą.
Prieš tęsdami, šiek tiek aptarsime apie PI GPIO.
„Raspberry Pi 2“ yra 40 GPIO išvesties kaiščių. Bet iš 40 galima užprogramuoti tik 26 GPIO kaiščius (nuo GPIO2 iki GPIO27). Kai kurie iš šių kaiščių atlieka tam tikras specialias funkcijas. Atidėjus specialų GPIO, liko 17 GPIO.
Lentoje yra + 5 V (2 arba 4 kaištis) ir + 3,3 V (1 arba 17 kaištis) maitinimo kaiščiai, skirti kitiems moduliams ir jutikliams sujungti. Maitinsime 16 * 2 skystųjų kristalų ekraną per + 5 V bėgį. Mes galime išsiųsti + 3,3 V valdymo signalą į LCD, tačiau norint, kad LCD veiktų, jį reikia maitinti + 5 V įtampa. Skystųjų kristalų ekranas neveiks esant + 3,3 V įtampai.
Norėdami sužinoti daugiau apie GPIO kaiščius ir jų dabartinius išėjimus, pereikite: LED mirksi su Raspberry Pi
Būtini komponentai:
Čia mes naudojame „ Raspberry Pi 2 Model B“ su „Raspbian Jessie OS“. Visi pagrindiniai aparatūros ir programinės įrangos reikalavimai buvo aptarti anksčiau, jų galite rasti „Raspberry Pi“ įvade, išskyrus mums reikalingą:
- Jungiamieji kaiščiai
- 16 * 2 skystųjų kristalų modulis
- 1KΩ rezistorius (2 vnt.)
- 10K puodas
- 1000µF kondensatorius
- Bandomoji Lenta
Grandinės ir darbo paaiškinimas:
Kaip parodyta grandinės schemoje, mes turime „ Raspberry Pi“ sąsają su LCD ekranu, sujungdami 10 PI GPIO kaiščių su 16 * 2 LCD valdymo ir duomenų perdavimo kaiščiais. Mes naudojome GPIO Pin 21, 20, 16, 12, 25, 24, 23 ir 18 kaip BYTE ir sukūrėme „PORT“ funkciją duomenims siųsti į LCD. Čia GPIO 21 yra LSB (mažiausiai reikšmingas bitas), o GPIO18 yra MSB (reikšmingiausias bitas).
16x2 LCD modulis turi 16 kontaktų, kuriuos galima suskirstyti į penkias kategorijas: maitinimo kaiščiai, kontrasto kaištis, valdymo kaiščiai, duomenų kaiščiai ir apšvietimo kaiščiai. Čia yra trumpas jų aprašymas:
Kategorija |
PIN Nr. |
PIN vardas |
Funkcija |
Maitinimo kaiščiai |
1 |
VSS |
Įžeminimo kaištis, prijungtas prie žemės |
2 |
VDD arba Vcc |
Įtampos kaištis + 5V |
|
Kontrasto kaištis |
3 |
V0 arba VEE |
Kontrasto nustatymas, prijungtas prie Vcc, kintamuoju rezistoriumi. |
Valdymo kaiščiai |
4 |
RS |
Registruotis Pasirinkite PIN kodą, RS = 0 komandos režimas, RS = 1 duomenų režimas |
5 |
RW |
Skaitymo / rašymo kaištis, RW = 0 rašymo režimas, RW = 1 skaitymo režimas |
|
6 |
E |
Įgalinti, nuo didelio iki mažo pulso reikia įjungti skystųjų kristalų ekraną |
|
Duomenų kaiščiai |
7–14 |
D0-D7 |
Duomenų kaiščiai, saugo duomenis, kurie turi būti rodomi LCD ekrane, arba komandų instrukcijas |
Apšvietimo kaiščiai |
15 |
LED + arba A |
Norėdami maitinti apšvietimą + 5V |
16 |
LED arba K |
Apšvietimo žemė |
Mes primygtinai rekomenduojame tiesiog perskaityti šį straipsnį, kad suprastumėte skystųjų kristalų ekraną, veikiantį su jo kaiščių ir šešiakampių komandomis.
Trumpai aptarsime duomenų siuntimo į LCD procesą:
1. E yra nustatytas aukštai (įjungus modulį), o RS nustatytas žemai (nurodant LCD mes duodame komandą)
2. Duomenų prievadui 0x01 vertės suteikimas kaip komanda išvalyti ekraną.
3. E yra nustatytas aukštai (įjungus modulį), o RS - aukštai (pasakant LCD, kad mes teikiame duomenis)
4. Reikia parodyti ASCII kodą simboliams.
5. E nustatytas žemai (LCD praneša, kad mes baigėme siųsti duomenis)
6. Kai šis E kaištis bus žemas, LCD apdoros gautus duomenis ir parodys atitinkamą rezultatą. Taigi, prieš siųsdami duomenis, šis kaištis yra nustatytas aukštai, o išsiunčiant duomenis - žemėje.
Kaip sakyta, simbolius siųsime vienas po kito. Į simboliai skiriamas LCD pagal ASCII kodus (Amerikos standartinis informacinių mainų kodas). ASCII kodų lentelė parodyta žemiau. Pavyzdžiui, norėdami parodyti simbolį „@“, turime išsiųsti šešioliktainį kodą „40“. Jei skystųjų kristalų ekranui suteiksime vertę 0x73, bus rodoma „s“. Tokiu būdu mes išsiųsime atitinkamus kodus į LCD, kad būtų rodoma eilutė „ CIRCUITDIGEST “.
Programavimo paaiškinimas:
Kai viskas bus prijungta pagal grandinės schemą, mes galime įjungti PI, kad programa būtų parašyta PYHTON.
Kalbėsime apie keletą komandų, kurias ketiname naudoti PYHTON programoje, Mes ketiname importuoti GPIO failą iš bibliotekos, žemiau pateikta funkcija leidžia mums užprogramuoti PI GPIO kaiščius. Mes taip pat pervadiname „GPIO“ į „IO“, todėl programoje, kai norime nurodyti GPIO kaiščius, naudosime žodį „IO“.
importuoti RPi.GPIO kaip IO
Kartais, kai GPIO kaiščiai, kuriuos bandome naudoti, gali atlikti kitas funkcijas. Tokiu atveju vykdydami programą gausime įspėjimus. Žemiau komanda liepia PI nepaisyti įspėjimų ir tęsti programą.
IO.setwarnings (False)
Mes galime nurodyti PI GPIO kaiščius pagal PIN kodą laive arba pagal jų funkcijos numerį. Kaip lentoje esantis „PIN 29“ yra „GPIO5“. Taigi mes sakome, kad čia mes smeigtuką atvaizduosime „29“ arba „5“.
IO.setmode (IO.BCM)
Mes nustatome 10 GPIO kontaktų kaip išvesties kaiščius LCD duomenų ir valdymo kaiščiams.
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)
o 1: komanda naudojama kaip amžinai kilpa, su šia komanda šios kilpos viduje esantys teiginiai bus vykdomi nuolat.
Visos kitos funkcijos ir komandos buvo paaiškintos žemiau skyriuje „Kodas“, naudojant „Komentarus“.
Parašęs programą ir ją įvykdęs, „ Raspberry Pi“ siunčia simbolius į LCD po vieną ir LCD rodo simbolius ekrane.