Крупный шрифт для OLED 128x64
- Войдите на сайт для отправки комментариев
Добрый день!
Уже несколько дней бьюсь с выводом букв на экран OLED 128x64.
Библиотека от адафрут у меня сходу не захотела работать. Я не стал разбираться почему, но в ней тоже нет готового крупного шрифта, поэтому я стал искать другие библиотеки.
Нашел библиотеку https://github.com/jlegas/OLED_I2C - она заработала у меня сразу. И вроде бы все хорошо, но мне нужен шрифт во весь экран, а в примерах библиотеки такого шрифта нет. На сайте автора http://www.rinkydinkelectronics.com есть генератор шрифтов (Font Maker), но он не работает. При попытке загрузить любую картинку - выдает окошко, типа "не трать ресурсы сервера, скачай готовый шрифт". Готовых шрифтов на сайте не нашел, есть только шрифты для UTFT-дисплея, но они не подходят (я пробовал).
Нашел статью на пикабу https://pikabu.ru/story/svoy_tekst_dlya_oled_128x64_4834291 там рассматривается эта же библиотека и такой же экран. По шагам расписано как создать вручную свой шрифт. Попробовал сделать по этой статье - получилась ерунда.
Решил пойти обратным путем - взял букву R из работающих шрифтов (которые идут в комплекте с библиотекой и у меня отображаются нормально). Перевел все числа, относящиеся к этой букве, из шестнадцатеричной системы в двоичную - все равно из нолей и единиц не выходит ничего похожего на букву. Но при этом, если взять например цифру 1 из мелкого шрифта (6х8 вроде бы) - она получается похожей. Возможно у больших шрифтов есть свои особенности.
Прошу помощи у знающих: кто работал с этой библиотекой. Как создать свой шрифт, чтоб был во весь экран? Может у кого-то есть уже готовый шрифт, или генератор шрифтов. В принципе я готов это сделать вручную, мне не нужен весь алфавит, а просто несколько английских букв - штук 5-6, поэтому даже вручную готов пиксели рисовать и переводить в шестнадцатеричный вид.
вот библиотека : https://github.com/adafruit/Adafruit-SSD1331-OLED-Driver-Library-for-Arduino
вот так должно работать
Нашел статью на пикабу https://pikabu.ru/story/svoy_tekst_dlya_oled_128x64_4834291 там рассматривается эта же библиотека и такой же экран. По шагам расписано как создать вручную свой шрифт. Попробовал сделать по этой статье - получилась ерунда.
и что непонятного в этой статье? мне кажется, лучше чем там - в форуме вряд ли кто обьяснит. Шрифты для Олед очень простые, кодируются элементарно - целыми байтами в вертикальном направлении. Новые шрифт создавать не приходилось. но свои символы в готовый шрифт я добавлял, все работало. Действовал по методике, примерно как описано в статье.
Возможно, вас немного запутала вот эта картинка:
надо понимать, что цифры, написанные справа - это представление только самой правой колонки из восьми пикселей - той. что обведеныа пунктиром.
Все, теперь я разобрался. Оказывается я запутался в порядке следования чисел. Шрифт был размером 12х16, я взял заглавную R которая выглядит вот так:
Ну и раз чисел 24, я не долго думая преобразовал их в двоичную форму и каждую пару писал с новой строчки:
В итоге на букву R только отдаленно похоже. И тут у меня опустились руки.
А сейчас я взял букву P, т.к. она попроще:
Так же преобразовал в двоичную запись каждое число, но разделил их пополам (по 12 штук) и вывел в столбик (друг под другом) сначала правую половину, а затем левую. И вот что получилось:
Очень даже похоже на повернутую по-часовой букву P.
Всем спасибо за помощь, думаю вопрос закрыт.
Кто-нибудь может пошагово описать действия? Пробовал качать разные проги для создания шрифта для этой библиотеки (OLED_I2C), не хочет она их понимать. Очень прошу, распишите по шагам. В статье на пикабу сказано, что надо переписать вручную состояния пикселей из двоичной системы в 16ричную, но не сказано в чём открыть исходную картинку, либо в чём создать эту картинку. Это самая шустрая библиотека для ОЛЕДа, не понимаю почему в ней такой гемор со шрифтами. Многие предлагают U8g2, да блин, она весит как паровоз, промини её кое-как переваривает.
В общем буду очень признателен тому, кто подскажет как создать свой шрифт для этой библиотеки. СПАСИБО!
В статье на пикабу сказано, что надо переписать вручную состояния пикселей из двоичной системы в 16ричную, но не сказано в чём открыть исходную картинку, либо в чём создать эту картинку.
автор статьи рисовал ее в фотошопе. Но мне не понравилось, я вам советую любой графический редактор фонтов, типа GLCD Font Creator
А дальше... По сути все растровые фонты одинаковы. Точки на экране закодированы битами или по вертикали, или по горизонтали. Закрашенная тлчка это бит 1, незакрашенная - 0. Существует куча программ для рисования фонтовr. Даже если они не умеют создавать фонты именно для вашей библиотеки - разобравшись в битовом представлении точек, о котором я писал выше, практически любой фонт можно конвертировать в нужный формат.
Но в первом сообщении вроде есть ссылка на специальный конвертер именно для этой либы
Предыдущие дизлайки вводят в заблуждение, успели накидать -2 за оформление. Я всё поправил. Смело пользуйтесь.
Карочиии, я тут напряг булки и сделал САМЫЙ БОЛЬШОЙ ШРИФТ ДЛЯ БИБЛИОТЕКИ OLED_I2C. Пока в виде кода, который нужно вставить в файлик DefaultFonts. Пару дней и оформлю большой коммент, как легко рисовать свои шрифты. Оценивайте в общем)
Размер шрифта 48*64 (0123456789)
И ещё один, размер шрифта 24*40 (+ , - . / 0123456789)
И ещё проблема у меня была в том, что нужен шрифт именно для этой библиотеки. Когда загружал HEX из всяки программ у меня не работало. Но шас норм. И ещё зацените размер кода.
ну то что сам сподобился - молодец. А за оформление поста - двойка.
Когда будешь оформлять "большой коммент, как легко рисовать свои шрифты" - посмотри сначала, как вставляют код в сообщение (это относится и к шрифтам) и как прятать большой код под спойлер.
Спасибо за критику. Я немного поправил и на будущее учту)
отлично, если б все так :)
а про фонты и прочие растровые изображения у меня такая шуточная статейка есть :
https://community.alexgyver.ru/threads/idei-dizajna-iz-babushkinogo-sund...