Ветка-то возможна та, но все гуру отсюда куда-то разбежались) Сам методом научного тыка пытаюсь в тонкостях разобраться.
Попробуй поискать решение на форуме Адафрут https://forums.adafruit.com/. Да, инглиш, но гугл.переводчик более-менее справляется
Печально это все... Тоже методом научного тыка разираюсь. Хотела по DMD завести, потому как не уверена, что получится через библиотеки Adafruitl сложить 4 матрицы... а по DMD не знаю как правильно подключить....
Ну выбора особо нет, буду дальше научно тыкать, когда разберусь, отпишу сюда.
И спасибо за поддержку, буду искать там.... хотя на этом форуме я уже тоже полазила немного.
можно еще попытаться потрусить продавца, который вам эти модули продал. У него должна быть документация, даташит или еще что-нибудь. А так - методом тыка пытаться попать в аналогичную схему подключения к DMD, может что получится
можно еще попытаться потрусить продавца, который вам эти модули продал. У него должна быть документация, даташит или еще что-нибудь. А так - методом тыка пытаться попать в аналогичную схему подключения к DMD, может что получится
))))) первым делом к китайцам полезла... нет там ничего. Эти матрицы мне достались как резерв на замену на экран. Кстати там они работают, и видео, и тексты гоняют. Но там другой контроллер, и загружается туда инфа через HDплеер блоками. Ну таки методом тыка, придется попадать... или адафруитские библиотеки переписывать.
Я так понимаю, 1 матрица адафруитскими библиотеками определяется как 2 вертикальные 16х16.... попытаюсь на этой неделе как-то решить эту задачку. Или 2 вертикальные 16х32. Вобщем тыкаться надо. Мысли по этому поводу появились, нодо пробовать, а пробовать буду дома.
Мои раскопки на ту тему привели к таким вот выводам: моя матрица 32х16 с 1\4 сканирования (pin A, B), библиотеки RGB matrix panel и Adafruit_GFX работают с матрицами 1\8 (pin A, B, C) и 1\16 (pin A, B, C, D) сканирования, т.е. одновременно работают 1\4 или 1\8, или 1\16 часть всех светодиодов.
Библиотеки SPI и DMD работают с pin A и B и на одноцветных матрицах. Или я в этом случае ошибаюсь?
Мои раскопки на ту тему привели к таким вот выводам: моя матрица 32х16 с 1\4 сканирования (pin A, B), библиотеки RGB matrix panel и Adafruit_GFX работают с матрицами 1\8 (pin A, B, C) и 1\16 (pin A, B, C, D) сканирования, т.е. одновременно работают 1\4 или 1\8, или 1\16 часть всех светодиодов.
Библиотеки SPI и DMD работают с pin A и B и на одноцветных матрицах. Или я в этом случае ошибаюсь?
Как продвигается ваш поиск библиотеки для скважности 1/8? сам сейчас столконулся с этим моментом и пока что без результатов. Есть-то на примете?
Готовых бибиотек для моих матриц и ардуино нет (((. Есть некий трансформер для контроллера RPI, но я его не пробовала, у меня ардуино уно. Искала долго и упорно... сейчас переписываю библиотеки от адафруит. Идет со скрипом, да еще и со временем проблема сейчас. А у Вас матрица с 1/8 скан? А размер? Если 16х32 и скан 1/8, то библ RGB_Panel_Matrix, стандартная должна пойти на ура.
Все несколько сложнее. у меня тут самопальная матрица 8х32 со скважностью 1/8 на сдвиговых регистрах dm115 на колонках (по 8шт на регистр, катод) и ни к чему не подвешенным контролем строк (анод). Сейчас сделал контроллер трок на 74LS145N и тразиссторами для усиления. пробуюу всем этим рулить хоть чем-нибудь. С либой DMD чтото пробегает, DMD2 тоже, но както подругому. Короче танцы с бубном продолжаются
Доброго времени суток! Возник вопрос, подключаю панель "P10 16x32 white" к arduino uno, запускаю примеры из библиотеки DMD, изображение есть, только оно инвертировано, т.е. вся панель горит, а светодиоды рисунка не горят. В чем может быть проблема? Заранее спасибо.
Я вот делал себе шрифт только с цифрами для секундомера с реальными 16х12 точек.
что для начала нужно понять - это как библиотека обрабатывает шрифт.
в вашем случае (со шрифтом 3х6) нужно отрисовать эти шрифты, по точкам перевести в бинарник и бинарник перевести в HEX с помощью, например, этого сайта. Или перевести Экселем, для этого есть соответствующая формула. Ну а далее собираем файл. Вот мой шрифт с комментариями. Вам нужно сделать то же самое, только в кодировке символов будет меньше значений. А далее уже играемся с парааметрами вывода на саму матрицу, выбирая позиции для нужных вам выводимых значений
проверьте еще раз правильность подключения матрицы к ардуино. Где-то чтото не стыкуется. Я подключаю по этой схеме к Уно и Нано - все замечательно работает.
и поищите datasheet на вашу матрицу, что бы выяснить какой пин совпадает с нужной маркировкой
Попробу передрать сюда статью по этим модулям, спертую с очень странного сайта... Чтото мне подказываает, что автор вопроса уже ее видел, но я продублирую.
LED модуль P10C4V12
LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость панелей легко регулировать, а вот если будет желание каждого пикселя, то тут надо извращаться. Для создания текстовых, бегущих строк это то что надо.
Мне попался в руки двухцветный модуль P10C4V12 (красные и зеленые светодиоды), с разрешением 16*32 RG.
Как они подключаются? По питанию проблем не будет, тут все просто, колодка, с детальным описание GND и VСС напряжение питания номинальное 5 вольт. Для подключения в комплекте идут комплекте два силовых проводов красного и черного цвета, а также интерфейсный шлейф.
Интерфейс подключения, представляет собой 16 пиновый соединитель, назначение выводов следующее:
Дальше идет описание процесса подключения модулей на МК PIC24FJ64GA004, что в нашем случае уже не интересно.
Попробу передрать сюда статью по этим модулям, спертую с очень странного сайта... Чтото мне подказываает, что автор вопроса уже ее видел, но я продублирую.
Да. Сатью видел. Она единственное что в инете находится по марке модели.
Подключение проверял неоднократно. Все нормально. Жду сейчас логический анализатор с китая, буду заниматься "реверс инжинирингом" ))) От контроллера BX-5U0, панель нормально показывает. А вот от ардуины не хочет.
китайские контроллеры самоятоятельно сканируют модули на полярность логических элеметнтов, потому и работает. А ардуино так не умеет, по крайней мере, из коробки. Если кто напишет такой сканер - получит 40 девственниц еще при жизни =)
В вашем случае нужно добиться хотя бы инвертированного читаемого текста, а далее ковырять саму библиотеку и донастраивать нужные параметры. Ятак с модулями на max7219 игрался, результат положительный
Ну, во-первых, у нас в #include стоят кавычки "", а должны быть <> - это большая разница.
Во-вторых, чтобы напрямую задавать шрифт без указания пути, сам файл со шрифтом должен лежать в одной папке со скетчем (тогда при запуке скетча в Arduino IDE он будет открываться в соседней вкладке). Если шрифты у вас лежат не рядом со скетчем, обычно их помещают в папке font в папке с библиотекой. И обращаются к ним соответственно через #include <fonts/digit.h>
Попробуйте для начала имправить это. Если получится - возможно пролбема с самим шрифтом, может не так сохранили или еще что-то. Вот ссылка на GitHub на мой шрифт, попробуйте подставить именно его.
Народ, появились новые интересные матрицы - тот же DMD P10, но на SMD-светодиодах. Особенности:
- модуль тоньше и заметно легче обычной матрицы
- энергопотребление немного ниже, чем в обычных матрицах, что не может не радовать
- распиновка та же, что и на обычных Р10, что позволяет подключать их в уже существующие проекты на Ардуино
- при использовании стандартных примеров и скетчей. написанных под старые матрицы, есть неприятный момент - матрица дает инвертированное изображение. Если для библиотеки DMD описание инверсии вроде тут мелькало, то для DMD2 ничего нет, если у кого-то был опыт - отпишитесь как этим бороться, это будет полезная инфа
это из примера библиотеки ДМД. 15 и 3 - отсутупы слева и сверху. Выставляете нужное положение методом подбора и все, двоеточие будет всегда на одном месте. Следите только чтобы другие смволы на эту позицию не залезали, иначе начнется каша.
Насчет шрифта - не могу сказать в чем проблема. Я использую DMD2 и там все работает предельно просто. Попробуйте перенести файл шрифта в папку с самим скетчем. Или подставить мой файл шрифта с гитхаба - возможно вы чтото не так собрали в шрифтовом файле. Или переписать проект под либу DMD2, если вам не нужна бегущая строка (в DMD2 она боле дерганная, чем в DMD)
лично я с матрицами дело не имел, так что выложить ничего не смогу,
судя по тому что я вычитал в DMD2.cpp (и если я правильно понял) - да, только прописав в параметрах вызываемой процедуры GRAPHICS_INVERSE вы получите инверсионное изображение и естественно только в тех функциях где это реализовано, соответсвенно смотрим исходник каждой нужной процедуры.
часть процедур вообще никак этот параметр не обрабатывают :(
я же вам выше написал: открываете исходник нужной процедуры - смотрите есть ли обработка параметров, если нет то или добавляете или тупо переписываете под себя (я так и делал) - дешево и сердито.
Спасибо-разобрался. Вопрос -сюда можно ( sprintf(buffer1, "%02d.%02d,%03d", mins, secs, fractime); врезать дветочие (:) убрав точку или запятую в сикундамер - что бы замятая или точка не занимала место по выбраному шрифту 5х7 а меньше (уже- :)
А хз :) можно что в процедуру вставить или нет)
Вы бы для начала весь текст процедуры привели, тут на форуме есть супер программисты (не я) думаю разберёмся.
и видим верхнюю часть нашего нуля. Аналогично работаем и с нижней.
В Вашем случае будет только одна строка, т.к. шрифт будет высотой не больше 8 точек.
Для тоге, чтобы собрать шрифт, нужно отрисовать его в двоичном виде и перевести его в HEX. Также нужно правильно прописать в начале шрифтового файла ширину символов.
З.Ы. Я правда не совсем представляю читабельность шрифта размером 3х5 точек. В любом случае, инструкции уже написаны и разжеваны, нужно сесть и сделать. Пока не начнешь делать, не поймешь как это устроено
ВРОДЕ ВСЕ ТАК. Но в GLCDFont – устанавливаешь высоту-ширину шрифта, в секторе 3х5 прорисовываешь цифры, транспортируешь, устанавливаешь в Font b и тгд... и все не работает. В чем секрет. Да и ваш фаил не цепляется и не работает. Что, все специально не делятся. В GLCDFont- до безобразия так просто - а итоге не работает. Да и почему так мало по сути шрифтов по размерам? В программе бегу шей строке все лаконично и выбор ох как богат.
Это то-же самое, что с NRF24L01+ работа ТРАНСИВЕРА (Прием и передача) где нормальные примеры? Где исходники в лучшем фай HEX и все.
GLCDFont создает шрифт не в том виде, которые ест библиотека DMD, очередность пикселей другая. Потому я говорю про другие инструменты для создания шрифта. GLCDFont я использовал только для прориовки самого символа, чтобы видеть какой он вообще получится. но сам шрифт я сводил вручную и у меня все прекрасно работает
Нород - Я вчера в космос туда и обратно летал. Да сколько можно пузырями мыльными- просят шрифтом поделится -.А в итоге где и как у вас работает. Я вам луну покажу. Это то-же самое, что с NRF24L01+ работа ТРАНСИВЕРА (Прием и передача) где нормальные примеры? Где исходники в лучшем фай HEX и все.
Народ, столкнуля с такой проблемой: на ардуино, ведущую DMD, передается кириллица, отличная от русского (украинские символы). Конкретно запоролся на символах ЄєЇїІі. И вот какая фигня: Отправляется буква правильно - принимается ардуино правильно - на ДМД выходит буква "ф" вместо буквы "Є".
Ковыряюсь второй день, выяснилось, что бблиотека отрабатывает только младший байт в кириллице,а старший игнорирует.
В итоге имеем такую картину:
\xd1\x84 //буква "ф"
\xd0\x84 // буква "Є"
В итоге библиотке хавает только "х84" и выдает подходящую по коду букву.
Кто знает, как с этим бороться? Ранее ставили такой костыль: т.к. эти буквы находятся на клавиатуре на месте русских ЭэЪъЫы, в исходном тексте прописывались именно эти буквы, а в самой библиотеке подставлялась битная матрица нужных символов укр.алфавита. Но это именно костыль, надо бы найти более логичное решение проблемы.
З.Ы. выложил подправленный шрифт для цыфр и некоторых символов с размером 16*10 точек Github
и в самом шрифте были заменены НЕХы букв ЭЪЫ на ЄЇІ. В итоге на дисплее отображается все как надо и колхозить с исходным текстом не приходится.
Подобная хема может сработать с белорусским. казахским и другими языками, которые от руской кириллицы отличаются не сколькими символами. Как вы поняли. переназначать можно на любой не используемый символ в библиотеке шрифта.
Два дня туплю (как и положено новичку конечно)) - не как не могу сделать свой шрифт ((.
Ваш "кусок кода" и шрифт русский в качестве примера, он у меня работает но надпись не влазит (у меня 96х16 табло), широкий/жирный, хочу сделать тоже самое (16 шрифт русский для UNO) но тонкий/узкий, перечитал и перепробовал кучу всего, но явно не хватает знаний (в кодировках и С++) - не могу правильно сделать Main_Font - использовал LCDVision и GLCDFontCreator2, но видимо значения/настроцки не те ввожу - не получается заменить Ваш шрифт своим - и Ваш изменить - перерисовать тоже не соображу как - точнее как понимаю, нужно перекодировать нужные символы, но ньансы выше обозначенные не позволяют ((.
по существу - подскажите как создать файлик Main_Font_2 - ссылка www.apetech.de/fontCreator - не рабочая уже, да и мне нужно знать какие именно настройки ставить в аналоге - что бы он работал так же как Ваш
занимаюсь лед дисплеями, использую контроллеры специализированные, но встала задача внешнего управления на кнопках, надо 4 слова всего написать для солдат, гололёд, снег и т.п - мои БЭИКСЫ и про прочие Листены при всей своей мощи не подходят, в общем прошу тыкнуть мну носом куда надо - заранее благодарен всем не равнодушным!
Ну и получаю фигню:
Может я не в той ветке спрашиваю?
Ветка-то возможна та, но все гуру отсюда куда-то разбежались) Сам методом научного тыка пытаюсь в тонкостях разобраться.
Попробуй поискать решение на форуме Адафрут https://forums.adafruit.com/. Да, инглиш, но гугл.переводчик более-менее справляется
Ветка-то возможна та, но все гуру отсюда куда-то разбежались) Сам методом научного тыка пытаюсь в тонкостях разобраться.
Попробуй поискать решение на форуме Адафрут https://forums.adafruit.com/. Да, инглиш, но гугл.переводчик более-менее справляется
Печально это все... Тоже методом научного тыка разираюсь. Хотела по DMD завести, потому как не уверена, что получится через библиотеки Adafruitl сложить 4 матрицы... а по DMD не знаю как правильно подключить....
Ну выбора особо нет, буду дальше научно тыкать, когда разберусь, отпишу сюда.
И спасибо за поддержку, буду искать там.... хотя на этом форуме я уже тоже полазила немного.
можно еще попытаться потрусить продавца, который вам эти модули продал. У него должна быть документация, даташит или еще что-нибудь. А так - методом тыка пытаться попать в аналогичную схему подключения к DMD, может что получится
можно еще попытаться потрусить продавца, который вам эти модули продал. У него должна быть документация, даташит или еще что-нибудь. А так - методом тыка пытаться попать в аналогичную схему подключения к DMD, может что получится
))))) первым делом к китайцам полезла... нет там ничего. Эти матрицы мне достались как резерв на замену на экран. Кстати там они работают, и видео, и тексты гоняют. Но там другой контроллер, и загружается туда инфа через HDплеер блоками. Ну таки методом тыка, придется попадать... или адафруитские библиотеки переписывать.
Я так понимаю, 1 матрица адафруитскими библиотеками определяется как 2 вертикальные 16х16.... попытаюсь на этой неделе как-то решить эту задачку. Или 2 вертикальные 16х32. Вобщем тыкаться надо. Мысли по этому поводу появились, нодо пробовать, а пробовать буду дома.
Мои раскопки на ту тему привели к таким вот выводам: моя матрица 32х16 с 1\4 сканирования (pin A, B), библиотеки RGB matrix panel и Adafruit_GFX работают с матрицами 1\8 (pin A, B, C) и 1\16 (pin A, B, C, D) сканирования, т.е. одновременно работают 1\4 или 1\8, или 1\16 часть всех светодиодов.
Библиотеки SPI и DMD работают с pin A и B и на одноцветных матрицах. Или я в этом случае ошибаюсь?
Всем привет. я тут совсем не чего не понимаю. для меня это темный лес.
Имеется в наличие led matrix 64х16. atmega 328/ и желание понять как это все работает.
На матрице есть такие микрухи 74hc245 2 штуки и 74hc138d 4 штуки для управления светодиодами. 74hc138d 2 шт для управления поливеками.
просьба скинуть ссылки книжки любую полезную информацию. где будет описанно простым понятным языком.
http://st.lartmaster.ru/1/759/621/LED_matrix_16x32.pdf
http://wreckage.ru/control-led-adafruit-from-arduino/
Погуглите про сдвиговые регистры, даташит на вашу матрицу.... ну для начала )))
Мои раскопки на ту тему привели к таким вот выводам: моя матрица 32х16 с 1\4 сканирования (pin A, B), библиотеки RGB matrix panel и Adafruit_GFX работают с матрицами 1\8 (pin A, B, C) и 1\16 (pin A, B, C, D) сканирования, т.е. одновременно работают 1\4 или 1\8, или 1\16 часть всех светодиодов.
Библиотеки SPI и DMD работают с pin A и B и на одноцветных матрицах. Или я в этом случае ошибаюсь?
Как продвигается ваш поиск библиотеки для скважности 1/8? сам сейчас столконулся с этим моментом и пока что без результатов. Есть-то на примете?
Готовых бибиотек для моих матриц и ардуино нет (((. Есть некий трансформер для контроллера RPI, но я его не пробовала, у меня ардуино уно. Искала долго и упорно... сейчас переписываю библиотеки от адафруит. Идет со скрипом, да еще и со временем проблема сейчас. А у Вас матрица с 1/8 скан? А размер? Если 16х32 и скан 1/8, то библ RGB_Panel_Matrix, стандартная должна пойти на ура.
Все несколько сложнее. у меня тут самопальная матрица 8х32 со скважностью 1/8 на сдвиговых регистрах dm115 на колонках (по 8шт на регистр, катод) и ни к чему не подвешенным контролем строк (анод). Сейчас сделал контроллер трок на 74LS145N и тразиссторами для усиления. пробуюу всем этим рулить хоть чем-нибудь. С либой DMD чтото пробегает, DMD2 тоже, но както подругому. Короче танцы с бубном продолжаются
А, подумать надо....
Ну так, на вскидку, нужен дешифратор, который даст из комбинации A и B на линию анодов.... и отрулить катодами в регистре....
Суть: на аноды с дешифратора, а на катоды или побитно передавать или маской.... Сейчас не могу долго обьяснять, я на работе, аврал у меня тут
Можете попытаться без графических библиотек, только с SPI, дать на аноды (все аноды регистра) и на какой-то из катодов.
https://www.youtube.com/watch?v=yf-6UIfVDmY это посмотрите ещё
Доброго времени суток! Возник вопрос, подключаю панель "P10 16x32 white" к arduino uno, запускаю примеры из библиотеки DMD, изображение есть, только оно инвертировано, т.е. вся панель горит, а светодиоды рисунка не горят. В чем может быть проблема? Заранее спасибо.
Я вот делал себе шрифт только с цифрами для секундомера с реальными 16х12 точек.
что для начала нужно понять - это как библиотека обрабатывает шрифт.
в вашем случае (со шрифтом 3х6) нужно отрисовать эти шрифты, по точкам перевести в бинарник и бинарник перевести в HEX с помощью, например, этого сайта. Или перевести Экселем, для этого есть соответствующая формула. Ну а далее собираем файл. Вот мой шрифт с комментариями. Вам нужно сделать то же самое, только в кодировке символов будет меньше значений. А далее уже играемся с парааметрами вывода на саму матрицу, выбирая позиции для нужных вам выводимых значений
#include <inttypes.h> #ifdef __AVR__ #include <avr/pgmspace.h> #elif defined (ESP8266) #include <pgmspace.h> #else #define PROGMEM #endif #ifndef DIGIT_16_H #define DIGIT_16_H #define DIGIT_16_WIDTH 12 #define DIGIT_16_HEIGHT 16 static const uint8_t digit_16[] PROGMEM = { 0x30, 0x3A, // size ???? 48 x 58 - не понял что это :) 0x0C, // width 12 - ширина символа 0x10, // height 16 - высота символа 0x30, // first char - ASCII код первого символа 0x0B, // char count - количество символов в шрифте // char widths - ширина символа 0x0A, // 0 0x0A, // 1 0x0A, // 2 0x0A, // 3 0x0A, // 4 0x0A, // 5 0x0A, // 6 0x0A, // 7 0x0A, // 8 0x0A, // 9 0x03, // : // font data - кодировка символов 0xFC, 0xFE, 0xFF, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFE, 0xFC, 0x3F, 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, 0x3F, // 48 - 0 0x00, 0x00, 0x60, 0x70, 0x38, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, // 49 - 1 0x3C, 0x3E, 0x3F, 0x03, 0x03, 0x03, 0x83, 0xFF, 0xFE, 0x7C, 0xE0, 0xF0, 0xF8, 0xDC, 0xCE, 0xC7, 0xC3, 0xC1, 0xC0, 0xC0, // 50 - 2 0x18, 0x1E, 0x07, 0xC3, 0xC3, 0xC3, 0xC3, 0xFE, 0xFC, 0x38, 0x18, 0x38, 0x78, 0xC0, 0xC0, 0xC0, 0xC0, 0x71, 0x7F, 0x1F, // 51 - 3 0x00, 0x80, 0xE0, 0x38, 0x1E, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x07, 0x07, // 52 - 4 0xF8, 0xFF, 0xFF, 0x63, 0x63, 0x63, 0x63, 0xE3, 0xC3, 0x83, 0x18, 0x38, 0x78, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x7F, 0x1F, // 53 - 5 0xF8, 0xFE, 0x87, 0xC3, 0xC3, 0xC3, 0xC3, 0x87, 0x9E, 0x1C, 0x1F, 0x7F, 0xE1, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0x7F, 0x1F, // 54 - 6 0x07, 0x03, 0x03, 0x03, 0x83, 0xE3, 0xF3, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, // 55 - 7 0x3C, 0xFE, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFE, 0x3C, 0x3F, 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, 0x3F, // 56 - 8 0xFC, 0xFE, 0xFF, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFE, 0xF8, 0x21, 0x63, 0xE3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0x7F, 0x1F, // 57 - 9 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x1C, // 58 - ":" }; #endifПриветствую.
Наставьте на путь истинный. Досталось по случаю несколько панелей P10C4V12. двухцветные Ren и Green
Любые скетчи, которые есть в инете, выдают "мусор". Подключение к Arduino nano, сделаны по схеме
Пробовал и скетчи из начала темы и библиотеки DMD, DMD2
Что еще покурить ?
Мусор покажи
Это из примера сообщения №40 Волгоград
А что получается на примерах из библиотек дмд? В данном случае я вижу неверные параметры по входу данных на модуль и обратную полярность сигналов
Это пример из библиотеки DMD2 ScrollingAlphabet
проверьте еще раз правильность подключения матрицы к ардуино. Где-то чтото не стыкуется. Я подключаю по этой схеме к Уно и Нано - все замечательно работает.
и поищите datasheet на вашу матрицу, что бы выяснить какой пин совпадает с нужной маркировкой
Попробу передрать сюда статью по этим модулям, спертую с очень странного сайта... Чтото мне подказываает, что автор вопроса уже ее видел, но я продублирую.
Попробу передрать сюда статью по этим модулям, спертую с очень странного сайта... Чтото мне подказываает, что автор вопроса уже ее видел, но я продублирую.
Да. Сатью видел. Она единственное что в инете находится по марке модели.
Подключение проверял неоднократно. Все нормально. Жду сейчас логический анализатор с китая, буду заниматься "реверс инжинирингом" ))) От контроллера BX-5U0, панель нормально показывает. А вот от ардуины не хочет.
китайские контроллеры самоятоятельно сканируют модули на полярность логических элеметнтов, потому и работает. А ардуино так не умеет, по крайней мере, из коробки. Если кто напишет такой сканер - получит 40 девственниц еще при жизни =)
В вашем случае нужно добиться хотя бы инвертированного читаемого текста, а далее ковырять саму библиотеку и донастраивать нужные параметры. Ятак с модулями на max7219 игрался, результат положительный
Сори Hr.Smartus- бьюсь 3 день и не могу прицепить к скетчу данный шрифт. скажем под названием Font3x6. В чем ошибка может быть?
-----------------------------------
/* * * Font3x6 * * * File Name : Font3x6.h * Date : 28 Oct 2008 * Font size in bytes : 470 * Font width : 3 * Font height : 6 * Font first char : 32 * Font last char : 127 * Font used chars : 94 * * The font data are defined as * * struct _FONT_ { * uint16_t font_Size_in_Bytes_over_all_included_Size_it_self; * uint8_t font_Width_in_Pixel_for_fixed_drawing; * uint8_t font_Height_in_Pixel_for_all_characters; * unit8_t font_First_Char; * uint8_t font_Char_Count; * * uint8_t font_Char_Widths[font_Last_Char - font_First_Char +1]; * // for each character the separate width in pixels, * // characters < 128 have an implicit virtual right empty row * * uint8_t font_data[]; * // bit field of all characters */ #include <inttypes.h> #ifdef __AVR__ #include <avr/pgmspace.h> #elif defined (ESP8266) #include <pgmspace.h> #else #define PROGMEM #endif #ifndef DIGIT_16_H #define DIGIT_16_H #define DIGIT_16_WIDTH 12 #define DIGIT_16_HEIGHT 16 static const uint8_t digit_16[] PROGMEM = { 0x30, 0x3A, // size ???? 48 x 58 - не понял что это :) 0x0C, // width 12 - ширина символа 0x10, // height 16 - высота символа 0x30, // first char - ASCII код первого символа 0x0B, // char count - количество символов в шрифте // char widths - ширина символа 0x0A, // 0 0x0A, // 1 0x0A, // 2 0x0A, // 3 0x0A, // 4 0x0A, // 5 0x0A, // 6 0x0A, // 7 0x0A, // 8 0x0A, // 9 0x03, // : // font data - кодировка символов 0xFC, 0xFE, 0xFF, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFE, 0xFC, 0x3F, 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, 0x3F, // 48 - 0 0x00, 0x00, 0x60, 0x70, 0x38, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, // 49 - 1 0x3C, 0x3E, 0x3F, 0x03, 0x03, 0x03, 0x83, 0xFF, 0xFE, 0x7C, 0xE0, 0xF0, 0xF8, 0xDC, 0xCE, 0xC7, 0xC3, 0xC1, 0xC0, 0xC0, // 50 - 2 0x18, 0x1E, 0x07, 0xC3, 0xC3, 0xC3, 0xC3, 0xFE, 0xFC, 0x38, 0x18, 0x38, 0x78, 0xC0, 0xC0, 0xC0, 0xC0, 0x71, 0x7F, 0x1F, // 51 - 3 0x00, 0x80, 0xE0, 0x38, 0x1E, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x07, 0x07, // 52 - 4 0xF8, 0xFF, 0xFF, 0x63, 0x63, 0x63, 0x63, 0xE3, 0xC3, 0x83, 0x18, 0x38, 0x78, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0x7F, 0x1F, // 53 - 5 0xF8, 0xFE, 0x87, 0xC3, 0xC3, 0xC3, 0xC3, 0x87, 0x9E, 0x1C, 0x1F, 0x7F, 0xE1, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0x7F, 0x1F, // 54 - 6 0x07, 0x03, 0x03, 0x03, 0x83, 0xE3, 0xF3, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, // 55 - 7 0x3C, 0xFE, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFE, 0x3C, 0x3F, 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, 0x3F, // 56 - 8 0xFC, 0xFE, 0xFF, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFE, 0xF8, 0x21, 0x63, 0xE3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0x7F, 0x1F, // 57 - 9 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x1C, // 58 - ":" }; #endifНу, во-первых, у нас в #include стоят кавычки "", а должны быть <> - это большая разница.
Во-вторых, чтобы напрямую задавать шрифт без указания пути, сам файл со шрифтом должен лежать в одной папке со скетчем (тогда при запуке скетча в Arduino IDE он будет открываться в соседней вкладке). Если шрифты у вас лежат не рядом со скетчем, обычно их помещают в папке font в папке с библиотекой. И обращаются к ним соответственно через #include <fonts/digit.h>
Попробуйте для начала имправить это. Если получится - возможно пролбема с самим шрифтом, может не так сохранили или еще что-то. Вот ссылка на GitHub на мой шрифт, попробуйте подставить именно его.
Народ, появились новые интересные матрицы - тот же DMD P10, но на SMD-светодиодах. Особенности:
- модуль тоньше и заметно легче обычной матрицы
- энергопотребление немного ниже, чем в обычных матрицах, что не может не радовать
- распиновка та же, что и на обычных Р10, что позволяет подключать их в уже существующие проекты на Ардуино
- при использовании стандартных примеров и скетчей. написанных под старые матрицы, есть неприятный момент - матрица дает инвертированное изображение. Если для библиотеки DMD описание инверсии вроде тут мелькало, то для DMD2 ничего нет, если у кого-то был опыт - отпишитесь как этим бороться, это будет полезная инфа
unsignedcharscreen [128];//Видеопамять//Символ ": " Я не знаю -метон подбора 20,4charsl1 [] = {voidsetup() {for(inti = 0; i < 128; i++)//Очистка видеопамяти{screen[i] = 0;};}voidloop() {digitalWrite(pinEn, HIGH);}if(vrem == pa) {for(inti = 0; i < 128; i++)Может в таком духе как из первых постов?это из примера библиотеки ДМД. 15 и 3 - отсутупы слева и сверху. Выставляете нужное положение методом подбора и все, двоеточие будет всегда на одном месте. Следите только чтобы другие смволы на эту позицию не залезали, иначе начнется каша.
Насчет шрифта - не могу сказать в чем проблема. Я использую DMD2 и там все работает предельно просто. Попробуйте перенести файл шрифта в папку с самим скетчем. Или подставить мой файл шрифта с гитхаба - возможно вы чтото не так собрали в шрифтовом файле. Или переписать проект под либу DMD2, если вам не нужна бегущая строка (в DMD2 она боле дерганная, чем в DMD)
лично я с матрицами дело не имел, так что выложить ничего не смогу,
судя по тому что я вычитал в DMD2.cpp (и если я правильно понял) - да, только прописав в параметрах вызываемой процедуры GRAPHICS_INVERSE вы получите инверсионное изображение и естественно только в тех функциях где это реализовано, соответсвенно смотрим исходник каждой нужной процедуры.
часть процедур вообще никак этот параметр не обрабатывают :(
например
case GRAPHICS_INVERSE:пусто в обработке - дописывать самим :(
Такс, методом проб и ошибок вышло следующее:
ДЛЯ ИНВЕРТИРОАННОЙ МАТРИЦЫ
добавляем в Setup() строку dmd.fillScreen(true); - эта команда заливает всю матрицу, НО в нашем случае она наоборот ее очистит.
Далее в коде в строку вывода добавляем параметр GRAPHICS_INVERSE, что даст инверсию поступаемых данных.
В итоге мы имеем залитую черным матрицу и красные буквы!
Вот пример кода:
#include <SPI.h> #include <DMD2.h> #include <fonts/Droid_Sans_16.h> const int WIDTH = 1; const int HEIGHT = 1; String text = "hello!"; SoftDMD dmd(WIDTH,HEIGHT); void setup() { Serial.begin(9600); dmd.setBrightness(55); dmd.begin(); dmd.selectFont(Droid_Sans_16); dmd.fillScreen(true); } void loop() { dmd.drawString(1,1, String(text), GRAPHICS_INVERSE); }Сейчаc еще погоняю этот вариант, должен работать и на бегущей строке
------------------------
dmd.drawString - работает. Остальные похоже нет
dmd.drawString - работает. Остальные похоже нет
я же вам выше написал: открываете исходник нужной процедуры - смотрите есть ли обработка параметров, если нет то или добавляете или тупо переписываете под себя (я так и делал) - дешево и сердито.
Спасибо-разобрался. Вопрос -сюда можно ( sprintf(buffer1, "%02d.%02d,%03d", mins, secs, fractime); врезать дветочие (:) убрав точку или запятую в сикундамер - что бы замятая или точка не занимала место по выбраному шрифту 5х7 а меньше (уже- :)
А хз :) можно что в процедуру вставить или нет)
Вы бы для начала весь текст процедуры привели, тут на форуме есть супер программисты (не я) думаю разберёмся.
И я думаю если разработчиками библиотеки не было заложено использование разное широко шрифта - ничего не получиться - ручками исправлять....
Спасибо- думаю шрифт искать или рисовать типа 3х5
пробовал в GLCD Font - чесно не получается каля баля. А нужно 1234567890 и : ;
что- то есть там хитрое такое.
Ничего там хитрого нет. GLCD Font не панацея, я свой шрифт в Excel'e собирал.
Из моего примера. Берем символ "0". Вот его код:
Берем первую строку и переводим в бинарник, получаем следующее:
и видим верхнюю часть нашего нуля. Аналогично работаем и с нижней.
В Вашем случае будет только одна строка, т.к. шрифт будет высотой не больше 8 точек.
Для тоге, чтобы собрать шрифт, нужно отрисовать его в двоичном виде и перевести его в HEX. Также нужно правильно прописать в начале шрифтового файла ширину символов.
З.Ы. Я правда не совсем представляю читабельность шрифта размером 3х5 точек. В любом случае, инструкции уже написаны и разжеваны, нужно сесть и сделать. Пока не начнешь делать, не поймешь как это устроено
ВРОДЕ ВСЕ ТАК. Но в GLCDFont – устанавливаешь высоту-ширину шрифта, в секторе 3х5 прорисовываешь цифры, транспортируешь, устанавливаешь в Font b и тгд... и все не работает. В чем секрет. Да и ваш фаил не цепляется и не работает. Что, все специально не делятся. В GLCDFont- до безобразия так просто - а итоге не работает. Да и почему так мало по сути шрифтов по размерам? В программе бегу шей строке все лаконично и выбор ох как богат.
Это то-же самое, что с NRF24L01+ работа ТРАНСИВЕРА (Прием и передача) где нормальные примеры? Где исходники в лучшем фай HEX и все.
GLCDFont создает шрифт не в том виде, которые ест библиотека DMD, очередность пикселей другая. Потому я говорю про другие инструменты для создания шрифта. GLCDFont я использовал только для прориовки самого символа, чтобы видеть какой он вообще получится. но сам шрифт я сводил вручную и у меня все прекрасно работает
Нород - Я вчера в космос туда и обратно летал. Да сколько можно пузырями мыльными- просят шрифтом поделится -.А в итоге где и как у вас работает. Я вам луну покажу. Это то-же самое, что с NRF24L01+ работа ТРАНСИВЕРА (Прием и передача) где нормальные примеры? Где исходники в лучшем фай HEX и все.
Народ, столкнуля с такой проблемой: на ардуино, ведущую DMD, передается кириллица, отличная от русского (украинские символы). Конкретно запоролся на символах ЄєЇїІі. И вот какая фигня: Отправляется буква правильно - принимается ардуино правильно - на ДМД выходит буква "ф" вместо буквы "Є".
Ковыряюсь второй день, выяснилось, что бблиотека отрабатывает только младший байт в кириллице,а старший игнорирует.
В итоге имеем такую картину:
В итоге библиотке хавает только "х84" и выдает подходящую по коду букву.
Кто знает, как с этим бороться? Ранее ставили такой костыль: т.к. эти буквы находятся на клавиатуре на месте русских ЭэЪъЫы, в исходном тексте прописывались именно эти буквы, а в самой библиотеке подставлялась битная матрица нужных символов укр.алфавита. Но это именно костыль, надо бы найти более логичное решение проблемы.
З.Ы. выложил подправленный шрифт для цыфр и некоторых символов с размером 16*10 точек Github
В общем было решено оставить все как есть с некоторыми примочками
Текст засылается в исходном виде, на ардуино текст преобразовуется таким вот способом:
slovo2.replace("І", "Ы"); slovo2.replace("Є", "Э"); slovo2.replace("Ї", "Ъ"); slovo2.replace("і", "ы"); slovo2.replace("є", "э"); slovo2.replace("ї", "ъ");и в самом шрифте были заменены НЕХы букв ЭЪЫ на ЄЇІ. В итоге на дисплее отображается все как надо и колхозить с исходным текстом не приходится.
Подобная хема может сработать с белорусским. казахским и другими языками, которые от руской кириллицы отличаются не сколькими символами. Как вы поняли. переназначать можно на любой не используемый символ в библиотеке шрифта.
Еще один числовой шрифт 16х8 для DMD/DMD2. Только цыфры 0-9 Github
Со шрифтами история очень веселая, но решаемая при помощи волшебной проги GLCD Font Creator https://code.google.com/p/glcd-arduino/downloads/detail?name=GLCDFontCreator2.zip&can=2&q=
она на Java.
Создаеш свой шрифт и экспортируеш, ложищ его в папку DMD библиотеки. В зависимости как его назвал в исходнике объявляеш его.
new_Font имя шрифта, что в мастере шрифтов указали. И все.
По поводу яркости тут есть модифицированная либа http://forum.freetronics.com/viewtopic.php?f=26&t=278&start=20#p2133
MikSer - только на Вас уповаю...))
Два дня туплю (как и положено новичку конечно)) - не как не могу сделать свой шрифт ((.
Ваш "кусок кода" и шрифт русский в качестве примера, он у меня работает но надпись не влазит (у меня 96х16 табло), широкий/жирный, хочу сделать тоже самое (16 шрифт русский для UNO) но тонкий/узкий, перечитал и перепробовал кучу всего, но явно не хватает знаний (в кодировках и С++) - не могу правильно сделать Main_Font - использовал LCDVision и GLCDFontCreator2, но видимо значения/настроцки не те ввожу - не получается заменить Ваш шрифт своим - и Ваш изменить - перерисовать тоже не соображу как - точнее как понимаю, нужно перекодировать нужные символы, но ньансы выше обозначенные не позволяют ((.
по существу - подскажите как создать файлик Main_Font_2 - ссылка www.apetech.de/fontCreator - не рабочая уже, да и мне нужно знать какие именно настройки ставить в аналоге - что бы он работал так же как Ваш
занимаюсь лед дисплеями, использую контроллеры специализированные, но встала задача внешнего управления на кнопках, надо 4 слова всего написать для солдат, гололёд, снег и т.п - мои БЭИКСЫ и про прочие Листены при всей своей мощи не подходят, в общем прошу тыкнуть мну носом куда надо - заранее благодарен всем не равнодушным!
Здравствуйте!
У меня аналогичная матрица, как в сообщении http://arduino.ru/forum/apparatnye-voprosy/svyazka-mega2560-s-p10-led-module?page=4#comment-294365. Пробовал различные варианты, но ничего так и не заработало. Может кто-нибудь за это время сталкивался с чем-то похожим. Буду благодарен за любую информацию.
Еще один числовой шрифт 16х8 для DMD/DMD2. Только цыфры 0-9 Github
Сори - с точками можно скинуть.