Изготовление Часов Из Электронной Книги Прс-505.



Изготовление часов из электронной книги ПРС-505.

На удивление старенькая читалка Sony prs-505 представляет собой очень крутой конструктор всяких самоделок.

В очередной раз взял эту книгу, чтобы сделать себе «бумажные» часы.

Мне нравится это решение тем, что цифры большие и яркие, но они не светятся в темноте и не мешают спать.

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

В результате получается своего рода проект выходного дня, потому что я могу.

Как обычно, собрал все возможные грабли и ошибки.

Свой тернистый путь я описал в этой статье.



Фон

Наверняка многие помнят мой пост" Ээлектронная книга как дисплей » в котором я рассказал о том, как работать с дисплеем электронной книги.



Изготовление часов из электронной книги ПРС-505.

Фото из поста" Ээлектронная книга как дисплей ".

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

Основной проблемой в той статье была передача изображений на устройство.

Тогда я не нашел в себе достаточно пороха и мотивации, чтобы довести задуманное до конца, поэтому книгу отдали кому-то, а идея создания такого устройства была забыта.

Но все изменилось после выхода замечательной статьи от автора Алексшнуп : " ? Электронные чернила для Wirenboard 5 или рисование штрих-кодов на Go ".

В этой статье Алексшнуп решена проблема отображения штрих-кодов на экране этой книги для отладки сканера штрих-кодов.

А я только что решил проблему переноса изображений в книгу.



Изготовление часов из электронной книги ПРС-505.

Короче говоря, тогда Алексшнуп создал модуль ядра, который при подключении книги по USB создает дополнительный виртуальный жесткий диск размером 600х800=480000 байт. Точнее диск будет 1 Мб, но видимая область всего 480 000 байт. Фактически все, что окажется в памяти диска, окажется на экране книги.

В общем, это блестящая вещь; можно даже визуально увидеть, как разбивается диск, если, например, создать там файловую систему.

Например, вы можете отправить изображение в книгу с помощью следующей команды:

  
  
  
   

djpeg -pnm -grayscale test.jpg | dd bs=1 skip=15 | dd of=/dev/sdx bs=480k

Все, что описано далее в этой статье, является идеологическим продолжением этих двух экспериментов.



Начнем, исправим и сделаем еще раз

После прочтения статьи , я связался с его автором Алексшнуп .

И он решил дать мне одну разобранную книгу для экспериментов.

В итоге, имея в руках работающее оборудование, я с радостью приступил к экспериментам.

Первое что мне нужно было сделать это установить прошивку прс-плюс .

И после этого можно попробовать создать тот самый виртуальный жёсткий диск для передачи изображений по статье Алексшнуп .

Статью цитировать не буду, это исчерпывающее руководство.

После этого пытаюсь передать изображение командой dd.

Изготовление часов из электронной книги ПРС-505.

Образ передан по-новому.

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

Я начал писать программу часов и отлаживать ее вывод в книгу.

В итоге, как обычно бывает с командой «dd» («разрушитель диска»), я сделал не тот диск, и.

В итоге вместо виртуального диска я записал на диск (флешку) самой книги, превратив ее в кирпич.

Просто взял и записал 480 000 байт жирного раздела.

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

Изготовление часов из электронной книги ПРС-505.

Потрепанная книга.

Главное, как восстановить эту книгу, было неясно.

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

прс-плюс .

Затем возьмите из него эти первые 480 000 байт и перенесите их в этот кирпич.

В общем, я расстроился, психанул и купил на Авито новую читалку Sony prs-505. При этом книга пришла со всеми рабочими кнопками, в чехле шлейфы не порвались.

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

Но для моих целей этого было достаточно.

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



Изготовление часов из электронной книги ПРС-505.

Недавно купленная электронная книга.

С этой книгой я повторил процедуру установки прошивки точно так же, затем, как и планировал, перенес 480 000 байт толстого раздела из одной электронной книги в другую.

Это дало мне две книги, которые мне уже понравились.

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



Мы пишем программное обеспечение

Идея часов довольно проста.

Мы просто сформируем изображение времени на холсте, а затем отправим его во фреймбуфер.

Для этого мы будем формировать цифры и двоеточия.

Напомню, разрешение книги 600х800 (не ошибся, именно 600х800), если смотреть на нее как на лист. CC: MM: SS — это дает нам восемь символов.

Итого каждая фигурка имеет размер 100х600. Для цифр я выбрал красивый шрифт «Gideon’s-Army-».

Далее с помощью imagemagick формируем числа и двоеточия следующими командами:

for i in `seq 0 9`; do convert -font Gideon’s-Army- -pointsize 150 -size 100x600\ -gravity center -rotate 90 -depth 8 caption:"$i" $i.pgm;done convert -font Gideon’s-Army- -pointsize 150 -size 100x600 -gravity center -depth 8\ -rotate 90 caption:':' dots.pgm

Результатом являются числа от 0 до 9 и двоеточие.

Вот пример номера 2:

Изготовление часов из электронной книги ПРС-505.

Если заголовок данного pgm-файла обрезать, то эти данные сразу пригодны для записи в книгу.

Об этом я подробно рассказал в своей статье» Ээлектронная книга как дисплей ", поэтому я не буду на этом подробно останавливаться.

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

Весь проект находится в репозитории: github.com/dlinyj/sony_prs-505_lock .

Вся программа содержится в файле время.

с .

Я не буду рассматривать весь код, но остановлюсь на нескольких моментах.

В этой программе я просто сопоставляю файл в память (либо кадровый буфер, либо тестовый файл, либо файловое устройство виртуального диска электронной книги).

Далее работаем с файлом как с областью памяти.

Копирую в него изображения символов часов в зависимости от текущего времени.

Отображаем файл в памяти, в котором будем создавать изображение.



image = mmap (0, file_lenght, PROT_WRITE, MAP_SHARED, fd, 0);

Копирование изображений происходит в функции print_symbol, которой я передаю номер позиции цифры и имя файла копируемой цифры.



void print_symbol (unsigned int position, char * filename) {

Теги: #Разработка для Linux #Разработка для Интернета вещей #Сделай сам или Сделай сам #ruvds_articles #ruvds_articles #часы #часы #Электронная книга #sony prs-505 #электронная бумага

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.