Как стать автором
Обновить

Разработка самой маленькой в мире книги на e-ink дисплее

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров14K
Всего голосов 85: ↑84 и ↓1+112
Комментарии90

Комментарии 90

Вспомнилось как, пока все гоняли змейку на Nokia 3310 я ковырял мобильник Сименс, и выяснил, что если выкинуть из прошивки всё, что можно, то в заметках хватит места на одну книгу. Так и читал.

Помню еще и навигатор ставили на телефоны)

Это было потом. А тогда Java Mobile ещё не было, а значит и сторонних приложений. Разве что под навигатором подразумевается справочник "Улицы Москвы"?

(иправлено) Да действительно, началось с Java Mobile. Я цеплялся к Bluetooth GPS и смотрел своё положение на растровой карте.

Точно уже не вспомню, но GPS там еще не было, но был блютуз и внешний брелок на аккумуляторе.

Помню времена, когда с помощью 3 или 4 программ подготавливал текст книги, и с ним собирал jar приложение для Siemens C60. Вся серия книг о Гарри Поттере была прочитана таким образом на экране с разрешением 101x80

Да, тоже собирал jar'ы)

Я "Войну и мир" прочитал на сименсе c65. Было очень обидно, когда узнал, что мог купить cx65, где заметно больше экран, но неверно понял акцию сотового оператора.

Я тогда мечтал о смартфонах, чтобы читать книги и прочее, и когда появился айфон, и я смог накопить, купил себе 3g.

Потом была первая читалка на eInk на западном рынке Сони. С тех пор я увлекаюсь технологией eInk, и у меня было много читалок и даже смартфон Hisense a5 cc на цветном эИнке. Сейчас думаю о новом смартфоне бигме, который должен выйти в этом году.

А я все засматривался на yotafon, но так и не приобрел. Купил тоже отдельную читалку.

Посмотрел обзор на Hisense a5 cc - фантастика. Жаль только перерисовка медленная.

Отличная штука получилась. Я на устройстве подобного размера прочел всю игру престолов, кроме прочего.

Спасибо!

в своё время прочитал "Преступление и наказание", а также смотрел аниме на Samsung SGH-D830 с экраном 240х320. За время чтения слегонца задолбался и почти сразу купил читалку 5 дюймов 800х600, Qumo Colibri, которой пользуюсь до сих пор. На ней настолько много было прочитано книг, что пластик с обратной стороны корпуса "захватался" и начал стареть)

В студенческие годы на плеере 320*240 (около 3,5", если я не ошибаюсь), были посмотрены все сезоны сериала "Друзья")

 всю игру престолов, кроме прочего

Да ладно Вам, может 7-я книга будет ничего.

Я в свое время на смартфоне прочитал собрание сочинений Мопассана из 12ти томов по дороге из дома на работу и обратно. Но лучше бы я этого не делал, а купил нормальную электронную книгу и читал с нее. Зрение всё-таки лучше беречь.

Это сильно) Да, зрение нужно беречь. Сам стараюсь читать только бумажные либо e-ink.

Я так понял, шрифт моноширинный?
Возможно, если использовать пропорциональный шрифт, текста на экран будет влезать больше?

Да, но там небольшое расстояние между символами. Будет лучше применять переносы слов, нужно найти нормальный редактор.

Такую шпаргалку бы да 30 лет назад...

Ох, и не говорите!

Ну не 30, а стажем так 15–20 лет назад был у меня случай в универе. Когда на кафедре физики, что находилась в подвале, преподаватель сказал, что можете не сдавать мобильные телефоны, всё равно они тут не ловят. А при этом на мой Siemens C55 влезало приличное кол-во лекций.

30лет назад я постоянно ходил с плеером и все преподы привыкли к этому. Когда наступило время экзамена, я на одном канале записал музло а на другом надиктовал ответы. Встроенный динамик на плеере был подключен к одному каналу, как раз с музлом. И так как никто не видел меня без наушников, а оценки у меня были выше среднего, то никто ничего не заподозрил. Один только спросил - что слушаешь? Я наушники отключил и динамик запел медитативную энигму, на этом весь интерес и закончился. Записал только то, что не мог запомнить многократно по кругу, так что мотать не надо было, достаточно было несколько минут просто послушать.

Зачет!)

Экзамен!)

