- Componenten vereist
- Schakelschema
- Fabricage printplaat voor Raspberry Pi RGB LCD HAT met EasyEDA
- Online PCB-samples berekenen en bestellen met EasyEDA
- Raspberry Pi Setup voor LCD Hat
- Python-code voor Raspberry Pi LCD HAT
- Het testen van de Raspberry Pi RGB LCD HAT
Raspberry Pi-hoeden zijn hetzelfde als schilden voor Arduino, ze passen direct op de Raspberry Pi en hebben geen verdere aansluitingen nodig. Hier gaan we een RGB LCD Hat bouwen voor Raspberry Pi op PCB. Deze LCD Hat bestaat uit een 16x2 LCD-module, vijf schakelaars en drie NeoPixel LED's. Hier worden schakelaars gebruikt om de tekst op het display te veranderen en worden NeoPixel LED's gebruikt als indicatoren. Deze schakelaars en Neo Pixels kunnen worden geprogrammeerd volgens de vereisten, zoals schakelaars kunnen worden gebruikt om sensorwaarden weer te geven zoals temperatuur, vochtigheid, enz. En Neo-pixels kunnen worden gebruikt om de status weer te geven zoals Rood om een fout aan te geven en groen tijdens het ontvangen van gegevens.
Hier gebruiken we EasyEDA online software om het circuit en de printplaat voor deze Pi HAT te ontwerpen, en JLCPCB om de printplaten te bestellen.
Componenten vereist
- Raspberry Pi 4
- 16 * 2 LCD-weergavemodule
- Neo-pixel leds (3)
- Condensatoren
- Schakelaars (5)
Schakelschema
Het complete schakelschema voor Raspberry Pi RGB LCD HAT wordt hieronder weergegeven. Het schema is getekend met EasyEDA. Zoals u kunt zien, koppelen we een 16x2 LCD-module, 3 NeoPixel-LED's en 5 schakelaars met Raspberry Pi. Een connector wordt ook gebruikt om de NeoPixel-LED's in of uit te schakelen.
Fabricage printplaat voor Raspberry Pi RGB LCD HAT met EasyEDA
Bij het ontwerpen van de PCB voor Raspberry Pi RGB LCD HAT was het de meest uitdagende onderdeel om de footprint goed te krijgen. Als de maatvoering fout gaat, passen de componenten niet op de print. Maar gelukkig biedt EasyEDA footprints voor bijna alle componenten op de markt. Dit komt door de enorme gebruikersgemeenschap waar gebruikers voetafdrukken maken en deze beschikbaar maken voor het publiek om deze in hun projecten te gebruiken.
EasyEDA is een online EDA-tool die ik eerder vaak heb gebruikt en die ik erg handig vond om te gebruiken, omdat het een goede verzameling footprints heeft en open-source is. Na het ontwerpen van de PCB, kunnen we de PCB-monsters bestellen via hun goedkope PCB-fabricagediensten - JLCPCB. Ze bieden ook services voor het sourcen van componenten waar ze een grote voorraad elektronische componenten hebben, en gebruikers kunnen hun vereiste componenten samen met de PCB-bestelling bestellen.
Tijdens het ontwerpen van de circuits en PCB's, kunt u ook uw circuit en PCB-ontwerpen openbaar maken, zodat andere gebruikers ze kunnen kopiëren of bewerken en kunnen profiteren van uw werk.We hebben dit Pi RGB LCD-hoedontwerp ook openbaar gemaakt, kijk hieronder koppeling:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
U kunt elke laag (bovenzijde, onderzijde, bovenzijde, onderzijde, etc.) van de printplaat bekijken door de laag te selecteren in het venster 'Lagen'. Afgezien hiervan bieden ze ook een 3D-modelweergave van de PCB over hoe deze eruit zou zien na fabricage. De momentopname van de bovenste laag en de onderste laag van de LCD HAT zou er ongeveer zo uitzien:
Online PCB-samples berekenen en bestellen met EasyEDA
Nadat u het ontwerp van deze PI RGB LCD HAT heeft afgerond, kunt u de print bestellen via JLCPCB.com. Om de print bij JLCPCB te bestellen heeft u Gerber File nodig. U kunt het Gerber-bestand downloaden via de onderstaande link:
- Gerber-bestand voor Raspberry Pi RGB LCD-hoed
Om de Gerber-bestanden van de PCB te genereren, klikt u gewoon op de knop Fabrication File genereren op de EasyEDA-editorpagina en downloadt u het Gerber-bestand van daaruit, of klikt u op Bestellen bij JLCPCB, zoals weergegeven in onderstaande afbeelding. Hiermee wordt u doorgestuurd naar JLCPCB.com, waar u het aantal te bestellen PCB's kunt selecteren, hoeveel koperlagen u nodig heeft, PCB-dikte, kopergewicht, PCB-kleur en andere PCB-parameters, zoals de onderstaande momentopname:
Nadat u op de knop ' Bestel bij JLCPCB' hebt geklikt, gaat u naar de JLCPCB-website, waar u de printplaat kunt bestellen tegen een zeer laag tarief, namelijk $ 2. Hun bouwtijd is ook erg kort, namelijk 48 uur met een levering van 3-5 dagen door DHL. U ontvangt uw printplaten binnen een week na bestelling.
Nadat u de print heeft besteld, kunt u de productievoortgang van uw print met datum en tijd controleren. U kunt het controleren door naar de accountpagina te gaan en op de link "Voortgang van de productie" onder de printplaat te klikken, zoals weergegeven in de onderstaande afbeelding.
Na een paar dagen PCB's te hebben besteld, kreeg ik de PCB-samples in een uitstekende verpakking, zoals te zien is op de onderstaande afbeeldingen.
Na te hebben gecontroleerd of de sporen en voetafdrukken correct waren. Ik ging verder met het monteren van de printplaat. Het volledig gesoldeerde bord ziet er als volgt uit:
Raspberry Pi Setup voor LCD Hat
Voordat u begint met programmeren, de Raspberry Pi, moet u eerst de Raspberry Pi updaten en een paar noodzakelijke bibliotheken installeren. Voer onderstaande opdrachten uit om Raspberry Pi bij te werken en te upgraden:
sudo apt-get update sudo apt-get upgrade
Installeer nu de Adafruit_Blinka-bibliotheek voor NeoPixel-leds. Adafruit_Blinka-bibliotheek biedt de CircuitPython-ondersteuning in Python.
sudo pip3 installeer adafruit-circuitpython-neopixel
Installeer daarna de Adafruit_CharLCD-bibliotheek voor de LCD-module. Deze bibliotheek is voor Adafruit LCD-borden, maar het werkt ook met LCD-borden van andere merken.
sudo pip3 installeer Adafruit-CharLCD
Python-code voor Raspberry Pi LCD HAT
Hier demonstreren we de RGB LCD-hoed voor Raspberry Pi door enkele schakelaars te gebruiken om bepaalde waarden op de LCD-module en RGB-LED's als indicatoren weer te geven. We moeten de Raspberry Pi dus zo programmeren dat wanneer we op een schakelaar drukken, deze enkele sensorwaarden of andere waarden moet weergeven.
De volledige python-code staat aan het einde van de pagina. Hier leggen we de code stap voor stap uit.
Start de code door alle vereiste bibliotheken te importeren.
importeer RPi.GPIO als GPIO importeer neopixel importeer tijd importeer bord importeer Adafruit_CharLCD als LCD
Definieer daarna alle GPIO-pinnen waarop het LCD-scherm en andere schakelaars zijn aangesloten.
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
Definieer nu de GPIO-modus met behulp van de BCM-modus. U kunt het ook wijzigen in BOARD. Definieer vervolgens alle schakelpennen als ingangen.
GPIO.setmode (GPIO.BCM) # Gebruik BCM GPIO-nummers GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.IN)
Definieer daarna de GPIO-pin waarop de Neo Pixel-LED's zijn aangesloten. Definieer vervolgens het aantal Neo Pixel-LED's. Hier worden drie LED's gebruikt, u kunt deze aanpassen aan uw behoeften.
pixel_pin = board.D21 aantal_pixels = 3
Wijs nu in de functie lcddisplay () een bepaalde taak toe aan elke schakelaar. Wanneer hier bijvoorbeeld de eerste schakelaar wordt ingedrukt, moet de Raspberry Pi 'OMHOOG' weergeven op het LCD-scherm en wanneer de tweede schakelaar wordt ingedrukt, moet deze 'OMLAAG' weergeven op het LCD-scherm enzovoort voor de andere twee knoppen.
In plaats van iets op een LCD af te drukken, kunt u deze schakelaars gebruiken om een andere taak uit te voeren. U kunt bijvoorbeeld schakelaar1 gebruiken om de temperatuurwaarde weer te geven, schakelaar2 om vochtigheidswaarden weer te geven en schakelaar 3 om drukwaarden weer te geven, enz.
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')
Nu in de while true loop, wordt de pixel.fill- functie gebruikt om de Neo Pixels in verschillende kleuren op te lichten. Dus de Pi is geprogrammeerd om de Neo Pixels met roodgroene en blauwe kleuren elk een seconde op te lichten.
U kunt deze Neo Pixels ook als indicatoren gebruiken. U kunt bijvoorbeeld één Neo Pixel met rode kleur oplichten om aan te geven dat de Pi is aangesloten op de stroombron of u kunt andere LED's gebruiken om aan te geven dat de Pi de gegevens ontvangt of verzendt, enz.
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)
Het testen van de Raspberry Pi RGB LCD HAT
Na het monteren van het LCD-scherm en het aansluiten op de Raspberry Pi, zijn we helemaal klaar om deze PI RGB LCD-HAT te gebruiken. Voer daarvoor de python-code uit met behulp van de onderstaande opdracht.
python code_filename.py
Druk nu op de schakelaars. Wanneer u op de SW0-schakelaar drukt, moet deze 'UP' op het LCD-scherm afdrukken. Voor de SW2-schakelaar moet deze 'Omlaag' afdrukken en hetzelfde voor de rest van de schakelaars.
Een volledige werkende video samen met Python-code wordt hieronder gegeven.