Обсуждаем мат. алгоритмы работы с RGB панелями

Предлагаю здесь обсуждать алгоритмы обработки цветов, преобразований координат и прочее связанное с выводом на HUB75 RGB панели

Материалы по теме
LED dimming using Binary Code Modulation


Библиотеки для работы с RGB панелями:

Библиотекаплатформапримечание
DMD_STM32STM, RP2040автор на форуме @bort707
ESP32-HUB75-MatrixPanel-DMAESP32контрибьютор на форуме @vortigont

Проекты на форуме с поддержкой HUB75 панелей
WiFi лампа/гирлянда/информер ws2812/HUB75
пиксель-арт из вышивки
 

Комментарии

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Предлагаю здесь обсуждать алгоритмы обработки цветов, преобразований координат и прочее связанное с выводом на HUB75 RGB панели

Материалы по теме
LED dimming using Binary Code Modulation


Библиотеки для работы с RGB панелями:

Библиотекаплатформапримечание
DMD_STM32STM, RP2040автор на форуме @bort707
ESP32-HUB75-MatrixPanel-DMAESP32контрибьютор на форуме @vortigont

Проекты на форуме с поддержкой HUB75 панелей
WiFi лампа/гирлянда/информер ws2812/HUB75
пиксель-арт из вышивки
 
  • Лойс +1
Реакции: Divin

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Всем привет!
Сорян за офтоп, темы прям строго под мой вопрос не нашёл. А знатоки hub75 тут, как я понял, и тусят.

Вопрос такой - если ли какие-либо проекты для управлением hub75 матрицами, которые позволяли бы передавать данные для вывода на "экран" (суть растр) каким-либо простым способом "через сетку" - то есть либо web-requests, либо, что лучше, MQTT.

Идея такая - выводить некое изображение на панель, но само это изображение рендерить просто на компе. Если быть точнее - убунта+питон. Скорость не так важна - будет пара-другая обновлений в секунду и ладно.

Я что-то запутался, честно говоря. Пока нашёл упоминание только в WLED, но там поддержка матриц, как я понимаю, экспериментальная.

А в проектах на RP2040 или пилюлях никто, почему-то, не делает поддержку сетки - что странно. Технически это ж возможно.
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
@Брякомякс,мне кажется вы плохо искали, проектов с поддержкой MQTT полно.
Даже WiFi лампа из шапки вроде как работает с mqtt.
Собирал одному клиенту табло на панелях с управлением по сети.
 

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
@bort707,
кажется ;)

я про другое — не управляющие команды передавать. А именно растр. Типа «выведи мне на матрицу в положение пикселя xy значение r такое-то g сякое-то»
либо то же, но не по пикселям, а словарем.

To set individual LEDs, use the LED index followed by its color value.
{"seg":{"i":[0,"FF0000", 2,"00FF00", 4,"0000FF"]}} is the same as above, but leaves blank spaces between the lit LEDs.

цитата с wled

в проектах на форуме такого нет.

А на какой прошивке собрал, если не секрет? Их вообще довольно много, но часть давно не обновлялась.
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,064
912
не управляющие команды передавать. А именно растр. Типа «выведи мне на матрицу в положение пикселя xy
Такого по MQTT никто не делает. Для этого есть DMX. Но вообще это не очень эффективно, в одной панели 2 тыс пикселей, не особо напередаешься.
А вот по MQTT передают именно что команды.
 

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Нууу…я же писал — мне для нечастого обновления.
6 килобайт — это разве много? Неужели раз-другой в секунду не прокачает? Да не верю. Он же легковесный. Мегабит там точно должен быть+-. Мне максимум одна или две 64*64

вообще на стандартном A4 листе 1800 знаков, mqtt с таким должен справиться. Можно попробовать.
но пока я нашел решение только через circuitpython и оно будет медленным по выводу. Там оно даже без DMA.
 