Симпатично получилось. Спасибо за статью.)

оказывается есть, например, слово «Ьмх»

А можно транскрипцию?)
А то получается что-то вроде [жмых] [??№:"!(")Зчвпффф мых... да как это читать вообще?)]

Рад что понравилось! Думаю что-то типа "Мягкий знак эм ха")

А ещё ведь были паровозы серий Ъ (еръ) и Ы (еры)...

А название тепловоза читалось как "ерь-эм-ха".

правильный подход для эл. книги чтобы обработка любого нажатия заканчивалась пока кнопка ещё нажата, а когда кнопки отпущены батарея хардверно отключена.

Согласен, но из-за медленной записи данных в экран мне приходится делать предзагрузку страницы в память дисплея. Нужно подумать, возможно как-то это и можно решить. Для книги, по идее, нужен другой интерфейс дисплея, как это сделано в полноразмерных книгах.

Сырая работа с матрицей? Круто, но очень геморно :) Я так и облизываюсь пока впустую :)

Но вообще девайс получился занятный, особенно для близоруких типа меня :) Очки снял и экранчик сразу не такой уж и маленький :)

Спасибо!) Ну не совсем сырая, там есть драйвер инициализации (очень похож на mipi) и команд управления.

Пардон, я слишком расплывчато выразился, я имел в виду, что чем сырее (ниже) уровень, тем больше геморрою, но выше скорость обновления :) У меня была мысля взять штучки три ценников с дохлыми «мозгами», запитать от общей питалки (тут был цикл статей про), драйверить непосредственно их «родными» сигналами (ох и головняк же будет!) и построчно их закорпусить в мелочи типа «PB 360+» (отличный был форм-фактор, жаль, прекратили выпуск).

Вроде давно все их сигналы стирания, рисования (и так далее) известны, но вряд ли я когда-нибудь соберусь :( Так что реалистичнее выглядела вторая моя идея — взять два таких вот двухдюймовых SPI-экранчика, сделать корпус «раскладушечкой» (в виде крошечной книжечки, ага), под левой «страничкой», допустим, аккумулятор поставить, под правой — допустим, АтТиньку и слот под микроСД. На работу с готовым SPI у меня, наверное, вечерок-другой найдётся :) А перелистывание сделать в виде двух подпружиненных движков-переключателей, слева и справа под страничками. То есть реальным таким «листающим» движением. Две пары контактов (одна замкнута, когда движок «в покое» и возвращён пружиной к краю страницы, вторая — когда палец его довёл до «переплёта», в промежуточном положении — ничего не замкнуто). Если задержать на секунду, не доводя до конца — вылезает всякие более интересные опции, меню и прочее. Как «длинный тап», ага.

Ну, или промежуточный вариант — раскладушка из двух ценников, но только, наверное, вертикальная, потому что лучше строку от строки отделять петлями, чем разрывать строки. И один движок-слайдер со средним положением, в которое возвращает пружина (листать, соответственно, вверх и вниз).

Ух, сколько там софта нужно будет написать)

Ага, прямо облизываюсь :) начиная с ридонли-реализации fat32 и заканчивая грязными трюками для работы со всем этим цирком из крайне малоногого контра :)

А, да, закрывание книги стопудово надо делать одновременным листанием обоих движков-слайдеров :) Такое прямо закрывающее движение, двумя большими пальцами от краёв страниц к переплёту — вжик :)

Я подумаю)))

Может все дело в медленном SPI из-за ногодрыга, побайтной передачи и использования толстых GPIO либ?

Да, самое долгое - это запись области экрана по SPI, а область маленькая.

Попробуйте оптимизировать эту запись используя максимально тонкие абстракции (т.е. как можно ближе к железу) Подробнее могу описать если скажете где смотреть код.

Надо немного переписать код.

  1. 99% не имеет смысла дергать CS на каждую транзакцию в функции EpdIf::SpiTransfer(). Вынестие управление CS наверх. Перед передачей включили, и в конце выключили. В крайнем случае если так не сработает, можно вынести только для передачи картинки в двойном цикле E-Paper_code/Arduino/epd1in54_V2/epd1in54_V2.cpp:554

  2. Можно покопаться в SPI либе и разобраться, как слать не один байт за вызов функции, а буффер. И формировать и слать буффер большими кусками.

