- Componente necesare
- Diagrama circuitului
- Fabricarea PCB-ului pentru Raspberry Pi RGB LCD HAT folosind EasyEDA
- Calcularea și comandarea probelor de PCB online folosind EasyEDA
- Configurare Raspberry Pi pentru pălărie LCD
- Cod Python pentru Raspberry Pi LCD HAT
- Testarea Raspberry Pi RGB LCD HAT
Pălăriile Raspberry Pi sunt la fel ca scuturile pentru Arduino, se pot potrivi direct pe partea superioară a Raspberry Pi și nu necesită alte conexiuni. Aici vom construi o pălărie LCD RGB pentru Raspberry Pi pe PCB. Această pălărie LCD este formată dintr-un modul LCD 16x2, cinci comutatoare și trei LED-uri NeoPixel. Aici comutatoarele sunt utilizate pentru a schimba textul afișat și LED-urile NeoPixel sunt utilizate ca indicatori. Aceste comutatoare și Neo Pixeli pot fi programate în funcție de cerințe, cum ar fi comutatoarele care pot fi utilizate pentru a afișa valorile senzorilor, cum ar fi temperatura, umiditatea, etc.
Aici vom folosi software-ul online EasyEDA pentru a proiecta circuitul și PCB-ul pentru acest Pi HAT și JLCPCB pentru a comanda PCB-urile.
Componente necesare
- Raspberry Pi 4
- Modul de afișaj LCD 16 * 2
- LED-uri Neo-pixel (3)
- Condensatoare
- Comutatoare (5)
Diagrama circuitului
Schema completă a circuitului pentru Raspberry Pi RGB LCD HAT este prezentată mai jos. Schema a fost desenată folosind EasyEDA. După cum puteți vedea, interfațăm un modul LCD de 16x2, 3 LED-uri NeoPixel și 5 comutatoare cu Raspberry Pi. Un conector este, de asemenea, utilizat pentru a activa sau dezactiva LED-urile NeoPixel.
Fabricarea PCB-ului pentru Raspberry Pi RGB LCD HAT folosind EasyEDA
În timp ce proiectam PCB-ul pentru Raspberry Pi RGB LCD HAT, cea mai dificilă parte a fost corectarea amprentei. Dacă dimensiunile merg greșit, atunci componentele nu se vor potrivi pe PCB. Dar, din fericire, EasyEDA oferă amprente pentru aproape toate componentele de pe piață. Acest lucru se datorează vastei sale comunități de utilizatori în care utilizatorii creează amprente și o pun la dispoziția publicului pentru ao utiliza în proiectele lor.
EasyEDA este un instrument EDA online pe care l-am folosit anterior de multe ori și mi s-a părut foarte convenabil de utilizat, deoarece are o colecție bună de amprente și este open-source. După proiectarea PCB-ului, putem comanda probele PCB-urilor prin serviciile lor de fabricare a PCB-urilor ieftine - JLCPCB. De asemenea, oferă servicii de aprovizionare a componentelor în cazul în care au un stoc mare de componente electronice, iar utilizatorii pot comanda componentele necesare împreună cu comanda PCB.
În timp ce proiectați circuitele și PCB-urile, puteți, de asemenea, să vă faceți circuitele și PCB-urile să fie publice, astfel încât ceilalți utilizatori să le poată copia sau edita și să beneficieze de munca dvs., de asemenea, am făcut public acest design Pi RGB LCD Hat, verificați legătură:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
Puteți vizualiza orice strat (de sus, de jos, de top, mătase de jos etc.) al PCB-ului selectând stratul din fereastra „Straturi”. În afară de aceasta, ele oferă, de asemenea, o vedere 3D a modelului PCB despre modul în care ar apărea după fabricare. Instantaneul stratului superior și al stratului inferior al ecranului LCD HAT ar arăta cam așa:
Calcularea și comandarea probelor de PCB online folosind EasyEDA
După finalizarea designului acestui HAT LCD RGB PI, puteți comanda PCB-ul prin JLCPCB.com. Pentru a comanda PCB-ul de la JLCPCB, aveți nevoie de Gerber File. Puteți descărca fișierul Gerber de pe linkul de mai jos:
- Fișier Gerber pentru Raspberry Pi RGB LCD Hat
Pentru a genera fișierele Gerber ale PCB-ului, trebuie doar să faceți clic pe butonul Generați fișierul de fabricație de pe pagina editorului EasyEDA, apoi descărcați fișierul Gerber de acolo sau faceți clic pe Comandă la JLCPCB așa cum se arată în imaginea de mai jos. Acest lucru vă va redirecționa către JLCPCB.com, unde puteți selecta numărul de PCB-uri de comandat, câte straturi de cupru aveți nevoie, grosimea PCB-ului, greutatea cuprului, culoarea PCB-ului și alți parametri PCB, cum ar fi instantaneul prezentat mai jos:
După ce faceți clic pe butonul „ Comandați la JLCPCB” , acesta vă va duce la site-ul web JLCPCB, unde puteți comanda PCB la o rată foarte mică, care este de 2 USD. Timpul lor de construcție este, de asemenea, foarte redus, adică 48 de ore cu livrare DHL de 3-5 zile. Veți primi PCB-urile dvs. într-o săptămână de la comandă.
După ce ați comandat PCB-ul, puteți verifica progresul producției PCB-ului dvs. cu data și ora. Puteți să o verificați accesând pagina Contului și să faceți clic pe linkul „Progresul producției” de sub PCB așa cum se arată în imaginea de mai jos.
După câteva zile de comandare a PCB-urilor, am obținut probele de PCB într-un ambalaj excelent, așa cum se arată în imaginile de mai jos.
După ce ne-am asigurat că urmele și amprentele erau corecte. Am continuat cu asamblarea PCB-ului. Placa complet lipită arată ca cea de mai jos:
Configurare Raspberry Pi pentru pălărie LCD
Înainte de a începe programarea, Raspberry Pi, actualizează mai întâi Raspberry Pi și instalează câteva biblioteci necesare. Rulați comenzile de mai jos pentru a actualiza și actualiza Raspberry Pi:
sudo apt-get update sudo apt-get upgrade
Acum instalați biblioteca Adafruit_Blinka pentru LED-urile NeoPixel. Biblioteca Adafruit_Blinka oferă suportul CircuitPython în Python.
sudo pip3 instalează adafruit-circuitpython-neopixel
După aceea, instalați biblioteca Adafruit_CharLCD pentru modulul LCD. Această bibliotecă este pentru plăcile LCD Adafruit, dar funcționează și cu alte plăci LCD de marcă.
sudo pip3 instalează Adafruit-CharLCD
Cod Python pentru Raspberry Pi LCD HAT
Aici demonstrăm pălăria LCD RGB pentru Raspberry Pi utilizând câteva comutatoare pentru a afișa unele valori particulare pe modulul LCD și LED-urile RGB ca indicatori. Deci, trebuie să programăm Raspberry Pi într-un mod care, atunci când apăsăm un comutator, ar trebui să afișeze unele valori ale senzorului sau alte valori.
Codul complet Python este dat la sfârșitul paginii. Aici explicăm pas cu pas codul.
Porniți codul importând toate bibliotecile necesare.
import RPi.GPIO ca GPIO import neopixel timp de import import bord Adafruit_CharLCD ca LCD
După aceea, definiți toți pinii GPIO la care LCD-ul și alte comutatoare sunt conectate.
lcd_rs = 7 lcd_en = 8 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 lcd_backlight = 2 sw0 = 5 sw2 = 13 sw3 = 19 sw4 = 26
Acum, definiți modul GPIO utilizând modul BCM. De asemenea, îl puteți schimba în BOARD. Apoi definiți toți pinii comutatorilor ca intrări.
GPIO.setmode (GPIO.BCM) # Utilizați numerele BCM GPIO GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.ÎN)
După aceea, definiți pinul GPIO unde sunt conectate LED-urile Neo Pixel. Apoi definiți numărul LED-urilor Neo Pixel. Aici sunt folosite trei LED-uri, îl puteți schimba în funcție de nevoile dvs.
pixel_pin = board.D21 num_pixels = 3
Acum, în funcția lcddisplay () , atribuiți o anumită sarcină fiecărui comutator. De exemplu, aici, când este apăsat primul comutator, Raspberry Pi ar trebui să afișeze „SUS” pe LCD, iar când al doilea comutator este apăsat, ar trebui să afișeze „JOS” pe ecranul LCD și așa mai departe pentru celelalte două butoane.
În loc să imprimați ceva pe un LCD, puteți utiliza aceste comutatoare pentru a efectua o sarcină diferită. De exemplu, puteți utiliza comutatorul 1 pentru a afișa valoarea temperaturii, comutatorul 2 pentru a afișa valorile umidității și comutatorul 3 pentru a afișa valorile presiunii etc.
def lcddisplay (): if (GPIO.input (sw0) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('UP') if (GPIO.input (sw2) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('DOWN') if (GPIO.input (sw3) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('STÂNGA') if (GPIO.input (sw4) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('RIGHT')
Acum, în bucla timpului adevărat , funcția pixels.fill este utilizată pentru a aprinde Neo Pixels în diferite culori. Deci, Pi este programat să lumineze Neo Pixels cu roșu verde și albastru pentru o secundă fiecare.
De asemenea, puteți utiliza acești Neo Pixeli ca indicatori. De exemplu, puteți aprinde un Neo Pixel cu culoare roșie pentru a indica faptul că Pi este conectat la sursa de alimentare sau puteți utiliza alte LED-uri pentru a indica faptul că Pi recepționează sau trimite datele etc.
pixels.fill ((255, 0, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 255, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 0, 255)) pixels.show () time.sleep (1) rainbow_cycle (0.001)
Testarea Raspberry Pi RGB LCD HAT
După asamblarea ecranului LCD și interfațarea acestuia cu Raspberry Pi, suntem cu toții pregătiți să folosim acest HAT LCD PI RGB. Pentru aceasta, rulați codul python utilizând comanda de mai jos.
python code_filename.py
Acum apăsați butoanele. Când apăsați comutatorul SW0, acesta ar trebui să imprime „UP” pe ecranul LCD. Pentru comutatorul SW2, acesta ar trebui să tipărească „Jos” și același lucru pentru restul comutatoarelor.
Un videoclip complet de lucru împreună cu codul Python este prezentat mai jos.