ArtNet для управления WS2812b
- Войдите на сайт для отправки комментариев
Всем привет!
Стараюсь разобраться как запилить свой контроллер чтобы работать с Resolume или QLC+
Эти программы работают по протоколу ArtNet. Есть библиотеки для ардуино, например https://github.com/natcl/Artnet
Есть несколько вопросов.
Насколько я понял сам формат легко позволит 2048 пикселей в одном ряду (на частоте 24гц)
А ардуино может поддержать количество пикселей что могут уместиться в SRAM. то есть уно 666, а мега все 2664.
Но там же память используется самой утилитой, так что наверное и еще меньше. И тут я не знаю сколько реально выделится памяти под пиксели.
Кто-то пробовал на практике проверять максимальное количество пикселей? Верны ли мои расчеты? Мне нужно 1500 пикселей подключить. Если одной ардуинки не хватит, то нужно будет как-то делать сеть из двух или больше...
И еще вопрос. WiFi можно ставить платку для таких целей или лучше эзернет?
Кстати, я вижу что в сети часто пишут ws2812 а ведут речь о ws2812b и наоборот. b насколько я понял это указатель на то что можно еще регулировать яркость. Это отдельный канал, то есть надо не 3 байта а 4? Если да, то еще меньше получается пикселей можно рулить с одной ардуинки) или там всё таки те же 3 байта, просто чип еще и сам транслирует со значений цветов и яркость этих цветов? (или я тут уже запутался, сори, если что)
Благодарю!
свой контроллер запилить, не рано ли?
Вы бы для начала попробовали собрать управление хотя бы 30 диодами на обычной ардуине, без тяжелых библиотек...
Даже не знаю) С техникой дружу, и сделать hello world проект как вы говорите смогу без проблем, но это
- деньги на девайсы. если, в итоге, решить задачу не получится надо будет их продать
- время
Я лучше бы убедился что теоретически возможно решить вопрос одной платой мега (управлять 1500 пикселями с одной платы по ArtNet), например и тогда бы засел этим заняться, а иначе посмотрел бы в строну покупки готового контроллера на нужное мне количество пикселей.
И это не потому что мне неинтересна тема, а потому что еще много дел которым нужно уделять время. Если мне скажут что это возможно, то я с удовольствием ворвусь вот в это вот всё))
Спасибо!
А у присутствующих никаких дел нет, так что сейчас все бросятся проектировать тебе решение.
На mega2560 теоретически возможно.
кроме потребной памяти с увеличением числа пикселей появляются и другие проблемы. Например, со временем. Чтобы обновить длинную линейку пикселей - на каждом кадре нужно последовательно отправить в шину данные для каждого диода, что ограничивает частоту обновления. Например получить 24 fps на линейке в 1000 последовательных WS2812 в принципе нереально, какую бы ардуину вы не взяли...
кроме потребной памяти с увеличением числа пикселей появляются и другие проблемы. Например, со временем. Чтобы обновить длинную линейку пикселей - на каждом кадре нужно последовательно отправить в шину данные для каждого диода, что ограничивает частоту обновления. Например получить 24 fps на линейке в 1000 последовательных WS2812 в принципе нереально, какую бы ардуину вы не взяли...
В принципе реально, если не ставить бесполезного ограничения в одну линейку.
Скорость работы этого стандарта - 800kbps, нужно 24бита для каждого пикселя и частоту 24фпс. 800000 / 24 * 24 = 1388
То есть, если железка позволит больше, а ограничиваемся в скорости работы стандарта, то можно сделать два юниверса, верно?
В принципе реально, если не ставить бесполезного ограничения в одну линейку.
теоретически да, но если брать именно ардуино - Уно, Нано или Мега - то запустить на них более одной линейки с ОДНОВРЕМЕННЫМ обновлением в принципе невозможно, там и одну-то приходится через ассемблерную вставку кодировать. чтобы успевало...
В принципе реально, если не ставить бесполезного ограничения в одну линейку.
теоретически да, но если брать именно ардуино - Уно, Нано или Мега - то запустить на них более одной линейки с ОДНОВРЕМЕННЫМ обновлением в принципе невозможно, там и одну-то приходится через ассемблерную вставку кодировать. чтобы успевало...
Есть и другие платы ардуино.
А у присутствующих никаких дел нет, так что сейчас все бросятся проектировать тебе решение.
да, я ожидал и подобный коментарий)
но так как я сам не обламываюсь подсказать людям которые меня спрашивают, то и от других ожидаю такого)
не всегда и не на сто процентов, но на то он и коллективный разум (форум) что тут много людей и может у кого-то будет настроение сейчас подсказать
благодарю)
Скорость работы этого стандарта - 800kbps, нужно 24бита для каждого пикселя и частоту 24фпс. 800000 / 24 * 24 = 1388
имхо, там не 800 kbps, а 800 КГц - почувствуйте разницу...
уже ответил выше - ни одна Ардуина на Атмеле - Уно или Мега - две линейки одновременно не потянут. Начинайте сразу смотреть на СТМ32
[/quote]
Есть и другие платы ардуино.
[/quote]
Буду признателен, если подскажите на какой ардуине моя задача будет реализуема)
имхо, там не 800 kbps, а 800 КГц - почувствуйте разницу...
я взял со спеки это значение. https://screencast.com/t/tcXgF0uikoIo
может у кого-то будет настроение сейчас подсказать
О, желающих подсказать полно, конечно. Особено хрень какую-нибудь, в корне неверную. А вот дать внятное решение задачи можно только только после пары-тройки часов прорабоки. И никто этого делать не будет.
Буду признателен, если подскажите на какой ардуине моя задача будет реализуема)
самое доступное - стм32 "bluepill"
Буду признателен, если подскажите на какой ардуине моя задача будет реализуема)
самое доступное - стм32 "bluepill"
Благодарю!
имхо, там не 800 kbps, а 800 КГц - почувствуйте разницу...
я взял со спеки это значение. https://screencast.com/t/tcXgF0uikoIo
в любом случае 1300 пикселей - теоретический предел. А на практике будет еще меньше, так что 1500 диодов или больше - в любом случае надо разбивать на несколько линеек
Буду признателен, если подскажите на какой ардуине моя задача будет реализуема)
самое доступное - стм32 "bluepill"
Считал, или "подсказываешь"? А совместим блупил с библиотекой? А сетевой интерфейс в нем есть?
имхо, там не 800 kbps, а 800 КГц - почувствуйте разницу...
я взял со спеки это значение. https://screencast.com/t/tcXgF0uikoIo
в любом случае 1300 пикселей - теоретический предел. А на практике будет еще меньше, так что 1500 диодов или больше - в любом случае надо разбивать на несколько линеек
Да, хорошо, разбить на юниверсы не проблема, главное чтобы на одной плате всё работало. иначе нужно будет платы коннектить еще дополнительно в одну сеть
Считал, или "подсказываешь"? А совместим блупил с библиотекой? А сетевой интерфейс в нем есть?
запускал через SPI + DMA. На блюпиле два независимых канала СПИ, при асинхронном ДМА времени на обновление картинки должно остаться прилично.
Про сетевой интерфейс пусть ТС сам думает, "детально прорабатывать его проект" за него никто не нанимался :)
2812 не работают по spi. Подсказываешь, другими словами.
2812 не работают по spi.
работают
https://www.rogerclark.net/arduino-stm32-neopixels-ws2812b-using-spi-dma/
Посидел еще над вопросом и в итоге пришел к выводу, что мне, как новичку будет проще всего взять вот такую платку.
https://arduino.ua/prod1581-plata-razrabotchika-na-esp8266
Тут и wifi и из Ардуино ИДЕ можно работать без доп конвертеров.
Но сколько пикселей я смогу охватить так и не разобрался. В инете куча раной инфы, единственное что надеюсь что больше чем на ардиуниах
Так что остаётся лишь экспериментировать)
Очешуеешь этой еспшкой фонарики крутить при активной работе с сетью.
Если и смотреть из вифи доступного, то esp32
О Боги)))
Очешуеешь этой еспшкой фонарики крутить при активной работе с сетью.
Если и смотреть из вифи доступного, то esp32
я, конечно, человек предвзятый - но я бы опять предложил СТМ32, а для ВайФая к ней через Сериал - маленькую ESP01. Критические участки кода (светодиоды и сеть) оказываются разнесены на 2 отдельных контроллера.
У меня такая связка отлично работает со светодиодными DMD матрицами - СТМ матрицы крутит, а ЕСП в сеть ходит.
2812 не работают по spi.
работают
https://www.rogerclark.net/arduino-stm32-neopixels-ws2812b-using-spi-dma/
По ссылке явно написано, что работают не по spi, а костыльным методом с использованием spi-периферийника.
По ссылке явно написано, что работают не по spi, а костыльным методом с использованием spi-периферийника.
вам обязательно надо сказать последнее слово в любом споре? :) - хорошо, успокойтесь, вы (как всегда :) правы, это не СПИ, а костыль.
Тем не менее, этот костыль позволяет задействовать канал ДМА, предназначенный для SPI - и таким образом разгрузить центральное ядро МК для выполнения других задач.
куда МИР катится, раньше ДМА отвечал полностью своему названию )))
я, конечно, человек предвзятый - но я бы опять предложил СТМ32, а для ВайФая к ней через Сериал - маленькую ESP01. Критические участки кода (светодиоды и сеть) оказываются разнесены на 2 отдельных контроллера.
Да же я не против и, как человек предвзятый, тоже предложил бы забить на вифи в этом деле. Да и вообще затея пока сомнительная. Но, человек ищет приключений...
Я вот как раз не приключений ищу, а реального человека кто имеет опыт с ws2812b и ArtNet))
Не прошу сделать за меня или туториал мне писать)
А вот хочу я знать какой сетап собрать чтобы управлять одной платкой 1500 пикселей именно по ArtNet.
Не теориетически
ИДЕ, кодить если надо, подключать, паять и тд, я уже сам с радостью займусь
Спасибо!
У меня вопрос к Вам: если дать инженерам Феррари колеса, двигатель, фары, ещё там чего-то и тот же самый набор дать инженерам АвтоВАЗа - получится у них одно и то же?
Вот и тут так же - железо без мозгов ничего не стоит. А Вы уверены, что сможете так же, как и кто-то другой, который уже набил себе шишек и точно знает, как и что делать, чтобы все быстро работало даже на слабой железке?
Я не уверен на 100% что смогу собрать и что оно будет работать.
Но Вы можете ощутить разницу в том чтобы заказать что-то и пытаться сделать не зная вообще возможно оно или нет и второй вариант - заказать то с чего точно можно сделать и даже если не получится понимать что причина в кривых руках а не то от того что я неверные железки купил. Да-да-да есть третий вариант начать во всём разбираться с нуля, прочитать все спецификации и тд. Но как я уже выше писал мне может проще будет купить контроллер готовый. Я хочу совместить и кайф от того чтобы сделать что-то руками но только если это можно сделать без магии и бубнов. Если потребуется полгода вникать в систему чтобы только потом понять из чего собрать то что мне нужно, то я пас) Если же окажется что есть подходящая конфигурация для моей задачи то я возьмусь. Пока как я вижу людей с таким опытом тут нет
Ну и я не прошу рекомендацию про слабые железки или нет, просто хотелось бы обойтись одной платой чтобы не коннектить их в одну сеть.
В общем, всё в лучших традициях славянских комьюнити)
Возьмите Оранж пи или типа того - будет с запасом прям.
А выбирать что-то впритык - это нужно немалый опыт иметь, который и за полгода не получить.
Я вот помню один был тут товарищ - он буфером вывода для ленты хотел использовать буфер сетевого чипа. Не знаю, что у него вышло - дальше расспросов дело не пошло.
Большое спасибо! Похоже на то что нужно)
Если всё получится, обязательно выложу отчет
Нужна чатота от 40МГц и выше, памяти от 1500х3х3 (еще три - это потом поймешь зачем) то есть от 15 КБ примерно. Езернет на борту или по SPI и всё получится! На двух-трёх ногах, так как 1500 на одной ноге - не проходит. Таких плат полно. Они все на АРМе. Есть Ардуино, есть СТМ32. Оба подойдут.
Возьмите Оранж пи или типа того - будет с запасом прям.
А выбирать что-то впритык - это нужно немалый опыт иметь, который и за полгода не получить.
Я вот помню один был тут товарищ - он буфером хотел использовать буфер сетевого чипа. Не знаю, что у него вышло - дальше расспросов дело не пошло.
Ага, и не-программист, конечно, сможет выдержать интервалы в сотые доли мкс в вытесняющей ОС на почти не документированной платформе и без каких-либо библиотек. Очередной совет.
кодить я могу на нескольких языках, да и на верилог фпга кодил)
но не думаю что будет просто, но попробую чуть
не прошу рекомендацию про слабые железки или нет, просто хотелось бы обойтись одной платой чтобы не коннектить их в одну сеть.
Вопрос не в том, слабые они или нет. Главный вопрос в том, есть ли под них готовое решение. Потому что если нет, то без полгода не обойдется. И пока ни один советчик этого не понял.
верно, мне интересен реальный опыт.
вот чел сделал что я хочу - https://www.youtube.com/watch?v=ZOeLxpigZrg (хотя это другая лента)
вот еще полезная ссылка http://www.raspberrypi-dmx.org/raspberry-pi-art-net-dmx-out
верно, мне интересен реальный опыт.
вот чел сделал что я хочу - https://www.youtube.com/watch?v=ZOeLxpigZrg
Опыт по интернету не передают. Тебе нужно готовое решение, чтобы сел и повторил по инструкции. Это ищется в гугле, и либо оно есть, либо нет. Скорее всего нет.
Чел сделал совсем на других светодиодах, так что не то.
Ага, и не-программист, конечно, сможет выдержать интервалы в сотые доли мкс в вытесняющей ОС на почти не документированной платформе и без каких-либо библиотек. Очередной совет
Да харе уже цену себе набивать, выше некуда. Все уже и так поняли, что ты на этом форуме(а то в целой Вселенной) - единственный специалист по любым вопросам бытия, остальные так - говно под газеткой.
Человек хочет варианты - он их получает. Можно подумать, что ему можно найти какую-то другую платформу, где он с нуля за полдня всё сделает и обставит проклятых капиталистов, которые трудовому народу готовые изделия с тройной наценкой продадут.
Человек хочет варианты - он их получает.
Человек просит чего-то, что сэкономит ему время. Вредные советы от умников, которые с задачей не сталкивались, не прорабатывали, но шило в заднице не дает не ляпнуть бред какой-нибудь - противоположное тому, что ему надо.
Не ляпай, никто не заставляет. Справа вверху крестик окна браузера нажимаешь и перестаешь нервничать 24 часа в сутки.
Больше, чем приобретение готового девайса, ему ничто время не сэкономит. Он это и сам понимает без специалистов мирового уровня, застрявших на любительском форуме.
Человек просит чего-то, что сэкономит ему время. Вредные советы от умников, которые с задачей не сталкивались, не прорабатывали, но шило в заднице не дает не ляпнуть бред какой-нибудь - противоположное тому, что ему надо.
давайте вы всезнайку из себя корчить не будете, ОК? Вы-то сами хоть один полезный совет ТС дали - или горазды лишь других оценивать?
СТМ32 + ЕСП, что я писал выше - совершенно рабочее решение, которое я пробовал сам. Сэкономит ли это ТС время - я сомневаюсь, ведь он хочет сделать самоделку, ничего не изучая и не тратя на это полгода :) - но это уже исключительно его проблемы, как говорится "мечтать не вредно"
выдержать интервалы в сотые доли мкс в вытесняющей ОС на почти не документированной платформе...
Тып, родное сердце брехать заканчивал. А то очень на Архата похоже... можешь судьбу его разделить.
Чел сделал совсем на других светодиодах, так что не то.
Пока за жопу брать не стали за брехню, успей изложить тему принципиальных отличий ws2812 и ws2801, с точки зрения программирования на RPi.
выдержать интервалы в сотые доли мкс в вытесняющей ОС на почти не документированной платформе...
Тып, родное сердце брехать заканчивал. А то очень на Архата похоже... можешь судьбу его разделить.
Ну ок, чуть ошибся и неточно сформулировал. В +-десятые доли мкс. Не сильно проще.
Замечательно документированная платформа, просто фантастически: http://www.orangepi.org/Docs/Peripheralinterfacedevelopment.html
Пока за жопу брать не стали за брехню, успей изложить тему принципиальных отличий ws2812 и ws2801, с точки зрения программирования на RPi.
Принципиальное отличие в другом электрическом интерфейсе, другой частоте передачи, других калибровочных константах. И дополнительной поддержки 2812 в том проекте нет.
Что не получилось на понт взять, когда разговариваешь не с чайником, вчера взявшимся за ардуино, а кем-то, кто обладает фактами?
Что не получилось на понт взять, когда разговариваешь не с чайником, вчера взявшимся за ардуино, а кем-то, кто обладает фактами?
Какими фактами? - минуту назад надерганными из гугла? :)
rkit, вам "шило в заднице не дает не ляпнуть бред какой-нибудь" типа того, что с 2812 нельзя работать через spi ?
RPi, тот же бродкомовский чип, стандартный для платформы драйвер: https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/READM...