Если что-то непонятно, спрашивайте, расскажу подробнее.

Спасибо огромное! Попробую разобраться.

Спасибо за наводку! CS не помог, но нашел функцию:

void Epd::WaitUntilIdle(void)
{
while(DigitalRead(busy_pin) == 1) { //LOW: idle, HIGH: busy
DelayMs(1); //100
}
DelayMs(2); //200
}

Были значения 100 и 200мс. Постепенно уменьшая, сделал 1 и 2 мс. Сейчас переключение быстрое, запись страницы в память <2c.

Слов нет, замечательная разработка мини- ридера! Так и видятся ждущие электричку , в тесной толпе , любители почитать , уткнувшиеся в зажатые в кулаках брелоки-читалки! Та прорва книг ,перечитанная мною на разного рода устройствах , привела к мысли , что размер наиболее удобного компакт-ридера составляет примерно 6 - 6,5 ". Ближе всего - по размерам - это Mi Max 2 от Xiaomi. Как-то так. Спасибо за Ваш талант!

Спасибо! Рад что понравилась разработка! Да, согласен, чтобы не уставали глаза и было комфортно читать, меньше 6 дюймов книги рассматривать не стоит.

Обожаю такие штуки из разряда: вроде и нафиг не надо, но так красиво реализовано, что хочу-хочу-хочу!!

Спасибо! Очень точное описание))

Вот и у меня примерно такие ощущения :-D

Очень много книг прочитал на siemens sl45i, лучшей читалки и быть не может, не надо водить глазами, мозг воспринимает блок текста целиком. Только кнопку вниз тапаешь... Сделали бы сейчас брелочек такой, без всего остального телефона, с минимумом полей.

По сходной причине очень любил читать с Palm m105 - с автоскроллом вообще отлично было.

Кстати, я делал на моем девайсе автоскрол. Выглядит вполне прилично, но нужно где-то время тогда задавать. Меню писать придется)

вообще супер штука, например для...заметок! Заметки писать на телефоне, и портировать на устройство(или подтягивать через блютуз). А его можно хоть к рукаву приделать, хоть в кошельке носить, хоть на брелке. И вся нужная инфа под рукой о себе напоминает.

Если реализовать режим заметок, то можно отображать почти что угодно!
Например, парсить данные профиля, и автоматом слать его на устройство (https://habr.com/ru/articles/220893/ прям как здесь). В добавок баланс карты, и прочие. Ведь кнопка пролистывания даёт возможно размещать несколько "экранов". А малый форм-фактор позволяет размещать его где угодно...

Да, без кнопки назад книги читать не удобно, как и без перехода по страницами. Но если к текущей реализации добавить блютуз, устройство станет гораздо интереснее и может даже будет иметь коммерческий потенциал

Думаю для заметок можно eink ценники использовать. Есть даже цветные варианты.

Думаю в ценниках самые простые e-ink которые обновляются через полное стирание дисплея. Пытался найти такой ценник чтобы поковырять, но так и не нашел.

У электронных ценников обновление 2-5 секунд, не пойдет. Они оптимизированы под минимальное потребление и минимальную цену.

Так речь о заметках. Я себе представил электронный вариант sticky notes

А, формировать на телефоне. Да, так можно, думаю.

Ну да, дополнительное устройство, которое нужно с собой таскать и заряжать очень "нужно".

Вау, какая великолепная штука! Как раз на днях думал о чем-то подобном. Кстати да, недавно была статья о раритетном девайсе (органайзер). Я там оставлял под статьей коммент со своими "мечтами" о функционале, в современной реинкарнации. А действительно, ведь еще немного - и эта микрокнига почти то, о чем я говорил. Тоесть, еще и нужную информацию хранить могла бы. Как думаете? P.S. блютуза было бы достаточно, как заметили в комментах выше.

Ох. Тут еще и тач нужен тогда)

При таком размере дисплея тач явно будет излишним. Достаточно будет пяти мембранных кнопок под дисплеем. Но вам же все равно нужны будут кнопки для навигации, даже просто для эл.книги. Другой вопрос, что если девайс использовать в виде микро-органайзера (только для хранения/чтения текстовых данных), то хватит ли внутренней памяти на все сразу?

