Приобрести можно тут: http://alli.pub/5lt20l
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Данный дисплей имеет 4.7 дюйма диагональ. Разрешение у него 960 на 540 пикселей. Имеет 16 уровней серого. Мозгами данного устройства выступает ESP32-WROVER-E. Также выведены пины под коннекторы от контроллера. 14,15,12,13. Также есть возможность подключить сенсорную панель. Еще имеется 5 кнопок, одна из которых Reset. Питание Type-C.
Существует две версии данного девайса. Одина с гнездом под батарею 18650. Другая с гнездом PH2.
Потребляет 5 вольт 1 ампер.
Вот так выглядит распиновка данного модуля:
Так выглядит модуль с наклееным тачскрином и магнитными гайками для крепления к холодильнику:
Купить тачскрин можно тут: http://alli.pub/5lt268
купить магнитные крепления тут: http://alli.pub/5lt25g
Теперь что касается работы с дисплеем. необходимо скачать библиотеку для дисплея. Ее можно скачать по ссылке: https://github.com/Xinyuan-LilyGO/LilyGo-EPD47
С данной библиотекой идут сразу 4 примера работы с дисплеем. Их можно найти по пути в программе arduino ide после установки библиотеки. Файл->примеры->LilyGoEPD47. Там есть примеры градации серого, тоесть выводит изображение полосками с разными оттенками серого цвета. Также есть пример работы с тач скрином. С данным примером не получилось познакомиться, так как нет у меня тачскрина.
Также есть пример с которым пришел модуль. Он показывает вольтаж заряда и характеристики дисплея.
Ну и последний пример. Это тот с которым мы будем в этой статье играться. Это пример вывода изображения. Пример выводит 3 изображения меняющихся между собой каждые 3 секунды. Выглядит это все следующим образом:
Итак. Видим картинки конечно потрясные. И на E-ink дисплее выглядят просто божественно.
С помощью данного примера, он кстати называется drawImages мы можем выводить свое изображение какое захотим. Для этого выберем нужное изображение. Я выбрал изображение supergirl. И отредактируем его в paint.
Разрешение ставим приближенное к разрешению экрана. У экрана 960 на 540. Если Выставить по горизонтали разрешение 960 и сохранять пропорции, выставится для данной картинки 600. Это приемлемо. По этому оставляем так и сохраняем картинку в формате .png
Далее самое интересное. В архиве с библиотекой шли не только примеры, но еще и скрипт Python который позволяет конвертировать картинку .png в программный код для вывода картинки на дисплей.
Для этого разархивируем архив. Открываем PowerShell. И командой в powershelle переходим в разархивированную папку, далее в папку scripts. Это делается командой cd. У меня это выглядит следующим образом:
Также в папку scripts нужно положить файл .png. И нужно чтоб небыло русских букв в пути к папке scripts.
Теперь нужно установить компонент Pillow. Это делается следующей командой:
python -m pip install pillow
После установки переходим к конвертации файла. Например, у меня изображение называется 123.png . Его будем конвертировать в файл demo.h. Тогда для этого находясь в папке со скриптом вводим следующую команду:
python imgconvert.py -i 123.png -n demo -o demo.h
И тогда у нас конвертируется изображение в файл demo.h
Теперь открываем пример drawImages и видим что он состоит из 4 файлов:
Точнее на скрине уже 5 файлов. Также добавленный мной demo.h. Чтоб его добавить достаточно перекинуть получившийся файл demo.h в папку со скетчем. Скетч находится по пути: C:\Users\оператор\Documents\Arduino\libraries\LilyGo-EPD47-master\examples\drawImages
Теперь что касается того, чтоб изображение у нас вывелось на экран. Нужно в скетче drawImages прописать следующее:
- Прописать файл demo.h командой #include “demo.h”
Далее в функции loop отредактировать следующее:
После этого загружаем скетч и наслаждаемся нашей картинкой на электронных чернилах. Также можно уменьшить скорость смены картинки увеличив update(3000) на свое значение. Где 3000 – это 3000 миллисекунд или 3 секунды
А вот так у нас показывается изображение:
Отредактированный пример можно скачать тут: https://disk.yandex.ru/d/jB7as7b6DT3lpQ
Видео с проделанной работой можно посмотреть тут: