Библиотека DMD для STM32 + AVR с поддержкой Unicode шрифтов

Тема в разделе "Глядите, что я сделал", создана пользователем b707, 21 май 2019.

  1. MAXIM1982

    MAXIM1982 Нуб

    Хорошо. Спасибо за помощь
     
  2. MAXIM1982

    MAXIM1982 Нуб

    Отправил.
     
  3. MAXIM1982

    MAXIM1982 Нуб

    Нашел проблему. Шрифт был переделан из Arial_Black_16_ISO_8859 где 256 символов, видимо это много. Т.е. в библиотеке для stm есть ограничение по количеству символов в шрифте?
     
    Последнее редактирование: 14 май 2020
  4. b707

    b707 Гуру

    нет такого ограничения.

    Максим, я же вас спрашивал - работает ли исходный фонт на моей библиотеке? - вы сказали да.
    Если фонт Arial_Black_16_ISO_8859, как вы говорите - работает - значит 256 символов не помеха.

    Да и вообще я запутался. То вы говорите, что использовали в фонте только цифры, то вдруг присылаете мне фонт с кучей символов в национальной кодировке... Если вам нужны только цифры - зачем вы взяли кириллическую версию фонта? - чтоб не скучно было? :)
     
  5. MAXIM1982

    MAXIM1982 Нуб

    Извините, что запутал. Исходный Arial_Black_16_ISO_8859 не работает
     
  6. b707

    b707 Гуру

    Хорошо, я попробую вечером потестировать.
    Кстати. у вас в скетче размер панели вывода - 1 матрица. Это вы так пробовали? - так точно работать не будет, если размер дисплея меньше размера букв - вообще ничего не выводится. Пробуйте на панно 2х2, например
     
  7. MAXIM1982

    MAXIM1982 Нуб

    Да и на большей пробовал
     
  8. b707

    b707 Гуру

    Максим, тогда все-таки пришлите мне реальный скетч, где вы пробовали ИМЕННО СВОЙ ФОНТ на большом панно, а не стандартный.
    Сами посудите - зачем мне скетч со стандартным фонтом - он и так работает
     
  9. b707

    b707 Гуру

    Анонс будущих обновлений :)

    Вчерне прикрутил поддержку цветных RGB матриц, уже показывает бегущую строку разными цветами:)



    Но, конечно, до релиза еще далеко. Пока на гитхаб ничего не выкладываю.


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

    Новая библиотека будет наследовать графику от Adafruit_GFX. Структура библиотеки планируется модульной, с одним родительским классом DMD_Stm32 и кучей дочерних классов для разных типов панелей и разных подключений. Код текущей библиотеки уже оформлен как класс

    - DMD_MonoChrome_SPI

    еще планируются :

    - DMD_Monochrome_Parallel - (написан) - с подключением каждой горизонтальной строки матриц к своему пину контроллера, что позволяет адресовать в 2-3 раза больше панелей при меньшей загрузке МК(ориентировочно - до сотни матриц на одной блюпилл)

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

    В ядре библиотеки тоже планируются улучшения. Добавится двойная буферизация для более плавной прокрутки...

    Будут и "ухудшения" - как же без них :) Скорее всего, после перехода на наследование от Адафруит придется отказаться от простеньких "стандартных" фонтов, оставить только адафруитские. Кроме того, очень многие из новых фич не рассчитаны на классические ардуино на чипах Атмел - и, вероятнее всего , дописывать этот функционал я не буду. Так что в полной мере библиотека будет работать только на СТМ - в соответсвии с названием.

    Готов к предложениям и замечаниям. Есть еще несколько идей, совсем пока далеких от реализации, так что о них пока писать рано :) Где бы только время на все найти)

    Если вы хотите поддержать разработку - на странице библиотеки на Гитхабе появилась кнопка для спонсоров :) Можно так же помогать матрицами, проводами и прочим... могу взять напрокат, потом верну. Анонимные спонсоры могут связаться со мной по почте :)
     
    Daniil, Un_ka и ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    Это уже ws2812?
     
    Последнее редактирование: 23 июл 2020
  11. b707

    b707 Гуру

    нет, это RGB
    На ws2812 матрица с таким числом диодов будет раз пять дороже
     
  12. b707

    b707 Гуру

    Обновление - новый релиз v0.5.0 (для СТМ32)

    Выложил на гитхаб новый релиз. По сути это на 70% новая библиотека, поэтому завел на гитхабе новую ветку (branch) и изменил название базового класса с DMD_STM32 на DMD_STM32a.

    Основные изменения:

    - Главное - добавлена поддержка многоцветных RGB панелей.
    - графическая система библиотеки теперь наследуется от известной либы Adafruit GFX, что позволяет использовать большое число встроенных в эту либу функций
    - добавлена двойная буферизация, что уменьшает мерцание на быстроменяющихся картинках, а так же позволяет проворачивать кое-какие визуальные эффекты
    - для монохромных матриц введен новый "параллельный" тип подключения, когда каждый горизонтальный ряд матриц подключается к своему отдельному DATA пину, позволяя выводить изображение на все ряды одновременно. имеет смысл на больших многорядных панелях.
    - сильно переписан код, библиотека получила модульную структуру с одним базовым классом и кучей дочерних для разных типов матриц.

    Пока поддерживаются следующие типы RGB матриц: 32x16 8scan, 64x32 16 scan, 80x40 20scan и 64x64 32scan. В ближайшее время добавятся еще два или три типа с 2s и 4s. Дальнейшее расширение парка поддерживаемых матриц зависит от спроса и наличия у меня таковых матриц для тестов.

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

    Новая версия лежит на гитхабе в отдельной ветке. Чтобы скачать код, необходимо выбрать ветку dev-V2 в выпадающем списке выше слева над списком файлов или воспользоваться прямой ссылкой: https://github.com/board707/DMD_STM32/tree/dev-V2 Стабильная версия 0.4.2 остается доступна как основная ветвь "master"

    Важное замечание - для работы требуется библиотека Adafruit-GFX версии 1.7.х или старше (то есть 1.6, 1.5 и тд). Более новые версии Adafruit-GFX пока не поддерживаются.

    Поскольку базовые классы новой и старой версии называется немного по разному (DMD_STM32 и DMD_STM32a), обе ветки можно устанавливать в Ардуино ИДЕ одновременно, не опасаясь конфликтов.
     
    Последнее редактирование: 21 май 2021
    Andrey12 нравится это.
  13. b707

    b707 Гуру

    Обновление - версия v0.6.3

    https://github.com/board707/DMD_STM32/tree/v0.6.3

    Изменния:

    - добавил поддержку однобитного цвета для RGB панелей. Режим предназначен для табло и вывесок, где не нужно сложных цветов и достаточно 2-3 основных цвета. Занимает меньше места в памяти и работает быстрее. Управление яркостью в этом режиме сделано аналогично монохромным панелям - ШИМ-ом на пин ОЕ. Соответственно к выбору пина применяются те же требования - то есть для ОЕ нужно использовать PWM пин Таймера3. Подробнее см. пример dmd_rgb

    - серьезно переписан вывод текста и функции бегущей строки. Скорость вывода фонтов увеличилась в 6-10 раз по сравнению с версией 0.5.1. Относится ко всем типам матриц, но особенно должно быть заметно на RGB.

    - добавлена поддержка соединения панелей зигзагом

    - куча мелких исправлений



    Огромное спасибо тем, кто тестирует код и отписывается о результатах.
     
  14. b707

    b707 Гуру

    Обновление - версия v0.6.8

    https://github.com/board707/DMD_STM32/tree/dev-V2

    Изменения:

    Переделал контроль яркости для всех RGB панелей через ШИМ, синхронизированный с основным циклом сканирования матриц. Теперь управление яркостью делается одинаково для всех типов матриц, поддерживаемых библиотекой, - через функцию

    Код (C++):
    dmd.setBrightness(br);  // br - brightness (0-255)
    Как следствие - для пина ОЕ теперь можно использовать только выходы Таймера 3 - то есть пины PA6,PA7 PB0 PB1

    Так же попытался вычистить все предупреждения компилятора. Еще много мелких изменений и исправлений.
     
    Последнее редактирование: 25 дек 2021
    ИгорьК и Рокки1945 нравится это.
  15. Рокки1945

    Рокки1945 Гуру

    Молодец, - не правда молодец !
     
  16. b707

    b707 Гуру

    спасибо
    Примеры работ на этой библиотеке
    [​IMG]

    [​IMG]
     
    SergeiL, ИгорьК и issaom нравится это.
  17. b707

    b707 Гуру

    Обновление - версия v0.7.0

    https://github.com/board707/DMD_STM32/tree/dev-V2

    Релиз является подготовкой к добавлению поддержки чипов STM32F4

    Новые возможности:

    - добавляена поддержка уличных RGB матриц 1/2 1/4 скан,
    Посколько типов сканирования уличных матриц у китайцев существует десятки видов, то очевидно что описанных в библиотеке 4х разновидностей не хватит. Будем добавлять по ходу. Положил в примерах специальный скрипт dmd_rgb_pattern_test.ino. Если у вас есть уличная матрица, которая не работает ни с одним шаблоном библиотеки - запускаете тест, снимаете результат на видео и присылаете мне.

    - в Монохром Параллельном режиме добавлена возможность выбора ДАТА пинов не только в нижней, но теперь и в верхней половине GPIO порта (замедляет вывод, без необходимости не использовать)
    - добавлен новый файл DMD_Config.h. в котором будут собираться различные настройки библиотеки, не требующие постоянного изменения, такие как выбор таймеров или частота ШИМ
    - обновлены примеры, добавлен новый скетч с выводом картинки из битмап

    Так же много мелких правок и исправлений

    Огромное спасибо тем, кто сообщает об ошибках.
     
    SergeiL нравится это.
  18. parovoZZ

    parovoZZ Гуру

    надо уже GigaDevice поддерживать. STM32 дюже дорогие и недоступные.
     
  19. b707

    b707 Гуру

    чуть дороже Нано
     
  20. parovoZZ

    parovoZZ Гуру

    Да, да, да))) GD32F350 стоит 1.5 бакса, а такой же по функционалу стм32 400 рублей.