Вобщем, таких излишних наворотов, как в Xircom REX - не нужно. Блютуз, кнопочками полистать странички, простейший поиск. Ну как раньше были электронные записные книжки, типа того. Я бы купил!

У меня есть три кнопки. Две из них для навигации (вверх/вниз), но меню не полистать, если не заморачиваться с длинными нажатиями и двойными кликами)

Casio PV были ещё. Столько всего на этих КПК было прочитано...

Все "ё" я заменил на "е", но я ее позже добавлю - это не проблема. Тут есть целый ворох символов, которые нужно добавить, типа неразрывного пробела, дефиса и т.д.

Спасибо за статью.

  1. имхо но шрифт с засечками выбивается из общего стиля и хуже к восприятию.

  2. Интересно кстати, что пока сам не надел очки абсолютно никак не воспринимал разные функции устройств, облегчающие использование их слабовидящими. Сейчас нормально читаю буквы если они около 4 мм по высоте, отчего практически не пользуюсь ничем что имеет небольшой экран (смартфон без вариантов но и там размеры шрифта большие, но например на картах названия улиц не масштабируются и их не прочитать, делаю скриншот, открываю в галерее и делаю зум, гемор тот еще). Но вот так у нас в целом не продумано всё делают даже лидеры рынка.

  3. При 2" в высоту экрана уместится для меня только 12 строк, но нужны еще интервалы между ними, так что влезет только 8-10 (у вас на фото их 16), так что слабовидящему пространства экрана хватит только на 25% от задуманного. Это наверное самое печальное что случается в старости :)

Рад что понравилась статья!

  1. Эти буквы переехали с латинских, их нужно пропатчить, но пока не знаю как это сделать лучше, чтобы было единообразие и читалось легко.

  2. Да, как-то не обращал внимания. Проверил, названия улиц и правда не масштабируются в навигаторе.

  3. Я могу использовать и больший шрифт, но тогда точно нужно использовать переносы текста, иначе будет по одному и меньше слов на странице)

Вы не хотите начать такие устройства продавать? Я вижу что такое устройство многим людям может понадобится, я бы и сам хотел его приобрести

Если честно, то не вижу сферы применения, если только для "убивания" зрения. Я там писал, что у меня есть одна идея, которую я постараюсь реализовать. Она не требует постоянного чтения с экранчика. Но вот для чего еще применить - не представляю.

Студенты оценили бы такое изобретение в качестве компактной электрошпаргалки.)

Ну, в эпоху телефонов, мне кажется, это перестало быть актуальным) Вот лет 20 назад запихать конспект ...

Телефон неудобен своими размерами. Этот девайс куда компактнее.

(а пока будешь подготавливать конспекты для записи в него и смотреть, нормально ли отображается, глядишь, и так запомнишь...)

Компактность - не всегда плюс: слишком часто подглядывать придётся. Был с принимающей стороны, очень заметно)

Да и смарт-часы есть - они по крайней мере могут невинно присутствовать в поле зрения.

Думал сделать плату под корпус часов, кстати)

А почему бы не взять готовую либу вывода форматированного текста? Наверняка сообщество уже озадачилось... Насколько понимаю, вывод текста по-уму - это очень большой обьем кода, реально непосильный для одного человека в приличное время.

Я пока не нашел такую либину, может плохо искал. Тоже думаю что должно быть что-то, не хочется писать с нуля с моими познаниями в программировании.

Конструкция интересная, но у меня бы глаза вытекли, если честно, читать такое мелкое.

Когда тебе 20 лет, ещё нормально, а когда 45-55, то там уже дальнозоркость появляется....

Согласен, но всегда можно поставить аквариум перед экраном, как это было на первых телевизорах)

В школе я читал книги на мобилке siemens m65. Разрешение, до сих пор помню, 132x176. Одноклассник читал на какой-то nokia на экране 128x128, который к тому же выжигал глаза. Такой бы девайс да мелкому мне...

Возможно, я что-то не понял, но зачем рисовать свой шрифт с нуля? Разве нет возможности заимпортировать какой-то готовый шрифт? Сейчас есть куча моноширинных шрифтов с поддержкой большого количества символов, многие из которых ещё и учитывают потребность показывать свои символы на дисплеях маленького разрешения (например, Fairfax рисует всё черно-белым на сетке 6x12 пикселей)

