- Componenti richiesti
- Schema elettrico
- Fabbricazione di PCB per Raspberry Pi RGB LCD HAT utilizzando EasyEDA
- Calcolo e ordinazione di campioni di PCB online utilizzando EasyEDA
- Configurazione Raspberry Pi per LCD Hat
- Codice Python per Raspberry Pi LCD HAT
- Testare il CAPPELLO LCD Raspberry Pi RGB
I cappelli Raspberry Pi sono gli stessi degli scudi per Arduino, possono adattarsi direttamente alla parte superiore di Raspberry Pi e non richiedono ulteriori connessioni. Qui costruiremo un cappello LCD RGB per Raspberry Pi su PCB. Questo LCD Hat è composto da un modulo LCD 16x2, cinque interruttori e tre LED NeoPixel. Qui gli interruttori sono usati per cambiare il testo sul display ei LED NeoPixel sono usati come indicatori. Questi interruttori e Neo Pixel possono essere programmati in base ai requisiti come gli interruttori possono essere utilizzati per visualizzare i valori del sensore come temperatura, umidità, ecc. E Neo pixel possono essere utilizzati per visualizzare lo stato come il rosso per indicare un errore e il verde durante la ricezione di alcuni dati.
Qui useremo il software online EasyEDA per progettare il circuito e il PCB per questo Pi HAT e JLCPCB per ordinare i PCB.
Componenti richiesti
- Raspberry Pi 4
- Modulo display LCD 16 * 2
- LED neo-pixel (3)
- Condensatori
- Interruttori (5)
Schema elettrico
Di seguito è mostrato lo schema circuitale completo per Raspberry Pi RGB LCD HAT. Lo schema è stato disegnato utilizzando EasyEDA. Come puoi vedere, stiamo interfacciando un modulo LCD 16x2, 3 LED NeoPixel e 5 Switch con Raspberry Pi. Un connettore viene utilizzato anche per abilitare o disabilitare i LED NeoPixel.
Fabbricazione di PCB per Raspberry Pi RGB LCD HAT utilizzando EasyEDA
Durante la progettazione del PCB per Raspberry Pi RGB LCD HAT, la parte più impegnativa è stata ottenere l'impronta giusta. Se le dimensioni vanno male, i componenti non si adatteranno al PCB. Ma abbastanza fortunato, EasyEDA fornisce le impronte per quasi tutti i componenti sul mercato. Ciò è dovuto alla sua vasta comunità di utenti in cui gli utenti creano impronte e le rendono disponibili al pubblico per utilizzarle nei loro progetti.
EasyEDA è uno strumento EDA online che ho utilizzato in precedenza molte volte e l'ho trovato molto comodo da usare poiché ha una buona raccolta di impronte ed è open source. Dopo aver progettato il PCB, possiamo ordinare i campioni di PCB tramite i loro servizi di fabbricazione di PCB a basso costo - JLCPCB. Offrono anche servizi di approvvigionamento di componenti in cui hanno un ampio stock di componenti elettronici e gli utenti possono ordinare i componenti richiesti insieme all'ordine PCB.
Durante la progettazione di circuiti e PCB, puoi anche rendere pubblici i tuoi circuiti e progetti PCB in modo che altri utenti possano copiarli o modificarli e possano trarre vantaggio dal tuo lavoro, abbiamo anche reso pubblico questo design Pi RGB LCD Hat, controlla quanto segue collegamento:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
È possibile visualizzare qualsiasi strato (superiore, inferiore, seta superiore, seta inferiore, ecc.) Del PCB selezionando lo strato dalla finestra "Livelli". Oltre a questo, forniscono anche una vista del modello 3D del PCB su come apparirebbe dopo la fabbricazione. L'istantanea dello strato superiore e dello strato inferiore dell'LCD HAT sarebbe simile a questa:
Calcolo e ordinazione di campioni di PCB online utilizzando EasyEDA
Dopo aver completato il design di questo CAPPELLO LCD PI RGB, è possibile ordinare il PCB tramite JLCPCB.com. Per ordinare il PCB da JLCPCB, è necessario Gerber File. Puoi scaricare il file Gerber dal link sottostante:
- File Gerber per cappello LCD Raspberry Pi RGB
Per generare i file Gerber del PCB, è sufficiente fare clic sul pulsante Genera file di fabbricazione nella pagina dell'editor EasyEDA, quindi scaricare il file Gerber da lì o fare clic su Ordina su JLCPCB come mostrato nell'immagine sottostante. Questo ti reindirizzerà a JLCPCB.com, dove puoi selezionare il numero di PCB da ordinare, quanti strati di rame ti servono, spessore del PCB, peso del rame, colore del PCB e altri parametri PCB, come l'istantanea mostrata di seguito:
Dopo aver fatto clic sul pulsante " Order at JLCPCB" , verrai reindirizzato al sito Web di JLCPCB, dove potrai ordinare il PCB a un prezzo molto basso, ovvero $ 2. Anche il loro tempo di costruzione è molto inferiore, ovvero 48 ore con consegna DHL di 3-5 giorni. Riceverai i tuoi PCB entro una settimana dall'ordine.
Dopo aver ordinato il PCB, puoi controllare lo stato di avanzamento della produzione del tuo PCB con data e ora. Puoi verificarlo andando sulla pagina Account e facendo clic sul collegamento "Avanzamento produzione" sotto il PCB come mostrato nell'immagine sottostante.
Dopo alcuni giorni di ordine di PCB, ho ricevuto i campioni di PCB in un imballaggio eccellente, come mostrato nelle immagini sottostanti.
Dopo esserti assicurato che le tracce e le impronte fossero corrette. Ho proceduto con l'assemblaggio del PCB. La scheda completamente saldata si presenta come la seguente:
Configurazione Raspberry Pi per LCD Hat
Prima di iniziare la programmazione, il Raspberry Pi, aggiorna prima il Raspberry Pi e installa alcune librerie necessarie. Esegui i seguenti comandi per aggiornare e aggiornare Raspberry Pi:
sudo apt-get update sudo apt-get upgrade
Ora installa la libreria Adafruit_Blinka per LED NeoPixel. La libreria Adafruit_Blinka fornisce il supporto CircuitPython in Python.
sudo pip3 installa adafruit-circuitpython-neopixel
Successivamente, installa la libreria Adafruit_CharLCD per il modulo LCD. Questa libreria è per schede LCD Adafruit, ma funziona anche con schede LCD di altre marche.
sudo pip3 installa Adafruit-CharLCD
Codice Python per Raspberry Pi LCD HAT
Qui stiamo dimostrando il cappello LCD RGB per Raspberry Pi utilizzando pochi interruttori per mostrare alcuni valori particolari sul modulo LCD e LED RGB come indicatori. Quindi dobbiamo programmare il Raspberry Pi in modo che quando premiamo un interruttore, dovrebbe mostrare alcuni valori del sensore o altri valori.
Il codice Python completo è fornito alla fine della pagina. Qui stiamo spiegando il codice passo dopo passo.
Avvia il codice importando tutte le librerie richieste.
importa RPi.GPIO come GPIO importa neopixel importa ora importa scheda importa Adafruit_CharLCD come LCD
Dopodiché, definisci tutti i pin GPIO a cui sono collegati l'LCD e gli altri interruttori.
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
Ora, definisci la modalità GPIO utilizzando la modalità BCM. Puoi anche cambiarlo in BOARD. Quindi definire tutti i pin dell'interruttore come ingressi.
GPIO.setmode (GPIO.BCM) # Usa numeri GPIO BCM GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.IN)
Successivamente, definisci il pin GPIO a cui sono collegati i LED Neo Pixel. Quindi definire il numero di LED Neo Pixel. Qui vengono utilizzati tre LED, è possibile modificarli in base alle proprie esigenze.
pixel_pin = board.D21 num_pixels = 3
Ora all'interno della funzione lcddisplay () , assegna un compito particolare a ogni switch. Ad esempio, qui quando viene premuto il primo interruttore, Raspberry Pi dovrebbe visualizzare "SU" sull'LCD e quando viene premuto il secondo interruttore, dovrebbe visualizzare "GIÙ" sull'LCD e così via per gli altri due pulsanti.
Invece di stampare qualcosa su un LCD, puoi utilizzare questi interruttori per eseguire un'attività diversa. Ad esempio, è possibile utilizzare switch1 per visualizzare il valore di temperatura, switch2 per visualizzare i valori di umidità e switch 3 per visualizzare i valori di pressione, ecc.
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 ('LEFT') if (GPIO.input (sw4) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('RIGHT')
Ora all'interno del while true loop, la funzione pixels.fill viene utilizzata per illuminare i Neo Pixel in diversi colori. Quindi il Pi è programmato per illuminare i Neo Pixel con il colore Rosso Verde e Blu per un secondo ciascuno.
Puoi anche usare questi Neo Pixel come indicatori. Ad esempio, puoi accendere un Neo Pixel con il colore rosso per indicare che il Pi è collegato alla fonte di alimentazione oppure puoi utilizzare altri LED per indicare che il Pi sta ricevendo o inviando i dati, ecc.
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)) pixel.show () time.sleep (1) rainbow_cycle (0.001)
Testare il CAPPELLO LCD Raspberry Pi RGB
Dopo aver assemblato l'LCD e averlo interfacciato con Raspberry Pi, siamo pronti per utilizzare questo CAP LCD PI RGB. Per questo, esegui il codice python usando il comando seguente.
nomefile_codice.py python
Ora premi gli interruttori. Quando si preme l'interruttore SW0, dovrebbe stampare "UP" sull'LCD. Per l'interruttore SW2, dovrebbe stampare "Giù" e lo stesso per il resto degli interruttori.
Di seguito viene fornito un video funzionante completo insieme al codice Python.