- Необходимые компоненты
- Принципиальная электрическая схема
- Изготовление печатной платы для Raspberry Pi RGB LCD HAT с помощью EasyEDA
- Расчет и заказ образцов печатных плат онлайн с помощью EasyEDA
- Настройка Raspberry Pi для LCD Hat
- Код Python для Raspberry Pi LCD HAT
- Тестирование шляпы Raspberry Pi RGB LCD
Шляпы Raspberry Pi аналогичны щитам для Arduino, они могут устанавливаться непосредственно на верхнюю часть Raspberry Pi и не требуют дополнительных подключений. Здесь мы собираемся построить шляпу RGB LCD для Raspberry Pi на печатной плате. Этот ЖК-экран состоит из ЖК-модуля 16x2, пяти переключателей и трех светодиодов NeoPixel. Здесь переключатели используются для изменения текста на дисплее, а светодиоды NeoPixel используются в качестве индикаторов. Эти переключатели и Neo Pixels могут быть запрограммированы в соответствии с требованиями, например, переключатели могут использоваться для отображения значений датчиков, таких как температура, влажность и т. Д., А Neo-пиксели могут использоваться для отображения статуса, такого как красный для индикации некоторой ошибки и зеленый при получении некоторых данных.
Здесь мы будем использовать онлайн-программное обеспечение EasyEDA для разработки схемы и печатной платы для этой Pi HAT и JLCPCB для заказа печатных плат.
Необходимые компоненты
- Raspberry Pi 4
- 16 * 2 ЖК-дисплей
- Неопиксельные светодиоды (3)
- Конденсаторы
- Переключатели (5)
Принципиальная электрическая схема
Полная принципиальная схема Raspberry Pi RGB LCD HAT показана ниже. Схема была нарисована с помощью EasyEDA. Как видите, мы соединяем ЖК-модуль 16x2, 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
Вы можете просмотреть любой слой (верхний, нижний, топсилк, нижний шелк и т. Д.) Печатной платы, выбрав слой в окне «Слои». Помимо этого, они также предоставляют трехмерную модель печатной платы, показывающую, как она будет выглядеть после изготовления. Снимок верхнего и нижнего слоев ЖК-шляпы будет выглядеть примерно так:
Расчет и заказ образцов печатных плат онлайн с помощью EasyEDA
После завершения проектирования этой шляпы с ЖК-экраном PI RGB вы можете заказать печатную плату на сайте JLCPCB.com. Чтобы заказать печатную плату в JLCPCB, вам потребуется файл Gerber. Вы можете скачать файл Gerber по ссылке ниже:
- Файл Gerber для шляпы Raspberry Pi RGB LCD
Чтобы сгенерировать файлы Gerber для печатной платы, просто нажмите кнопку Generate Fabrication File на странице редактора EasyEDA, затем загрузите оттуда файл Gerber или щелкните Order at JLCPCB, как показано на изображении ниже. Это перенаправит вас на JLCPCB.com, где вы можете выбрать количество плат для заказа, сколько слоев меди вам нужно, толщину печатной платы, вес меди, цвет печатной платы и другие параметры печатной платы, как показано на снимке ниже:
После нажатия кнопки « Заказать в JLCPCB» вы попадете на веб-сайт JLCPCB, где можете заказать печатную плату по очень низкой цене, которая составляет 2 доллара. Их время сборки также очень мало - 48 часов с доставкой DHL 3-5 дней. Вы получите свои печатные платы в течение недели после заказа.
После заказа печатной платы вы можете проверить ход производства вашей печатной платы с указанием даты и времени. Вы можете проверить это, перейдя на страницу учетной записи и щелкнув ссылку «Production Progress» под платой, как показано на изображении ниже.
После нескольких дней заказа печатных плат я получил образцы печатных плат в отличной упаковке, как показано на рисунках ниже.
Убедившись, что следы и следы правильные. Я приступил к сборке печатной платы. Полностью спаянная плата выглядит следующим образом:
Настройка Raspberry Pi для LCD Hat
Перед тем как начать программировать Raspberry Pi, сначала обновите Raspberry Pi и установите несколько необходимых библиотек. Выполните следующие команды, чтобы обновить и обновить Raspberry Pi:
sudo apt-get update sudo apt-get upgrade
Теперь установите библиотеку Adafruit_Blinka для светодиодов NeoPixel. Библиотека Adafruit_Blinka обеспечивает поддержку CircuitPython в Python.
sudo pip3 установить adafruit-circuitpython-neopixel
После этого установите библиотеку Adafruit_CharLCD для ЖК-модуля. Эта библиотека предназначена для ЖК-плат Adafruit, но также работает с ЖК-платами других производителей.
sudo pip3 установить Adafruit-CharLCD
Код Python для Raspberry Pi LCD HAT
Здесь мы демонстрируем шляпу ЖК-дисплея RGB для Raspberry Pi, используя несколько переключателей для отображения некоторых конкретных значений на модуле ЖК-дисплея и светодиодов RGB в качестве индикаторов. Таким образом, мы должны запрограммировать Raspberry Pi таким образом, чтобы при нажатии переключателя он отображал некоторые значения датчиков или другие значения.
Полный код Python приведен в конце страницы. Здесь мы шаг за шагом объясняем код.
Запустите код, импортировав все необходимые библиотеки.
импортировать RPi.GPIO как GPIO импорт неопикселей импорт времени импорт платы импорт Adafruit_CharLCD как ЖК-дисплей
После этого определите все контакты GPIO, к которым подключены ЖК-дисплей и другие переключатели.
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) # Использовать номера GPIO BCM GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.В)
После этого определите вывод GPIO, к которому подключены светодиоды Neo Pixel. Затем определите количество светодиодов Neo Pixel. Здесь используются три светодиода, вы можете изменить это по своему усмотрению.
pixel_pin = доска.D21 num_pixels = 3
Теперь внутри функции lcddisplay () назначьте каждому переключателю определенную задачу. Например, здесь, когда нажат первый переключатель, Raspberry Pi должен отображать «ВВЕРХ» на ЖК-дисплее, а при нажатии второго переключателя на ЖК-дисплее должно отображаться «ВНИЗ» и так далее для двух других кнопок.
Вместо того, чтобы печатать что-либо на ЖК-дисплее, вы можете использовать эти переключатели для выполнения другой задачи. Например, вы можете использовать переключатель 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')
Теперь внутри в то время как истинный цикл, pixels.fill функция используется, чтобы осветить Neo пикселей в различных цветах. Итак, Pi запрограммирован так, чтобы подсвечивать Neo Pixels красным, зеленым и синим цветом на одну секунду каждый.
Вы также можете использовать эти Neo Pixels в качестве индикаторов. Например, вы можете зажечь один Neo Pixel красным цветом, чтобы указать, что Pi подключен к источнику питания, или вы можете использовать другие светодиоды, чтобы указать, что Pi получает или отправляет данные и т. Д.
пикселей.fill ((255, 0, 0)) пикселей.show () time.sleep (1) пикселей.fill ((0, 255, 0)) пикселей.show () time.sleep (1) пикселей.fill ((0, 0, 255)) пикселей.show () time.sleep (1) rainbow_cycle (0,001)
Тестирование шляпы Raspberry Pi RGB LCD
После сборки ЖК-дисплея и его сопряжения с Raspberry Pi мы все готовы использовать эту шляпу с ЖК-дисплеем PI RGB. Для этого запустите код Python, используя следующую команду.
python code_filename.py
Теперь нажмите переключатели. Когда вы нажимаете переключатель SW0, на ЖК-дисплее должно отображаться «ВВЕРХ». Для переключателя SW2 он должен напечатать «Вниз» и то же самое для остальных переключателей.
Полные рабочие видео вместе с кодом Python приводятся ниже.