Изменено:

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
ну вот опять-двадцатьпять … человек пишет «ищу проект» а ему сишные либы предалагают.
Проект подразумевает что-то готовое, ну максимум скомпилить. Как какой-нибудь GyverControl. А лучше сразу бинарём, благо у esp с этим проще.
Хотел бы с нуля всё кодить — не писал бы тут.
Мне бы понять, вдруг где-то ктото в безднах интернетов уже делал что-то такое или похожее.
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
Тогда купите готовый китайский контроллер для HUB75 панелей - например такой: https://aliexpress.ru/item/32449560466.html
Судя по всему, это именно то, что Вы ищете. К нему идет специальная программа, устанавливаемая на комп - в ней можно создавать самые разнообразные эффекты, показывать текст, картинки, транслировать видео - и все это отправляет на панели по сети или Wifi
 
  • Лойс +1
Реакции: Брякомякс

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
За ссылку спасибо, но тоже не то.
Без обид, я ж вроде идею русским по белому описал и довольно подробно — дрыгать хочу типовыми методами, никаких проприетарных левых китайских прог. Пайтон в убунте и MQTT (либо web requests), максимально стандартно и гибко, стандартней некуда. Там инструментов для работы с видео и матрицами — на любой вкус, плюс сообщество и доки. Тот же opencv.
А ты мне плату за 4 штуки на fpga…

Во тут чел сделал на Pico и скармливал данные через mqtt +uart

https://www.reddit.com/r/raspberry_pi/comments/r7v4xo
это к вопросу о принципиальной реализуемости и скорости. При чем у него это был 8266, даже не esp32.
но кода нет и уарт тут будет узким местом.

Из esp32 сколько можно максимум выжать скорость на передачу по UART? Больше 119200?

мне не видео, скорее относительно статичную картинку — что-то типа информера, данные с датчиков. Так что обновление даже раз в секунду будет терпимо.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
У меня в проекте есть попиксельное рисование. Доступно через вебсокет в виде джейсон сообщений. В ближайшее время добавится mqtt и http rest. Но изначально это было для лед лен и для передачи большого количества данных неэффективно. Я планирую добавить дмх/е1.31 , но чуть позже.
 
  • Лойс +1
Реакции: Брякомякс

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
где что описано? Залейте проект, в осномном меню слева найдёте пункт "рисование", зайдите, потыкайте. В браузере в вебконсоли можете посмотреть какие джейсоны бегают. Можете посылать такие же из своего приложения, только не очень быстро.
 

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Ок, попробую. Вообще у меня и матрица в пути, и платы от PCBwave тоже еще едут. Пока повожу обзор литературы.
По ходу, сейчас с появлением Pico W уже мало кто заморачивается с esp32. Там помощнее и память и PIO.
только W у нас стоит ощутимо дороже обычной.
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
Пайтон в убунте и MQTT (либо web requests), максимально стандартно и гибко, стандартней некуда.
Вы меня простите, но вы пишете то, в чем явно вовсе не разбираетесь. Эти матрицы по своему устройству требуют полного обновления изображения минимум 100 раз в секунду, даже если у вас абсолютно статичная картинка.Непосредственно по сети управлять такими матрицами НЕВОЗМОЖНО. В любом случае вам нужен контроллер, либо покупной, как у меня по ссылке, либо самоделка на ЕСП - который будет выводить картинку на матрицу.
А вот уже этому контроллеру можно посылать команды. И никакого стандарта тут нет, каждый делает сам как ему угодно.

Во тут чел сделал на Pico и скармливал данные через mqtt +uart

https://www.reddit.com/r/raspberry_pi/comments/r7v4xo это к вопросу о принципиальной реализуемости и скорости. При чем у него это был 8266, даже не esp32.
но кода нет и уарт тут будет узким местом.
Ключевой код передачи графических данных по сети вы можете найти в инете, он буквально строчек 30-50. Только это опять будет не "готовый проект", а заготовка
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
с появлением Pico W уже мало кто заморачивается с esp32. Там помощнее и память и PIO.
только W у нас стоит ощутимо дороже обычной.
Pico W не более чем обычный Пико и ЕСП32 на одной плате. Я делал такой сам из двух плат, когда они только появились. Прошивку можно использовать стандартную.
 
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
@Брякомякс, я и не знал что Пико с вафаем появилась. Похоже, да, пришло время её пощупать. Без связи она была не так интересна.

