Led Matrix P10 - шрифты
- Войдите на сайт для отправки комментариев
Вс, 26/04/2020 - 16:18
Разбираюсь с монохромными (одноцветными) светодиодными модулями P10 (Led Matrix P10, табло P10, HUB12).
На данном этапе для управления панелью использую клон Arduino Nano на Atmega328.
С вашего позволения буду вести тут бложик по теме.
Участие уважаемого сообщества категорически приветствуется.
Задача: вывод на табло читаемого текста на русском и английском языках
Сделанные в Riuson.com LCD Image Converter и отформатированные скриптом шрифты с кириллицей готовые к использованию с Freetronics DMD
Font_mid.h
https://yadi.sk/d/4MlRRIvGHNK8OQ
если взять библиотеку DMD-STM32 - с этими матрицами можно изпользовать шрифты формата Adafruit - то есть практически любой размер на любом национальном языке.
В качестве платы управления я предпочитаю использовать STM32
подробнее
http://arduino.ru/forum/proekty/dmdstm32-versiya-biblioteki-dmd-dlya-stm32duino
Хреновая библиотека ИМХО...
Хреновая библиотека ИМХО...
которая? И почему?
А это чего за херня?
Шестнадцатеричное представление:
DMD умеет в шрифты переменной высоты?
DMD умеет в шрифты переменной высоты?
конечно.
Вы бы почитали ссылки, что я вам даю - все проблемы. что вы описываете в "бложике" - давно решены. Люди собирают панно из десятков матриц и, конечно же, выводят туда текст не только высотой 16 пикселей...
шрифт высотой 96 пикс
я вас ни за что не агитирую :), хотя библиотека поддерживает не только СТМ32. Хотите изобретать велосипед - пожалуйста, это же всегда интересно.
Просто вы, вроде бы, приглашали всех к дискуссии - вот я и указал вам на неэффективность выбранного метода описания шрифтов. Если вам реально интересно, как это улучшить - пссмотрите описание формата шрифтов Адафруит. Там для описании букв используется только прямоугольник, в котором реально есть закрашенные пиксели, без необходимости описывать обширные пустые области.
раз уж вы взялись изобретать свое - там пусть оно будет немного лучше уже готового. А проектов вывода кирилицы на матрицы P10 в интернете довольно.
Вам просто сообщают, что вы стучитесь в открытую дверь. Поделка на фото - моя. И там не STM32, а вовсе даже esp8266 (с вебмордой и управлением по вайвай). И в качестве библиотеки использован стандартный DMD2 для атмег. Кучу поделок я делал на 168 и на 328 атмегах. С тем же самым DMD2. Так вот, с памятью проблемы бывали. На 168 постоянно, но и на 328 приходилось ужимать шрифты по максимуму.
И таки да, шрифты на DMD переменного размера (зависит от буквы).
Открываю получившиеся файлы и руками копирую массивы в один файл.
Готово.
Что таки я ощутил:
Какие настройки в программе "LCD Image Converter" нужно сделать чтобы создать свой шрифт?
Я сделал свой шрифт по вашей инструкции но матрица выводит иероглифы
ссылки на мой шрифт
https://drive.google.com/file/d/1qIMrwBiZu0FKHHbEB2j6z7HPwag4wKjX/view?u...
Какие настройки в программе "LCD Image Converter" нужно сделать чтобы создать свой шрифт?
Я сделал свой шрифт по вашей инструкции но матрица выводит иероглифы
ссылки на мой шрифт
https://drive.google.com/file/d/1qIMrwBiZu0FKHHbEB2j6z7HPwag4wKjX/view?u...
Если хотите, чтобы вам помогли - пишите подробнее
- какую библиотеку ДМД используете, какие матрицы, какая управляющая плата
- пытаетесь выводить на матрицу латиницу или национальные алфавиты?
- приведите код, работающий с матрицей
Раз уж вы тут про фонты, вставлю свои 5 копеек.
Лично я пользуюсь вот этой программой (требует яву) https://yadi.sk/d/XTrYnWbaODXy2w
Просто и удобно. Можно загружать системные фонты, можно рисовать свои. Лично я рисую свои - системные не отображаются в полной мере на всю высоту табло. На рисование фонта обычно трачу не больше часа - навострился.
Известные баги:
1. Иногда при экспорте не правильно выставляет высоту фонта в пикселях (и фонт не показывается нормально), надо всегда проверять итоговой фонт.h.
2. Если в описании символа есть какие то знаки (не буквы и цифры), то не делает экспорт в h. Какие точно символы, мне лень проверять, поэтому я всегда эти символы не подписываю, а потом подписываю уже в файле h. В принципе их можно вообще не подписывать, но я люблю порядок и что бы в файле фонт.h я всегда мог найти нужный символ. Точно знаю, что мешают экспорту /,\, (,), {,} - но это не весь список, остальные мне стало лениво вычислять. Просто не подписываю то, что обвел красным
И таки да, как вы можете видеть, ширина фонтов переменная. Все известные мне ДМД эти фонты употребляют вообще без проблем.
- Использую обычную DMD библиотеку, матрица P10(1R) HUB12 , Arduino Nano (ATmega328P)
- использую латиницу и кирилицу{ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~†рстуфхцчшщьєю
яАБВГДЕЖЗІИЇЙКЛМНОПРСТУФХЦЧШЩЬЄЮЯабвгдежзіиїйклмноп }
- Еще появляется такая ошибка при cмене кодировки в Sublime Text 3
- Файл source https://drive.google.com/file/d/187gBvxnArY5JPtJXb-7KhsrkZ119vsR6/view?usp=sharing
- код демка з DMD =>
скачайте вот этот рус-украинский фонт
https://github.com/board707/DMD_STM32/blob/master/st_fonts/UkrRusSystemFont5x7.h
попробуйте вывести надпись этим фонтом - какой результат?
На матрицу выводит следующие слова:
Слово "Заїзд" выводит на Матрицу => "ЗаЗзд"
а
слово "комерційного" => комерціЖного"
На матрицу выводит следующие слова:
Слово "Заїзд" выводит на Матрицу => "ЗаЗзд"
а
слово "комерційного" => комерціЖного"
это которым фонтом? из моей ссылки?
а когда выводили надпись вашим фонтом. что получалось?
Пробовал вот ети с вашей ссылки:
- UkrRusArial14.h
- UkrRusSystemFont5x7.h
вот что происходит с моим цифра "1"
для начала сравните местоположения символа "1" в своем и моих фонтах, похоже что у вас рисуется массив байт из какого-то произвольного места в памяти. Если ошибки в коде символа нет - тогда значит ваш фонт имеет неверный формат
Заснял процесс на видео
https://youtu.be/MvK-GDpVIjM
Если Sublime Text 3 не может избавиться от Unicode - используйте блокнот. В блокноте сохраните файл в ANSI. Но Sublime справится, если в настройках Riuson.com LCD Image Converter заменить юникодную штриховку на Нолики и Единички.
Не путайте библиотеку Freetronics DMD (https://github.com/freetronics/DMD) о которой говорю я и библиотеку DMD_STM32 (https://github.com/board707/DMD_STM32) о которой говорит b707.
Шрифты для них разные. DMD_STM32 требует дополнительных операций в коде скетча для отображения кириллицы.
DMD_STM32 поддерживает и фонты от Freetronics DMD тоже
Здравствуйте можете мне помочь хочу сделать национальный шрифти на p10 led попробовал как на видео но не получилось даже сделал один в один как написано тоже не работал.
какой нации?
какой нации?
Иврит?) А вообще - какая разница то?))
Армянский
Какого рода помощь вам нужна? Я не знаю армянского, но если там буквенное письмо, аналогично русскому или английскому - не вижу препятствий, почему не сделать шрифт.
В феврале с одним программистом из Алжира пытались прикрутить к матрицам арабский - вот это сложно :)
!"#$%&'()*+,-./0123456789:;<=>?\x0040ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~†рстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопրցւփքօֆևՐՑՒՓՔՕՖհձղճմյնշոչպջռսվտաբգդեզէըթժիլխծկՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ
Вот всё собрал в месте
Я хотел с программой lcd image Converter сделать но не получилось на экране показывает какие то иероглифы
с lcd image Converter помочь не смогу, я делал фонты по методам, описанным в #18 и 21
Можно и так мне все равно просто надо чтобы работало
Я хотел с этим программой попробовать, скачал но не открылся у меня.
Можешь показать ка надо сделать остальное я сам буду делать, чтобе не украсть у тебя больше время.
К сожалению, тут очень много нюансов, которые долго обьяснять и, главное, я сам их не очень помню.
GLCD Font Creator cкачивать тут
Там же вроде есть краткое описание, как пользоваться. Рисуете буквы по точкам и сохраняете как С-массив. Это получается фонт в формате Adafruit GFX, который можно выводить на матрицу библиотеками типа RGB_Matrix_Panel или DMD_STM32.
Другой вариант - это взять готовый фонт формата TTF (такие фонты тысячами лежат в интернете практически на любые языки) и сконвертировать его в матричный утилитой font-convert от Adafruit. Про использование TTF фонтов почитайте тут, в конце страницы там есть и про создание своих фонтов
Я пользовался обоими вариантами. но это было давно. Будут вопросы - спрашивайте, постараюсь вспомнить.
Просто у меня Ардуино нано а DMD_STM32 выдает ошибку что с нано не работает
старая версия DMD_STM32 поддерживала и Нано тоже
https://github.com/board707/DMD_STM32/tree/old-V1
Спасибо
Заснял процесс на видео
https://youtu.be/MvK-GDpVIjM
Если Sublime Text 3 не может избавиться от Unicode - используйте блокнот. В блокноте сохраните файл в ANSI. Но Sublime справится, если в настройках Riuson.com LCD Image Converter заменить юникодную штриховку на Нолики и Единички.
В общем не осилил (((
Собрал матрицу 96x96 (18 модулей P10) с контроллером ESP32 и библиотекой DMD32
Готовые шрифты типа Font_BOLD идут без проблем. Но нужно один шрифт высотой 40-42. Делал все по видео и на этапе алгоритмов просто выпал из реальности )))
В результате получил огромный файл C (3Мб), который питоновский скрипт не берет ни в каких кодировках.
Программа GLCD_FontCreator отлично генерит шрифты, но понятно что без русской части
Собрал матрицу 96x96 (18 модулей P10) с контроллером ESP32 и библиотекой DMD32
Готовые шрифты типа Font_BOLD идут без проблем. Но нужно один шрифт высотой 40-42.
Программа GLCD_FontCreator отлично генерит шрифты, но понятно что без русской части
а в шрифте Font_BOLD есть русская часть? Библиотека DMD32 умеет работать с национальными кодировками?
а в шрифте Font_BOLD есть русская часть? Библиотека DMD32 умеет работать с национальными кодировками?
Да. Все отлично работает
что-то не вижу в каталоге библиотеки на гитхабе такого фонта