Ко мне в руки попал довольно интересный девайс, а именно дисплейный модуль на котором установлен дисплей, работающий по технологии "электронных чернил", они же e-ink. Давайте же посмотрим, чем же он уникален. Продает данные дисплеи компания DF-Robot, соответственно, посылки приходят вот в таких коробках с символикой компании:
Сам дисплей обернут вспененным упаковочным нечто и помещен в антистатический ZIP-пакет:
Внутри пакета обнаружился сам дисплей и провода для подключения оного:
Вот и вся комплектация. На самом деле этого более чем достаточно для работы с дисплеем. Но прежде чем приступить к подключению попытаюсь немного рассказать об отличительных особенностях данного типа дисплеев.
Итак, технология e-ink подразумевает, что изображение на дисплее максимально приближено к изображению на листе бумаги. Отсюда и светлый фон. Но это не все. Есть еще одна замечательная особенность - отсутствие потребления в статическом режиме. Т.е. при отключении питания изображение сохраняется неопределенно долго.Кроме этого такие дисплеи не имеют задней подсветки. Изображение становится видимым за счет отраженного света. Долгое время e-ink дисплеи были черно-белые, но не так давно начался выпуск цветных дисплеев. В нашем случае дисплей черно-белый, но поддерживает 4 градации серого цвета. Не густо, конечно, но уже можно отобразить изображения. Кроме этого e-ink дисплеи отличаются малой толщиной. Конкретно здесь толщина всего 1,5мм.
Модуль имеет следующие технические характеристики:
- Размеры модуля - 118*75 мм;
- Размеры экрана - 4,3";
- Разрешение - 800х600 px;
- Количество градаций серого - 4;
- Максимальная частота обновления - 2 Гц;
- Интерфейс управления - UART;
- Напряжение питания - 3,3 - 5 В;
- Потребляемый ток в режиме покоя - 5 мА;
- Потребляемый ток при обновлении экрана - ~480 мА в течении 32 мс;
Настало время подключить модуль и попытаться вывести да экран что-то осмысленное. Сделать это довольно легко, т.к. модуль вполне себе умный. Т.е. вся работа по общению с самим дисплеем возложена на МК, установленный на плате модуля:
Кроме МК на плате присутствует два чипа памяти (FLASH и RAM) и разъем для MicroSD карточек. Т.е. все, что требуется для получения изображения - отправить набор команд (чуть позже я расскажу о них подробнее). Управляется модуль по UART, скорость по умолчанию 115200 бод/с. Для первоначальной проверки вполне достаточно обычного USB-UART адаптера. Тем более, производитель сделал специальное ПО с достаточно подробной инструкцией при помощи которого можно управлять работой дисплея.
Из 6 доступных проводов достаточно подключить лишь 4 - VCC, GND, DI (rx), DO (tx). Что я и сделал. При подаче питания происходит очистка рабочей области дисплея. После этого модуль готов к приему команд. Выбираем СОМ порт, и жмем "Open". Связь с дисплеем можно проверить при помощи кнопки "Shake Hands". Если все подключили верно, дисплей пришлет "ОК" в ответ. Каждая отправляемая команда высвечивается в окне программы, что позволяет достаточно легко соотнести их со списком команд в документации и быстро разобраться в работе модуля.
Модуль поддерживает вывод графических примитивов (точка, линия, треугольник, прямоугольник, круг и их закрашенные версии), изображений, хранящиеся на MiscroSD карте или внутренней Flash и текст (доступные размеры маленький, средний и большой) Все это можно выводить как на белом фоне, так и в инверсии, на черном или сером. Однако, для текста есть серьезное ограничение - язык. Для работы доступны лишь английский и китайский языки. Других языков просто нет в установленных шрифтах и добавить их нельзя (Задавал вопрос по этому поводу производителю. Действительно нельзя). Так что либо учить языки, либо писать транслитом.
Для получения изображения требуется отправить команды на вывод (можно одну, можно несколько подряд) и нажать кнопку Refresh. После этого отправленное появится на экране.
Как текст, так и графика легко читаемы, что вполне ожидаемо для разрешения 800х600 точек при размерах дисплея 4,3". Для того, чтобы вывести изображение необходимо прогнать его через специальную программу, предоставленную производителем. Тут все просто, открываем картинку, через меню Tools->Convert переводим цвета в градации серого и сохраняем как *.bmp с именем не длиннее 7 символов.
После чего, копируем на MicroSD, устанавливаем ее в модуль и шлем команду вывода изображения с указанием имени файла, обновляем экран и вуаля:
Управлять модулем с ПК, конечно, прикольно, но подключить его к МК куда интереснее. Что я и сделаю. Для работы буду использовать плату с STM32F103VET6. На самом деле здесь хватило бы и чего-то вроде AtTiny13, т.к. команды очень просты.Но, что есть, к тому и подключаю. Структура команд, как и сами команды, подробно описаны в документации. Более того, все это дело дополнено примерами для каждой команды. Кроме этого, производитель предоставляет библиотеку для Arduino. Все команды имеют вот такую структуру:
Заголовок - 0xA5 | Длина пакета | Типа команды | Данные | Окончание - 0xCC 0x33 0xC3 0x3C | Четность |
1 байт | 2 байта | 1 байт | 0-1024 байт | 4 байта | 1 байт |
Все довольно просто. В длину пакета входят все байты пакета, включая заголовок и байт четности. Байт четности считается обычным XOR всех байтов пакета.
Подключаем, запускаем, вуаля!
Весь список поддерживаемых команд я приводить не буду, дабы не превращать статью в нечто бесконечное. Приведу лишь несколько из них в качестве примера.
Выбор устройства хранения. | |||||
0xA5 | 0x000A | 0x07 | 0x01 | 0xCC 0x33 0xC3 0x3C | 0xA9 |
Обновление изображения. | ||||
0xA5 | 0x0009 | 0x0A | 0xCC 0x33 0xC3 0x3C | 0xA6 |
Очистка дисплея. | ||||
0xA5 | 0x0009 | 0x2E | 0xCC 0x33 0xC3 0x3C | 0x82 |
Отображение текста. | |||||
0xA5 | 0x000D + длина строки текста | 0x30 | X(2 байта), Y(2 байта), Строка текста в кодировке ASCII | 0xCC 0x33 0xC3 0x3C | XOR |
Отображение окружности. | |||||
0xA5 | 0x000А | 0x26 | X(2 байта), Y(2 байта), R(2 байта) | 0xCC 0x33 0xC3 0x3C | XOR |
Как видите, все предельно просто. При работе с модулем рекомендуется ожидать отчета о выполнении команды и только после этого слать следующую. Однако, модуль умеет запоминать пришедшие команды и последовательно их выполнять. В принципе выводится все то же самое, что и с ПК, ничего нового нет:
Изображения смотрятся на удивление неплохо. Конечно, детали на темных изображениях не всегда хорошо различимы, но это и не TFT дисплей, число градаций серого здесь всего 4. К сожалению, здесь присутствует болезнь всех e-ink дисплеев - дисплей очищается не полностью. Т.е. остается едва видимое старое изображение. На фото данный эффект почти не заметен, но он есть. Лечится это дело - несколькими обновлениями экрана подряд. Либо можно вывести закрашенный прямоугольник на весь дисплей, предварительно указав в параметрах дисплея белую отрисовку на черном фоне.
Article2
Итак, подведем итоги:
Плюсы:
- Низкое энергопотребление.
- Отсутствие необходимости в постоянном наличии питания.
- Высокое разрешение и благодаря этому - высокая четкость изображения.
- Простота управления.
Минусы.
- Отсутствие поддержки русского языка.
- Отсутствие возможности смены шрифтов.
- Отсутствие частичного обновления.
- Не до конца затирается предыдущее изображение (болезнь всех e-ink).
- Довольно высокая цена. Однако тут стоит учитывать малую распространенность дисплеев данного типа. Кроме этого, e-ink дисплеи в принципе недешевы.
Кроме этого, в качестве управляющего выбран довольно распространенный МК STM32F103, что делает возможным написание своей прошивки для работы с дисплеем, если получится узнать, что за контроллер стоит внутри дисплея. На этом у меня все. Лично мне дисплей понравился. Довольно легко можно сделать что-то вроде доски уведомлений с батарейным питанием, соединив модуль с тем же ESP8266. Хотя, конечно, огорчило отсутствие возможности подгружать различные шрифты, в т.ч. а особенно русскоязычные. Ну а дальше решать вам, уважаемые читатели. Ну а на канале Паяльник ТВ доступен видео обзор данного модуля. До новых встреч.
P.S. Прикрепляю только мануал, ибо производитель может менять версии ПО и библиотек, а тут будут оставаться старые.
Прикрепленные файлы:
- 4_3inch-e-Paper-UserManual-EN.pdf (1732 Кб)
Комментарии (3) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]