Pico W не более чем обычный Пико и ЕСП32 на одной плате
ахахах... да уж... это как в свое время делали стм с вайфай из стм+8266. Хех, чудо отменяется
 
  • Лойс +1
Реакции: bort707

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Да в курсе я. «Передавать раз в секунду в фреймбуфер» — так правильно.
Pico W не более чем обычный Пико и ЕСП32 на одной плате. Я делал такой сам из двух плат, когда они только появились. Прошивку можно использовать стандартную.
я тоже так думал
но

Raspberry Pi Pico W adds on-board single-band 2.4GHz wireless interfaces (802.11n) using the Infineon CYW43439 while retaining the Pico form factor. The on-board 2.4GHz wireless interface has the following features:
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
я тоже так думал
но

Raspberry Pi Pico W adds on-board single-band 2.4GHz wireless interfaces (802.11n) using the Infineon CYW43439
Это новая версия. Первые Pico W были с чипом ЕСП32
Суть от смены чипа не меняется - все равно тут сеть и вай-фай не встроенные в ядро Расбери Пики, а в отдельном чипе с заранее написанным кодом. А это совершенно другая история, чем в случае плат ЕСП32, где вай-фай и БТ встроены в основной чип.
 
  • Лойс +1
Реакции: vortigont

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
@bort707, Вот это не знал.
У Адафрут есть до сих пор платы, где 2040 использует кастомно прошитую esp32. Но соединены они, как я понял, по SPI.
Ты так же делал?
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
где 2040 использует кастомно прошитую esp32. Но соединены они, как я понял, по SPI.
Ты так же делал?
Абсолютно так же. Только не на общей плате - а просто соединял две стандартных.
Где-то в сети даже валялся мануал с пошаговым описанием сборки и прошивки такого "тандема". В ЕСП32 там прошивается системная библиотека WiFiNina
Я заинтересовался RP2040 сразу как к нему вышло Ардуино-ядро - то есть порядка 2х лет назад.
В моей библиотеке для HUB панелей есть поддержка 2040.
Только это С++ библиотека, не готовый проект.
 
  • Лойс +1
Реакции: Брякомякс

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
@bort707, если найдешь мануал — буду мегаблагодарен!
Скорее всего, под мои задачи это то, что нужно.

Возможно, сделаю плату под это дело. В принципе, есть даже файлы на гите Адафрукта — как отправная точка
Их только переделать с голого чипа на ходовой модуль (типа Wemos 32). Мне кажется, для меня это будет быстрей, чем вспоминать ардуино и си.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
@Брякомякс, не занимайтесь ерундой. есп32 прекрасно работает с хаб-панелями, и если вам нужна беспроводная передача данных, то сооружать для этого 2х-головую гидру из разных чипов нет смысла. С этой связкой вам придется "ардуинить" намного больше чем с одним чипом.
 
  • Лойс +1
Реакции: bort707

bort707

★★★★★★✩
21 Сен 2020
3,064
912
если найдешь мануал — буду мегаблагодарен!
Посмотрел - не было готового мануала, сам доходил.
Если надо, могу выложить сюда свой отчет, писанный для другого форума.
Но в целом я согласен с @vortigont, это нафик не надо.
Я собирал этого монстра исключительно из челленджа, погонял тесты, убедился что работает и разобрал.
 

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Было бы хорошо. Пригодится.

касаемо ардуинизма.
Вообще у Ады платы на питоне с 2040 тоже используют wifinina. Так что если один раз разобраться — двойной работы не будет. И на 2040 сейчас много чего активно пилится. Смысл заморочиться есть.
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
есп32 прекрасно работает с хаб-панелями,
Между нами говоря, RP2040 благодаря встроенным PIO машинам просто на голову лучше для ХАБ-панелей, чем ЕСП32.На RP2040 легко делается два параллельных выхода, чего ЕСП32 не может никак.