Было много готовых генераторов шрифтов. Пользовался таким для генерации при подключении LCD от телефона Siemens 65 серии по SPI. Если найду, добавлю ссылку.

во сколько вам по деньгам обошлись комплектующие?

Дисплей - 900р

ESP32 - 150р

Аккум 300р стоил бы, но он остался от детских часов.

Платы не считаю, заказывал с другим проектом.

Остальное корейки, пусть будет 300р, если в розницу (выпаял из старых плат).

Так что затратил 1050р

Отличная статья. Не хватает блутус для переброски файлов и листания страниц с помощью дешевого пульта из фикс прайса. С точки зрения потребления ESP не самое оптимальное решение. Какой-нибудь STM32F0 снизил бы ток до гораздо более разумных значений.

Уже начал забывать про статью, и тут в процессе блужданий по Али вдруг выпадает вот такой девайс с экраном 1,54 дюйма:

Поскольку лоты закрываются часто, то под спойлер загоню описание и ссылку на видео.

Описание

https://www.aliexpress.com/item/1005006802251739.html?spm=a2g0o.detail.pcDetailBottomMoreOtherSeller.193.45f69GBR9GBRli&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.40050.354490.0&scm_id=1007.40050.354490.0&scm-url=1007.40050.354490.0&pvid=e7f62ed7-b32f-48e6-9e7c-f59718311317&_t=gps-id:pcDetailBottomMoreOtherSeller,scm-url:1007.40050.354490.0,pvid:e7f62ed7-b32f-48e6-9e7c-f59718311317,tpp_buckets:668%232846%238111%231996&pdp_npi=4%40dis!EUR!91.60!49.46!!!697.64!376.73!%40210313e917195400873138273e913f!12000038353194185!rec!FI!160866663!&utparam-url=scene%3ApcDetailBottomMoreOtherSeller|query_from%3A

Brand new 1.54-inch backlit ink screen mini reader for listening to music and playing fish, licorice acid not sour
Exclusive authorization for licorice, mini backlit version
Supports e-books in EPUB and TXT formats
Newly designed silent, 10 million secondary silent buttons
Reading font and size can be modified
Support the boss button to quickly switch from reading to clock mode
Supports offline clocks, independent chips, and precise timing
Built in imported high-precision temperature and humidity sensors
Supports Bluetooth MP3 music listening
There is a 32GB memory card version available, and genuine products are guaranteed for life
Choosing
a version with a memory card will ensure proper initialization
configuration, such as formatting and built-in font files
1. Brand new screen, customized backlight version;
2. Customized high transparency piano paint panel, which is both beautiful and can protect the screen;
3. Supports up to 32g memory cards;
4.
E-books can customize fonts, font sizes, automatic page flipping, quick
redirection, and other functions, with memory function that remembers
the last position seen and quickly enters the reading state;
5. Supports jpg/bmp images, supports 4 grayscale, and can automatically play;
6. Support weather mode, weather mode supports time display;
7. Equipped with high-precision imported temperature and humidity sensors, the same model as Xiaomi;
8.
Built in high-precision clock chip, capable of precise timing and
offline use. The clock font can be customized and supports dial DIY;
9. Note that the buzzer can be used as an alarm clock;
10. Built in 500mAh rechargeable lithium battery, with TypeC port for charging;
11. Support linking Bluetooth devices to listen to MP3 songs;
12. Ultra low weight, only about 30g

Ссылка на видео

Так что желающие потратить 50 евро с неизвестным результатом - могут пройти по ссылке в описании. Надеюсь модеры не сочтут за рекламу, я никак не связан с китайцами.

Елки палки.

Забавный аппарат. Но дороговато.

За эти деньги можно полноценную электронную книгу купить версии Tolino с нормальным большим дисплеем.

Проект интересный, но не для электронных книг. Для чтения дисплей слишком мелкий - только глаза ломать.
Интерактивно что то выводить думаю тоже не получится - специфика дисплея такая. Но для каких то датчиков/устройств с кратким отображением текущей информации вполне подойдет. Например на этом дисплее можно выводить тренд датчика воздушных частиц PM2.5 или датчика CO2 (там время опроса датчиков большое) или иных датчиков.

Спасибо! Совершенно согласен по поводу чтения. Это просто незачем. Было просто интересно опробовать дисплей.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий