Если вам нужно сделать гирлянду, где переливается десяток-сотня светодиодов, то эта статья будет вам мало полезна. А вот если у вас несколько десятков тысяч светодиодов и вы еще собираетесь показывать кино с их помощью — тогда вам эта информация определенно сгодится. Тем более, что других источников вы, скорее всего, просто не найдете.
Для начала — объект управления. Уже всем набившие оскомину адресуемые светодиоды, которых уже очень много разных типов. Чисто китайская разработка, все остальное, если и имеется — дешевые подделки.
Много лет назад Nokia мечтала получить светодиоды с интеллектуальным управлением. Со светодиодами тогда не срослось, но кое-что она получила — это была микросхема LP5521, которая потребляя очень мало энергии, моргала светодиодиком по программе внутри, не требуя никакого внимания со стороны основного процессора телефона.
В итоге почти все производители телефонов ставили такую микросхему и она побила все рекорды продаж. Года за 2-3 было продано 100 миллионов микросхем.
Фирма разработчикам с таких барышей даже по кофточке выдала :)
Кофточка, кстати, оказалась очень хорошей — теплая и уютная.
Если помните, во многих телефонах в дежурном режиме переливался всеми цветами тускленький светодиодик, по-разному индицирующий разные события — это как раз та микросхема и работала.
Адресуемые светодиоды — это, конечно, совершенно другое. Просто цепь светодиодов, которыми можно управлять по одному проводу.
Очевидный недостаток — если один светодиод умирает — то все, что следуют за ним, перестают светится тоже. Вы наверняка такую ситуацию видели на рекламных дисплеях. Картинка ниже не надерганная из интернета, это один из наших дисплеев сдох.
В WS2813 эта проблема до какой-то степени решена с использованием двух линий данных — одна от выхода предыдущего светодиода, а вторая — от его входа. Если от выхода ничего нет — считаем, что предыдущий светодиод сдох и используем сигнал от его входа с задержкой на 1 пиксель. В итоге на экране будет одна неработающая точка — терпимо. Но если подряд умрет 2 светодиода — то погаснет вся линия.
Ставить конденсатор и резистор около каждого светодиода — головная боль. Но у производителя есть решение — светодиод со встроенным резистором и конденсатором. Но тут другая головная боль — как узнать при заказе, есть внутри конденсатор или нет? На названии светодиода наличие конденсатора никак не сказывается. Светодиоды размером 2020 с высокой вероятностью будут иметь конденсатор внутри.
Для программирования каждого пикселя нужно 24 бита — 8 бит на цвет. Управление яркостью производится с помощью ШИМ с частотой 2 кГц.
Светодиоды обычно бывают с двух типов по току — около 15-18 мА на светодиод или 5-7 мА. Для дисплеев 5мА подходят лучше, 15мА — слишком ярко. Приходится убирать лишнюю яркость за счет ШИМ. В итоге от 8 битов на цвет остается 6-7. Плюс человеческое зрение логарифмическое, а регулировка линейная. Для того, чтобы не искажать цвета при снижении яркости, необходимо использовать гамма-коррекцию.
От цветовой разрешающей способности вообще ничего не остается.
Недавно эта проблема была решена дико избыточно. Появились новые светодиоды — WS2816. У них уже 16 бит на цвет, частота ШИМ 10 кГц и впридачу ко всему встроенная гамма-коррекция. Но получается, что загружать их можно в 2 раза медленнее — при прежней скорости обмена передать уже нужно 48 бит вместе прежних 24.
Если было бы 10 бит на цвет со встроенной коррекцией — меня лично это устроило бы гораздо больше.
Еще одна проблема со светодиодами. Не знаю, обращали вы внимание или нет, но очень часто в холодную погоду изображение на рекламных дисплеях слегка краснеет. Дело в том, что световая отдача светодиодов зависит от температуры. И зависимость разных светодиодов разная. Зеленые и синие имеют более-менее одинаковую зависимость, а красные сильно другие. Если кому интересно, можете здесь прочитать, десятая страница.
Если вдруг соберетесь дисплей такого типа делать — выбирайте адекватного производителя панелей. Вот что пишут в спецификации:
Многие на это внимания не обращают, но это очень серьезно. Из-за влажности могут быть дефекты пайки. А когда последовательно стоит тысяча светодиодов и отказ любого из них приведет к отказу всей панели, причем, не сразу, а через какое-то время — панель придется демонтировать и ремонтировать. Это грустный опыт.
Теперь начнем считать. Скажем, мы хотим отображать 30 кадров в секунду. Значит, у нас есть время для загрузки линии 33.3 мсек. Частота сигнала для светодиодов — 800кГц. Для одной точки нужно 24 импульса — по 8 на каждый цвет. На загрузку пикселя уходит 30 микросекунд. Значит, за время отображения кадра можно загрузить 1111 пиксель. С учетом возможных временнЫх допусков, реально я использовал в линии до 1300 светодиодов.
Если используем готовые панели 16х16 точек — можно подключить к одной линии до 5 панелей — 1280 светодиодов. Можно и 4-мя ограничиться — будет 1024 точки.
Теперь поговорим про управление. Я с товарищем несколько лет назад делал систему управления такими дисплеями. Самый большой был вморожен в лед, размер — 9 на 9 метров, но разрешающая способность довольно низкая — 288х288 пикселей. Были дисплеи меньше размерами, но с бОльшим разрешением. Каждый микроконтроллер управлял или 8 или 16 линиями светодиодов, одновременно работало несколько контроллеров. Самый тяжелый случай был — 14 контроллеров по 8 линий. Но это была разработка на заказ, поэтому дополнительной информации по ней не будет. Кое-что без деталей реализации можно почитать здесь: Большой дисплей. Замороженный проект
А сейчас вернемся к моей недавней статье про 5-баксовый Raspberry Pi Pico на базе RP2040. Может, припоминаете — мне хотелось сделать именно управление дисплеем на ее базе, из-за наличия возможности программирования машины состояния для управление вводом-выводом на собственном ассемблере, мне показалось, что реализовать управление таким дисплеем будет не просто, а очень просто. В деталях повторяться не буду, обзор можно прочитать тут
Будем делать систему управления для 16 линий — этого хватит для 20480 светодиодов. Если мало — добавляем микроконтроллеры, благо копейки стоят. Для небольшого рекламного дисплея должно хватить.
Не забудьте про блок питания — если у вас светодиоды на 15мА, то понадобится чуть больше 900 ампер — обычной USB зарядки может не хватить :), все-таки почти 5 киловатт. А если взять 5 миллиамперные светодиоды — то каких-то 1.5 киловатт. Если белым светом не злоупотреблять, то мощность можно существенно уменьшить.
Под спойлером самое важное в статье, остальное все — от лукавого и можно не читать. А этот код — это все, что действительно надо, остальное любой разработчик легко сам доделает.
Дополнительная информация
Итак, код для PIO:
.define public T1 2
.define public T2 5
.define public T3 3
.wrap_target
out x, 32
mov pins, !null [T1-1]
mov pins, x [T2-1]
mov pins, null [T3-2]
.wrap
Все!
Забираем из входного регистра данные — до 32 бит, реально надо только 16. Выбрасываем в 16-разрядный порт все единицы и задержка. Выбрасываем на выход содержимое введеное из входного регистра — и задержка. И, наконец, выбрасываем нули и задержка.
Все это будет работать абсолютно независимо от процессора и сформирует сигналы управления светодиодом для всех (у нас будет их 16) линий.
Вместе с загрузкой программы PIO и настройкой выводов это будет выглядеть так (файл ws2812.pio)
Теперь в основной программе инициализируем DMA — все будет работать автоматом, безо всякого участия процессора. Простите уж мой французский — не привык комментировать программы на русском.
#include <Arduino.h>
#include "ws2812.pio.h"
#include "hardware/dma.h"
#include "hardware/pio.h"
#define LEDS_IN_STRING 1280
#define DMA_CHANNEL 0
uint16_t DataArray[LEDS_IN_STRING*24];
// 30720
void dma_init(PIO pio, uint sm)
{
// (X/Y)*sys_clk, where X is the first 16 bytes and Y is the second
// sys_clk is 125 MHz unless changed in code
// we need 800 kHz - divider 156.25 x=4 y=625( 0x271)
dma_hw->timer[0] = 0x00040271;
dma_channel_config c = dma_channel_get_default_config(DMA_CHANNEL);
channel_config_set_dreq(&c, 0x3b); // 0x3b -> Select Timer 0 as TREQ
channel_config_set_transfer_data_size(&c, DMA_SIZE_16);
channel_config_set_read_increment(&c, true);
channel_config_set_write_increment(&c, false);
dma_channel_configure(
DMA_CHANNEL, // Channel to be configured
&c, // The configuration we just created
&pio->txf[sm], // The initial write address
NULL, // The initial read address - set later
LEDS_IN_STRING*24, // Number of transfers;
false // Start immediately?
);
}
void setup()
{
PIO pio = pio0;
int sm = 0;
uint offset = pio_add_program(pio, &ws2812_parallel_program);
ws2812_parallel_program_init(pio, sm, offset, 0, 16, 800000);
dma_init(pio, sm);
// здесь заполните буфер чем-нибудь сами
}
void loop()
{
dma_hw->ch[DMA_CHANNEL].al3_read_addr_trig = (uintptr_t) DataArray;
delay(50);
}
В реальном времени использовать такой дисплей вряд ли получится. Никакого входа для видео тут нет.
Отображаемые данные нужно подготовить заранее, вытащив данные из изображения, учесть место расположения каждой точки — здесь у нас не как в телевизоре — строка за строкой.
Если есть видео — его надо разложить по кадрам. При необходимости добавить переходные эффекты по вкусу. У меня этим занимается написанная на Python программа — но это уже выходит за рамки статьи, иначе она никогда не кончится.
Раньше у меня была проблема — в гараже стояло несколько больших светодиодных панелей, место занимали. Не так давно все-таки удалось их отдать хозяевам. Естественно, спустя небольшое время такая панель понадобилось. Пришлось заказать пару дешевых панелей на Али. Размер 16х16, итого 256 светодиодов. За 10 евро неплохо — всего 4 цента за точку и паять ничего не надо. Я как-то покупал готовые ленты — там цена вообще получалась 3 цента за светодиод.
Сколько отдельно стоят светодиоды в небольших партиях (в районе 100 тысяч штук) — я точно не знаю, заказывал не я. Думаю, что в районе 2 центов.
К платке Raspbery Pi Pico понадобилось подключить только SD карточку. По хорошему, на выход нужно ставить преобразователь уровня в худшем случае или драйвер дифференциальной линии в лучшем. Но для теста программного обеспечения и так сойдет.
Новая система управления в окружении предшественников:
Совершенно случайно нашелся рояль в кустах старый переделаный источник питания, он может 60 Ампер по 5 Вольтам выдать. А двум панелям в динамике 10 ампер хватает. Системы выглядит даже как-то убого:
Две панели — 512 точек. Панель реально маленькая для такой системы управления — на каждую линию можно подключить до 5 таких панелек, имеем 16 линий — итого 80 панелей. А у меня всего 2 :( — только попробовать хватит. Вот что получилось:
Как я говорил, яркость избыточна. Видео снималась в ярко освещенной комнате, изображение просто по глазам бъет яркостью. А камера воспринимает, как съемку в темноте.
Готовые панели выходят дешевле, но если монтировать дисплей в окно, лучше сделать свои, со множеством отверстий. Тогда помещение не превращается в темнушку, изнутри выглядит примерно как жалюзи.
Видео с одним из старых дисплеев:
В моей старой системе данные, кадр за кадром, гонятся по проводному Ethernet.
Сейчас я попробовал скопировать блок данных на SD. Вылезла обычная ардуиновская проблема — все работает абы как. Быстро чтение данных не работает, я не могу считывать 30 кадров в секунду. Все можно переделать — когда я делал оригинальную систему, то тоже использовал Ethernet библиотеки, заимствованные из Ардуино. Ethernet работал, но очень медленно. Пришлось весь код перерывать — ошибки нашлись в очень мелких деталях. Сейчас копать библиотеки просто не хочется, да и нужды нет. Я хотел проверить только, как вывод на светодиоды работает, функционирующее изделие никому не нужно. «Будет хлеб — будут и песни» — как говорил дорогой Леонид Ильич.
Ну господь с ней, с Ардуиной. Есть же компания, которая продвигает этот проект. Должна же быть у Raspberry поддержка SD карт в их SDK. Как бы не так, как они пишут:
The pico_sd_card code is SDIO only at the moment. It is not really yet in shape for prime-time unless you are feeling brave. ссылка
Файловой системой там даже не пахнет — сам прикручивай.
Нет, я не трус, но я боюсь. Бежать впереди паровоза — не самое благодарное занятие. Мне не к спеху, подожду, пока они допилят свои библиотеки. Или для Ардуино кто-то допилит, на что надежда очень маленькая. Какая-то библиотека есть, а для большинства применений достаточно и низкой скорости доступа.
P.S. Если меня сильно заносит на поворотах и я уже совсем в сторону ушел от темы шопоголизма — дайте знать в комментариях, постараюсь исправиться :)
Если 550W, то явно не ATX 1.3, там только до 300W и по 3,3 и 5 вольт общая мощность до 200 только, т.к. снимаются с одной обмотки. Так что не сочиняйте, реально без перемотки не получить такой ток долговременно, надо удалять 12-вольтовую обмотку и вместо её мотать еще одну 5-ти.
Согласно шильдику, выдает 28+28А, реально — 60А. Что уж я там наделал много лет назад — не помню, но обмотки точно не трогал, объединил 5 и 3.3 Вольта, выкинул кучку ненужных деталей :) Не исключено, что при понижении сетевого напряжения он столько и не выдаст. И маленькая тонкость — сетевое напряжение отличается от принятого в России, 230 вместо 220 — может, здесь собака и порылась.
Чтобы мечта испарилась достаточно посчитать цену, ленты достаточно дорогие.
Потом прослезиться о разрешении, для хорошего эффекта нужно городить матовый слой и колодцы.
Если мечта ещё жива — считаешь необходимые частоты\задержки. Понимаешь, что нужны быстрые контроллеры и очень быстрый самописный код. И всё равно получится дёрганая картинка и артефакты из-за длинных сигнальных линий.
Но не понятно, почему не взять STM, где есть и фс и avi onfly render и DMA и не сделать на нормальном проце? А если это коммерческое — почему не взять нормальную raspberry, где уже есть и sd и ethernet и куча всего вместе с OS?
Ну и самое главное — если хочется качества — почему не забить на WS и не взять HD диоды например (HD107 чтоли, не помню точно маркировку, тоже пиксельные),. Да, будет дороже, зато куда качественней.
Через DMA отсылать данные в ленты получается куда стабильней, однако при такой здоровой тактовой у STM можно хоть bitbang-ом это слать. И код будет не сильно больше вашего. Ибо у вас оно же и используется.
При этом под STM это все уже есть в виде готовых библиотек.
Raspberry Pico получилась у них морской свинкой — те ни к морю, ни к свиньям.
С одной стороны она попыталась залезть в нишу arduino, ESP и STM — и там она нафиг не нужна, а с другой — не дотягивает до нормального одноплатника. Смысла в ней — ноль.
Но не понятно, почему не взять STM, где есть и фс и avi onfly render и DMA и не сделать на нормальном проце? А если это коммерческое — почему не взять нормальную raspberry, где уже есть и сд и куча всего вместе с OS?
В статье есть ссылка на мою статью на Хабре — Вы там все это и найдете.
А здесь я просто с Raspberry Pico баловался — у Вас, видимо, описка насчет Zero
Физика на Pico оказалась гораздо проще, чем на STM, кое-какие интересные плюшки в Pico есть, не стоит ее сходу хаить. Я подозреваю, что она разработана в основном одним человеком — я имею в виду кремний. Что очень неплохо.
Статью почитаю — интересно. Что до стейтмашины — имхо, у стм дма не хуже) А при такой огромной тактовой можно и свою стейт поставить. При этом цена ниже примерно в два раза.
Поверьте, я использовал и то, и другое. Да, на STM все прекрасно, но код на Pico намного проще. А насчет ниже цены — Вы ошибаетесь. Там оперативки нужно очень много.
Смотрите, на STM DMA будет вам выводить данные напрямую из памяти в порт, без преобразований. То есть, на 1 бит выходных данных для диодов вам придется в памяти 3 бита подготавливать. Или 9 байт на 1 диод (против 3-х байт тут). Для 20К диодов это будет 180КБ против 60КБ, достаточно ощутимо. И это при том, что пока один буфер (кадр) выводится, следующий надо готовить, значит, еще х2 памяти (нет, можно, конечно, соблюдая тайминги и в тот же писать, но это еще сложнее).
Наверное, можно найти STM32 с 512 КБ ОЗУ (я верхние модели не смотрел у них), наверняка он все успеет, т.к. имеет колоссальную производительность для МК, да и библиотеки там все будут. Но это будет уже совсем другой процессор. Для коммерческих разработок, конечно, лучше такой поставить. Но это менее спортивно.
А на данном процессоре, действительно, получается, что управлять адресными диодами проще.
Только, вот, рядовому самодельщику это все ни к чему — ни стм, ни пико. Я хотел сделать дисплей из 600 таких диодов (20х30) еще года три назад, когда только ленты с ними начали на Али продаваться относительно дешево. Даже панель металлическую достал 50х32 см (диоды на ленте через 16 мм стояли), хотел на стену повесить и в «тетрис» играть на ней. Потом оценил яркость (20 мА на канал, 60 мА на диод, 36 А на всю панель) и понял, что смотреть на фару автомобиля я не очень-то хочу. А снижение яркости, как автор правильно тут описал, упирается в разрядность диодов и отсутствие аппаратной гамма-коррекции. В итоге, насколько я помню, с диода можно полноценных только 4 бита получить (если программный дизеринг не использовать).
А так, код у меня даже для атмеги ардуиновской был — один вариант выводил параллельно 5 каналов, но занимал в это время 100% процессора (то есть, никаких прерываний, значит, никаких пультов и т.д.), другой — 1 канал, но полностью на UART и прерываниях. Он занимал примерно 50% процессора и позволял ту самую тысячу светодиодов обслужить 30 раз в секунду, не мешая в это время основной программе и другим прерываниям. Там тогда все уже в ОЗУ упиралось — в атмеге её всего 2 КБ, даже при 8 бит на пиксель два экрана больше половины уже занимали.
То есть имхо дома применение 2812 — это елочные гирлянды и цветная подсветка. Дисплеи дома такие не нужны, если только в окно поставить и перед соседями выпендриваться.
Смотрите, на STM DMA будет вам выводить данные напрямую из памяти в порт, без преобразований. То есть, на 1 бит выходных данных для диодов вам придется в памяти 3 бита подготавливать.
Не так все плохо для STM с памятью. Я просто использовал 3 DMA — первый выкидывал всегда единички, второй — реальное слово, третий — все нули. Только 2 слова лишней памяти, но вот с их синхронизацией пришлось маленько помудрить. После этого на Pico настолько все проще…
И обходился одним буфером — просто начинал его выкидывать еще не до конца заполненный. Но опять таки — любые ошибки в программировании не прощаются, никаких кубов и библиотек — все на регистрах.
Хм. А вот это интересное решение, чем-то спектрум напомнило, где при ограниченных возможностях пытались добиться результата несколько нестандартными способами.
И обходился одним буфером — просто начинал его выкидывать еще не до конца заполненный.
Мне кажется, современные разработчики о таком даже и не подумают )
сюда вообще FPGA + любая плата с HDMI(DVI) выходом. принимаем HDMI на FPGA и выдаём картинку хоть на 128 каналов. можно будет просто видео крутить, безо всяких конверсий
Так, для затравки — в серии G (как корабль назовете ...) в STM шина GPIO вынесена в отдельный хвост без доступа DMA (в угоду ардунщиков). Теперь ногодрыг DMA+GPIO невозможен в-принципе.
Если тот вариант, что описан на Pico — 25 евро не разорит.
А то, что сделано на стадионе — наверно, тоже, если у Вас есть свой стадион. Но мне кажется, что цена меньше, чем Вы думаете.
китайцы на открытии Олимпиады своим самым большим экраном в истории LED технологий удивили всех
Скорее не экраном, а тем, сколько они денег туда вбухали, потому как технологии довольно отлажены и чтобы такое сделать по большей части надо просто хорошо раскошелится.
Пришлось заказать пару дешевых панелей на Али. Размер 16х16, итого 256 светодиодов. За 10 евро неплохо — всего 4 цента за точку и паять ничего не надо.
Что-то все равно очень дорого выходит, я заказывал панели 64х64 по 25 долларов (около 20 евро), там получается 0.6 цента за пиксель. Но это панели с обычными RGB светодиодами и контроллером, странно что с адресуемыми так дорого выходит.
У меня толщина имеет значение. На катке, например, толщина льда 4-5 см. Из них сантиметра 3 коньками пропахивают. И, кроме того, попробуйте обычные панели залить водой и заморозить. И провода еще от них вытянуть подо льдом больше 10 метров. Ну а в окне обычные модули просто свет перекрывают, из комнаты темнушка получается. Иногда вес важен. Короче, каждому овощу свой фрукт :)
Может из-за разности в стоимости самих диодов? Могу предположить, что обычных RGB налепили уже давно и много, теперь они практически не нужны, вот и продаются дешево.
Скорее всего причина намного прозаичнее. Светодиоды еще на пластине тестируются, есть бины, которые ни один серьезный покупатель не возьмет — эффективность мала или длина волны отъехала. Их или придется выбросить, или корпусировать по самому дешевому варианту и продать дядюшке Ляо в подвал или нам с вами на Али.
само железо, думаю, стоит недорого. Значимую часть стоимости составляет продажа, пересылка, реклама магазина, офис итд, что закладывается в стоимость покупки…
По факту, для 10.4 п/м 5V ленты мне потребовался БП на 40А (200W). А для 13.5 п/м 12V ленты — 20А. Не говоря уже о сечении подводимых проводов и количестве точек дополнительного подвода питания, чтобы минимизировать потери.
Это не к Вам относилось, просто An_private написал сообщение, потом передумал и заменил его этой фразой, он имел ввиду не Вас, но получилось двусмысленно.
Спрошу не совсем по теме — но, наконец, есть тема о лентах.
На светодиодных лентах (одноцветных), рассчитанных на 12В/24В в группе светодиодов всегда(я не видел исключений у китайцев) стоит резистор. Если я верно понимаю — он корректирует ток через светодиоды, подстраивая его оптимальное значение. Эти ленты делаются километрами. На каждой есть резисторы, греющие атмосферу. Почему нельзя подобрать(разработать) светодиоды, которые бы в группе 3,4… штук обеспечили нужное падение напряжение (например 12В).
У диодов (и светодиодов в частности) экспоненциальная вольт-амперная хар-ка (ВАХ) на прямом участке, т.е. при малом измениении напряжения ток меняется очень сильно. Также при нагревании эта хар-ка «уползает» влево. т.е. при фиксированном напряжении и нагревании ток расчёт. Всё это не позволяет безопасно питать диоды от источника напряжения, используют источники тока или последовательно с диодом ставят резистор, чтобы сделать общую ВАХ диод + резистор более пологой.
Ленты делаются не километрами, а сегментами 50см, потом сегменты спаиваются в 5 метровые катушки. У светодиода ток растет лавинообразно, с повышением напряжения и температуры, в лентах без резисторов не вариант, возможно использовать токовые стабилизаторы, как на фото ленты, светодиоды возможно использовать группами, с токовыми драйверами, но там тоже много нюансов.
Почему нельзя подобрать(разработать) светодиоды, которые бы в группе 3,4… штук обеспечили нужное падение напряжение (например 12В).
Во-первых, падение напряжения на светодиоде зависит от материала его изготовления и никак не «регулируется» при производстве. Так же как литий-ионный аккумулятор всегда на 4.2 В, падение на кремниевом переходе 0.7 В и т.д. То есть, сделать светодиод на 3 или 4 вольта попросту невозможно. Это первое.
А второе и главное — то, что светодиоды, по сути, питаются током, на не напряжением. То есть, на самом деле задача не обеспечить на них 2, 3 или 3.3 В, задача обеспечить через них заданный ток (например, 20 мА через диод). По большому счету, для этого надо ставить отдельный драйвер на каждую цепочку. Это дорого, поэтому в лентах драйвер просто заменяется резистором, на котором падает порядка 20% мощности (для белых лент 12 В). Такой компромисс.
Олигархом тут не пахнет, компонентов на несколько сотен долларов, но вот труда — даже не вагон, а целый состав.
Хотя иногда люди делают и намного более странные вещи неизвестно зачем.
Подозреваю, что соседи очень недовольны таким шоу :)
вы посмотрите в видео в профиле его инфо. В итоге он начал выпускать девайсы и ПО под это всё дело. Как я понял из его сайта/комментариев, его дистрикт очень доволен такими шоу. Время его заранее сообщается и люди свободно могут приехать вне поля зрения камеры посмотреть и поснимать. У него бывают благотворительные шоу и коммерческими тоже занимается. Я даже не представляю сколько там труда вложено. Кстати было и фото серверной. Там целая стойка этим управляет. Только недавно он поставил 8 прожекторов. а вообще начиная с самых старых видео смотреть интересно развитие.
Думаю, с таким проектом бы справился — но мне оно точно не надо. Да и по крышам лазить — это занятие не для инвалида, мне обычную лампочку вкрутить — и то супругу звать приходится, иначе навернусь вместе с этой лампочкой. Так что только в компании с кем-то. Хотя может быть и интересно, пенсионеру делать-то особо нечего.
Мои самые большие дисплеи управляются дохлым по производительности лаптопом с Линуксом, купленным по дешевке на интернет-барахолке и малиной. Ну и куча контроллеров-драйверов и всякая дешевая сетевая требуха.
С таким явно побольше железа понадобится. А ту картинку, что у него на фоне гаражных ворот — это совсем легко с тем, что у меня есть, изобразить, даже сильно избыточно. Но, наверно, даже красивее будет — тогда можно и кино «в воздухе» показывать, не только эффекты.
думаю да, но в «коттеджных посёлках », где может быть охраняемый въезд и забор или в общественных местах это можно реализовать. На такую «ёлку» я бы пошел)
Кстатиу автора видео даже координата дома есть. типа приезжайте смотрите
Аплодирую стоя
:-)
Всегда была мечта сделать светодиодный экран метров 10 по диагонали )
Потом прослезиться о разрешении, для хорошего эффекта нужно городить матовый слой и колодцы.
Если мечта ещё жива — считаешь необходимые частоты\задержки. Понимаешь, что нужны быстрые контроллеры и очень быстрый самописный код. И всё равно получится дёрганая картинка и артефакты из-за длинных сигнальных линий.
Но не понятно, почему не взять STM, где есть и фс и avi onfly render и DMA и не сделать на нормальном проце? А если это коммерческое — почему не взять нормальную raspberry, где уже есть и sd и ethernet и куча всего вместе с OS?
Ну и самое главное — если хочется качества — почему не забить на WS и не взять HD диоды например (HD107 чтоли, не помню точно маркировку, тоже пиксельные),. Да, будет дороже, зато куда качественней.
Через DMA отсылать данные в ленты получается куда стабильней, однако при такой здоровой тактовой у STM можно хоть bitbang-ом это слать. И код будет не сильно больше вашего. Ибо у вас оно же и используется.
При этом под STM это все уже есть в виде готовых библиотек.
Raspberry Pico получилась у них морской свинкой — те ни к морю, ни к свиньям.
С одной стороны она попыталась залезть в нишу arduino, ESP и STM — и там она нафиг не нужна, а с другой — не дотягивает до нормального одноплатника. Смысла в ней — ноль.
А здесь я просто с Raspberry Pico баловался — у Вас, видимо, описка насчет Zero
Физика на Pico оказалась гораздо проще, чем на STM, кое-какие интересные плюшки в Pico есть, не стоит ее сходу хаить. Я подозреваю, что она разработана в основном одним человеком — я имею в виду кремний. Что очень неплохо.
А что за плюшки? Не поделитесь?
Я имел ввиду по сравнению с STM.
Наверное, можно найти STM32 с 512 КБ ОЗУ (я верхние модели не смотрел у них), наверняка он все успеет, т.к. имеет колоссальную производительность для МК, да и библиотеки там все будут. Но это будет уже совсем другой процессор. Для коммерческих разработок, конечно, лучше такой поставить. Но это менее спортивно.
А на данном процессоре, действительно, получается, что управлять адресными диодами проще.
Только, вот, рядовому самодельщику это все ни к чему — ни стм, ни пико. Я хотел сделать дисплей из 600 таких диодов (20х30) еще года три назад, когда только ленты с ними начали на Али продаваться относительно дешево. Даже панель металлическую достал 50х32 см (диоды на ленте через 16 мм стояли), хотел на стену повесить и в «тетрис» играть на ней. Потом оценил яркость (20 мА на канал, 60 мА на диод, 36 А на всю панель) и понял, что смотреть на фару автомобиля я не очень-то хочу. А снижение яркости, как автор правильно тут описал, упирается в разрядность диодов и отсутствие аппаратной гамма-коррекции. В итоге, насколько я помню, с диода можно полноценных только 4 бита получить (если программный дизеринг не использовать).
А так, код у меня даже для атмеги ардуиновской был — один вариант выводил параллельно 5 каналов, но занимал в это время 100% процессора (то есть, никаких прерываний, значит, никаких пультов и т.д.), другой — 1 канал, но полностью на UART и прерываниях. Он занимал примерно 50% процессора и позволял ту самую тысячу светодиодов обслужить 30 раз в секунду, не мешая в это время основной программе и другим прерываниям. Там тогда все уже в ОЗУ упиралось — в атмеге её всего 2 КБ, даже при 8 бит на пиксель два экрана больше половины уже занимали.
То есть имхо дома применение 2812 — это елочные гирлянды и цветная подсветка. Дисплеи дома такие не нужны, если только в окно поставить и перед соседями выпендриваться.
И обходился одним буфером — просто начинал его выкидывать еще не до конца заполненный. Но опять таки — любые ошибки в программировании не прощаются, никаких кубов и библиотек — все на регистрах.
Мне кажется, современные разработчики о таком даже и не подумают )
Насчет высокооплачиваемого — Ваши слова бы да Богу в уши.
А то, что сделано на стадионе — наверно, тоже, если у Вас есть свой стадион. Но мне кажется, что цена меньше, чем Вы думаете.
Площадь 10552 кв. м, состоит из более чем 40000 светодиодных модулей.
Заносов не замечено… :))
90W / 5V=18A
90W / 12V=7,5A
По факту, для 10.4 п/м 5V ленты мне потребовался БП на 40А (200W). А для 13.5 п/м 12V ленты — 20А. Не говоря уже о сечении подводимых проводов и количестве точек дополнительного подвода питания, чтобы минимизировать потери.
Их ведь только собрать надо и контроллеры готовые есть.
Или с ними дороже выходит?
На светодиодных лентах (одноцветных), рассчитанных на 12В/24В в группе светодиодов всегда(я не видел исключений у китайцев) стоит резистор. Если я верно понимаю — он корректирует ток через светодиоды, подстраивая его оптимальное значение. Эти ленты делаются километрами. На каждой есть резисторы, греющие атмосферу. Почему нельзя подобрать(разработать) светодиоды, которые бы в группе 3,4… штук обеспечили нужное падение напряжение (например 12В).
А второе и главное — то, что светодиоды, по сути, питаются током, на не напряжением. То есть, на самом деле задача не обеспечить на них 2, 3 или 3.3 В, задача обеспечить через них заданный ток (например, 20 мА через диод). По большому счету, для этого надо ставить отдельный драйвер на каждую цепочку. Это дорого, поэтому в лентах драйвер просто заменяется резистором, на котором падает порядка 20% мощности (для белых лент 12 В). Такой компромисс.
Хотя иногда люди делают и намного более странные вещи неизвестно зачем.
Подозреваю, что соседи очень недовольны таким шоу :)
Думаю, с таким проектом бы справился — но мне оно точно не надо. Да и по крышам лазить — это занятие не для инвалида, мне обычную лампочку вкрутить — и то супругу звать приходится, иначе навернусь вместе с этой лампочкой. Так что только в компании с кем-то. Хотя может быть и интересно, пенсионеру делать-то особо нечего.
Мои самые большие дисплеи управляются дохлым по производительности лаптопом с Линуксом, купленным по дешевке на интернет-барахолке и малиной. Ну и куча контроллеров-драйверов и всякая дешевая сетевая требуха.
С таким явно побольше железа понадобится. А ту картинку, что у него на фоне гаражных ворот — это совсем легко с тем, что у меня есть, изобразить, даже сильно избыточно. Но, наверно, даже красивее будет — тогда можно и кино «в воздухе» показывать, не только эффекты.
Кстатиу автора видео даже координата дома есть. типа приезжайте смотрите
Подхожу поближе:
Моё почтение!