Понадобилось мне, для небольшого проекта на ардуино, выводить кое-какую информацию, естественно на экран, а не в консоль. Купил парочку LCD модулей а-ля Nokia 5110 с разрешением 84 х 48 пикселей. Библиотеку решил использовать от Adafruit, точнее две Adafruit-PCD8544-Nokia-5110-LCD-library и Adafruit-GFX-Library. Если кто с ними ещё не знаком – позволяют выводить не экран текст (шесть строк по 14 символов), отображать заранее подготовленные изображения, рисовать (линии, прямоугольники, круги и т.д.), ну и рисовать попиксельно. Скетч pcdtest отработал нормально, и я приступил к написанию своего
Оказалось, что в шрифте нет русских символов, а я так хотел. По первой же ссылке в гугле нашёл единомышленников, в комментарии #35 некий Droni поделился сделанным им редактором шрифтов и готовым шрифтом. На поверку, редактор оказался кривым – не отображал последний (256) символ, да и сам шрифт не доведён до ума – мало того, что в кодировке cp866, так ещё и не доделанный – в псевдографике пропущен символ (ошибка пришла из оригинала шрифта от adafruit), не хватает символов «Ё» и «ё». Сначала я пытался доработать шрифт в редакторе Droni, но когда обнаружил, что не отображается 256 символ – моё терпение лопнуло и я решил написать свой редактор
Далее я обнаружил неожиданное поведение Wiring. Кодировка самого редактора utf-8, но если в файле preferences установить preproc.substitute_unicode=false, то при компилировании происходит перекодирование в системную кодировку, т.е. в cp1251. Получается, отключив «замену unicode» мы включаем конвертацию кодировок. Проще говоря – можно писать прямо в IDE на кириллице и после загрузки скетча в плату увидеть нормальный русский текст на экране.
Ещё мне понадобилось выводить на экран пару иконок. Adafruit предлагают использовать конвертер Img2Code, но рисовать в GIMP попиксельно мне как-то не очень понравилось, искать бесплатный редактор для пиксель-арта было лень и я решил в дополнении к редактору шрифтов сделать ещё и редактор иконок. Редактор получился печальным, я пробовал рисовать небольшие иконки, поэтому было вполне удобно, но рисовать полноразмерную картинку (84х48) пожалуй, будет совсем не комфортно.
Скетч демонстрирующий вывод на экран кириллицы (фото в начале статьи) и иконки (за основу взята картинка из этой статьи). Естественно скетч надо использовать с готовым шрифтом и правильными настройками Wiring.
Скриншоты редакторов
В заключении – редакторы написаны на Python 2, ни каких сторонних библиотек не требуется, т.к. интерфейс на Tkinter, ну и полагаю редакторы кроссплатформенные. Редакторы предназначены для зрячих – я работаю на нетбуке с экраном в 10”, поэтому элементы интерфейса весьма мелкие. За код мне честно очень стыдно, так что лучше его не смотреть.
P.S.: Ирония судьбы – в своём проекте я в итоге отказался от кириллицы и иконок.