- Необходими компоненти
- Електрическа схема
- Изработка на печатни платки за Raspberry Pi RGB LCD HAT с помощта на EasyEDA
- Изчисляване и поръчване на проби от печатни платки онлайн с помощта на EasyEDA
- Настройка на Raspberry Pi за LCD шапка
- Python код за Raspberry Pi LCD HAT
- Тестване на Raspberry Pi RGB LCD HAT
Raspberry Pi шапките са същите като щитовете за Arduino, те могат директно да се поберат в горната част на Raspberry Pi и не изискват допълнителни връзки. Тук ще изградим RGB LCD шапка за Raspberry Pi на печатни платки. Тази LCD шапка се състои от 16x2 LCD модул, пет превключвателя и три светодиода NeoPixel. Тук превключвателите се използват за промяна на текста на дисплея, а светодиодите NeoPixel се използват като индикатори. Тези превключватели и Neo Pixels могат да бъдат програмирани в съответствие с изискванията, като превключвателите могат да се използват за показване на стойности на сензора като температура, влажност и т.н., а Neo пикселите могат да се използват за показване на състояние като Red за индикация на някаква грешка и зелено при получаване на някои данни.
Тук ще използваме онлайн софтуера EasyEDA, за да проектираме схемата и печатната платка за този Pi HAT и JLCPCB за поръчка на печатни платки.
Необходими компоненти
- Raspberry Pi 4
- 16 * 2 LCD дисплеен модул
- Неопикселни светодиоди (3)
- Кондензатори
- Ключове (5)
Електрическа схема
Пълната схема на схемата за Raspberry Pi RGB LCD HAT е показана по-долу. Схемата е изчертана с помощта на EasyEDA. Както можете да видите, ние свързваме 16x2 LCD модул, 3 светодиода NeoPixel и 5 суича с Raspberry Pi. Също така се използва конектор за активиране или деактивиране на светодиодите NeoPixel.
Изработка на печатни платки за Raspberry Pi RGB LCD HAT с помощта на EasyEDA
Докато проектирахме печатната платка за Raspberry Pi RGB LCD HAT, най-предизвикателната част беше правилното отпечатване. Ако размерите се объркат, компонентите няма да се поберат на печатни платки. Но достатъчно късмет, EasyEDA осигурява отпечатъци за почти всички компоненти на пазара. Това се дължи на обширната му потребителска общност, където потребителите създават отпечатъци и го правят достъпно за обществеността, за да го използва в своите проекти.
EasyEDA е онлайн инструмент за EDA, който преди съм използвал много пъти и го е намерил за много удобен за използване, тъй като има добра колекция от отпечатъци и е с отворен код. След проектирането на печатни платки можем да поръчаме пробите на печатни платки чрез техните евтини услуги за производство на печатни платки - JLCPCB. Те също така предлагат услуги за снабдяване с компоненти, когато имат голям запас от електронни компоненти и потребителите могат да поръчат необходимите им компоненти заедно с поръчката на печатни платки.
Докато проектирате схеми и печатни платки, можете също да направите вашата схема и проектите на печатни платки публични, така че другите потребители да могат да ги копират или редактират и да се възползват от вашата работа, ние също направихме този дизайн на Pi RGB LCD Hat публичен, проверете по-долу връзка:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
Можете да видите всеки слой (отгоре, отдолу, горната част на коприната, долната коприна и т.н.) на печатната платка, като изберете слоя от прозореца „Слоеве“. Отделно от това, те също така предоставят изглед на 3D модела на печатната платка за това как тя ще изглежда след производството. Снимката на горния и долния слой на LCD HAT ще изглежда по следния начин:
Изчисляване и поръчване на проби от печатни платки онлайн с помощта на EasyEDA
След като завършите дизайна на тази PI RGB LCD HAT, можете да поръчате печатната платка чрез JLCPCB.com. За да поръчате печатната платка от JLCPCB, ви е необходим Gerber File. Можете да изтеглите файла Gerber от връзката по-долу:
- Файл Gerber за Raspberry Pi RGB LCD шапка
За да генерирате Gerber файлове на печатната платка, просто щракнете върху бутона Generate Fabrication File на страницата на редактора EasyEDA, след това изтеглете Gerber файла от там, или щракнете върху Order at JLCPCB, както е показано на изображението по-долу. Това ще ви пренасочи към JLCPCB.com, където можете да изберете броя на печатни платки, които да поръчате, колко медни слоя ви трябват, дебелина на печатни платки, тегло на медта, цвят на печатната платка и други параметри на печатната платка, като моментната снимка, показана по-долу:
След като щракнете върху бутона „ Поръчай в JLCPCB“ , той ще ви отведе до уебсайта на JLCPCB, където можете да поръчате PCB на много ниска цена, която е 2 $. Времето им за изграждане също е много по-малко, което е 48 часа при доставка на DHL от 3-5 дни. Ще получите вашите печатни платки в рамките на една седмица след поръчката.
След като поръчате печатната платка, можете да проверите производствения напредък на вашата печатна платка с дата и час. Можете да го проверите, като отидете на страницата на акаунта и кликнете върху връзката "Производствен ход" под печатната платка, както е показано на изображението по-долу.
След няколко дни поръчка на печатни платки, взех пробите на печатни платки в отлична опаковка, както е показано на снимките по-долу.
След като се уверих, че следите и следите са правилни. Продължих със сглобяването на печатната платка. Напълно споената дъска изглежда по-долу:
Настройка на Raspberry Pi за LCD шапка
Преди да започнете програмирането, Raspberry Pi, първо актуализирайте Raspberry Pi и инсталирайте няколко необходими библиотеки. Изпълнете командите по-долу, за да актуализирате и надстроите Raspberry Pi:
sudo apt-get актуализация sudo apt-get надстройка
Сега инсталирайте библиотеката Adafruit_Blinka за светодиодите NeoPixel. Библиотеката Adafruit_Blinka осигурява поддръжката на CircuitPython в Python.
sudo pip3 инсталира adafruit-circuitpython-neopixel
След това инсталирайте библиотеката Adafruit_CharLCD за LCD модула. Тази библиотека е за LCD платки Adafruit, но също така работи и с други платки LCD.
sudo pip3 инсталирайте Adafruit-CharLCD
Python код за Raspberry Pi LCD HAT
Тук демонстрираме RGB LCD шапката за Raspberry Pi, като използваме няколко превключвателя, за да покажем някои конкретни стойности на LCD модула и RGB светодиодите като индикатори. Затова трябва да програмираме Raspberry Pi по начин, че когато натискаме превключвател, той трябва да показва някои стойности на сензора или други стойности.
Пълният код на python е даден в края на страницата. Тук обясняваме кода стъпка по стъпка.
Стартирайте кода, като импортирате всички необходими библиотеки.
импортиране RPi.GPIO като GPIO импортиране неопиксел време за импортиране дъска за внос внос Adafruit_CharLCD като LCD
След това дефинирайте всички GPIO щифтове, където са свързани LCD и други превключватели.
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
Сега дефинирайте режима GPIO, като използвате режим BCM. Можете също да го промените на BOARD. След това дефинирайте всички щифтове на превключвателя като входове.
GPIO.setmode (GPIO.BCM) # Използвайте BCM GPIO номера GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.IN)
След това дефинирайте GPIO пина, където са свързани светодиодите Neo Pixel. След това дефинирайте броя на светодиодите на Neo Pixel. Тук се използват три светодиода, можете да го промените според вашите нужди.
pixel_pin = дъска.D21 num_pixels = 3
Сега във функцията lcddisplay () задайте определена задача на всеки превключвател. Например, тук, когато е натиснат първият превключвател, Raspberry Pi трябва да покаже „НАГОРЕ“ на LCD, а когато вторият превключвател е натиснат, той трябва да покаже „НАДОЛУ“ на LCD и така нататък за другите два бутона.
Вместо да отпечатвате нещо на LCD, можете да използвате тези превключватели, за да изпълните различна задача. Например можете да използвате превключвател1 за показване на стойност на температурата, превключвател2 за показване на стойности на влажност и превключвател 3 за показване на стойности на налягането и др
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')
Сега вътре в цикъл while true , функцията pixels.fill се използва за осветяване на Neo Pixels в различни цветове. Така Pi е програмиран да осветява Neo Pixels с червен зелен и син цвят за по една секунда.
Можете също да използвате тези Neo пиксели като индикатори. Например можете да осветите един Neo Pixel с червен цвят, за да покажете, че Pi е свързан към източника на захранване, или можете да използвате други светодиоди, които да показват, че Pi получава или изпраща данните и т.н.
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)
Тестване на Raspberry Pi RGB LCD HAT
След сглобяването на LCD и свързването му с Raspberry Pi, всички сме готови да използваме тази PI RGB LCD HAT. За това стартирайте кода на python, като използвате командата по-долу.
python code_filename.py
Сега натиснете превключвателите. Когато натиснете превключвателя SW0, той трябва да отпечата „НАГОРЕ“ на LCD. За превключвателя SW2 той трябва да отпечатва „Надолу“ и същото за останалите превключватели.
A пълен работен видео, заедно с кода на Питон е дадена по-долу.