Товары из Китая

Новогодняя снежинка на ws2812 "Snowflake"


Новогодняя снежинка на ws2812 "Snowflake"

Астрологи объявили предновогодние недели. Количество обзоров на самодельные гирлянды увеличилось вдвое. Не планировал присоединяться к движению, но, похваставшись в комментах и нахватав плюсов, придётся оправдывать. Не уверен, что много кто захочет повторить, но поглядеть, надеюсь, будет интересно. В конце концов, сделать это новогоднее украшение меня смотивировали, не в последнюю очередь, здешние обзоры прошлых лет. Значит не зря оно.

Ничего принципиально нового я, конечно, не придумал. Светодиодная лента с адресными диодами, которыми можно управлять индивидуально, появилась уже достаточно давно. Ну и идея делать на её основе новогодние снежинки была уже давно успешно реализована, в том числе и тут, на mysku. Акрил и лазерная резка от sav13, 3D печать от An_private, для примера. Но повторять готовые конструкции не так интересно, как изобретать свои велосипеды. Авторам же спасибо за вдохновение и мотивацию. Без них лента у меня так и лежала бы неиспользованной. А мне нечем было бы похвастаться.

Новогодняя снежинка на ws2812 "Snowflake"

Малая снежинка

Начал я с «комнатной» снежинки диаметром примерно 24 см. Делал из расчёта использовать 1 метр ленты с низкой плотностью, всего 30 диодов на метр. У снежинки 6 лучей, по 5 светиков на каждый. Но потом добавил ещё один диод, 31й, в центр. Не очень удобно, но так получалось гораздо симпатичнее. Вживую выглядит лучше, камера не вытягивает диапазон яркостей и пересвечивает, делает белыми участки рядом с диодами.

Новогодняя снежинка на ws2812 "Snowflake"

Корпус печатный. Нарисовал в Solid Works, не потому, что он такой сложный. Наоборот, я тогда только изучал эту систему, вот и тренировался на простеньких моделях. Каждый луч и крышка к нему печатаются отдельно, напечатать снежинку целиком не хватает области печати 20х20 см моего принтера. Да и частями печатать проще, как по мне. Лучи потом приклеиваются к центральной части. Печатал белым PETG, при тонком слое он хорошо работает рассеивателем, яркости диодов хватает с запасом.

Новогодняя снежинка на ws2812 "Snowflake"

Паять её довольно муторно и долго, много проводочков нужно отмерить нужной длины, зачистить и припаять. Удобно делать разными цветами, питание красным и черным, желтым — сигнал управления. Питание для боковых диодов можно брать в любой удобной точке основной ветви, старался так, чтобы меньше перекрещивались провода. Главное соединить питание всех трех отрезков ленты на каждом из 6 лучей. Сигнальный канал же соединяется в определенном порядке, выход одного куска с началом следующего. Вначале основная ветвь, потом две боковые и обратно, к следующему лучу. Аккуратнее всего разводка получается, если делать как на нижнем левом луче.

Новогодняя снежинка на ws2812 "Snowflake"

В центре собираем красно-черный хоровод. Самый первый луч начинается с центрального диода.

Новогодняя снежинка на ws2812 "Snowflake"

По началу я повозился, подбирая наиболее удачную топологию проводов, но потом дело пошло побыстрее. В итоге я осилил 3 такие снежинки. Две из них потом украшали кафешку, пока пандемия её не убила.

Новогодняя снежинка на ws2812 "Snowflake"

В принципе, 31 диод — это немного, должно хватить и классической ардуины (ATmega168). Но я выбрал микроконтроллер stm32f030f4p6. Он тогда стоил вообще копейки, 69 центов, поэтому я его купил пару десятков и использовал в различных поделках. 16КБ под прошивку, 4КБ памяти, сказка за такие деньги. А при его богатой периферии, можно ещё и всё управление лентой переложить на железо. Рассчитал в софте цвета диодов для следующего кадра, подготовил всё в буфере, дал команду железу — и оно само отправляет это всё ленте, а пока отправляется, можно уже считать следующий кадр. Для трех десятков диодов не так уж нужно, но очень удобно. Минус такого подхода только один, из-за особенности протокола ws2812b, под буфер требуется много памяти, по 24 байта на пиксель (по байту на бит цвета). Так получается из-за протокола, используемого WS2812, если его эмулировать через UART или timer->dma->pwm. До сотни диодов хватает 4 килобайт оперативки, а вот 150 уже впритык, не останется на расчеты эффектов. Код управления светодиодами я взял готовый, было лень писать самому. Из этого ebrombaugh.studionebula.com/embedded/lightshow/index.html проекта. Платку под микроконтроллер взял из того, что было под рукой. Это макетка сразу под esp8266 и stm32f030. Делал для себя. Может и стоит заменить на покомпактнее вариант, но работает — не трогай. Оставлю как есть. С обратной стороны выглядит так, простите за неотмытый флюс, термоклей, грязный кабель… диайвай с изнанки — он такой:

Новогодняя снежинка на ws2812 "Snowflake"

Если захотите повторить, то можно использовать платку от китайцев, вот таких полно на али, цена в районе 3 долларов. Прошивается через UART или дешевым программатором ST-Link.

Новогодняя снежинка на ws2812 "Snowflake"

ШИМ на видео, особенно на синем цвете, это только на камере.

Большая снежинка

Такая снежинка хорошо смотрится в помещении, но, когда я повесил её на окно, посмотрел с улицы и понял, что на высоте 12 этажа она выглядит слегка переливающимся пятнышком. Так не интересно. Ну и на следующий год решил запилить снежинку побольше. Чтобы она выглядела вот так (на два окна правее как раз видна точка маленькой снежинки):

Новогодняя снежинка на ws2812 "Snowflake"

На неё ушло ровно 5 метров ленты, с той же плотностью 30 диодов на метр. Это самый дешевый вариант адресной ленты. В качестве каркаса — алюминиевая полоса из строймага. Я взял 20*2 мм, три штуки по 2 метра, метровый кусок остался. В Леруа мне сейчас показывает цену 122 рубля за двухметровую, 75р за метровую.

Новогодняя снежинка на ws2812 "Snowflake"

Соединители и центральную шайбу печатаем на принтере. Нет принтера? Какой же диайвай без принтера то? Шучу. Можно взять полосу с запасом, сложить внахлест и скрутить болтами с боков от ленты. А центральную часть выпилить из фанеры. Или сделать сурово, сварить всё из стальной полосы. Лишь бы такая снежинка не упала на кого-нибудь. Конструкция простая, точность особая не нужна, проблем быть не должно. Хотя, мне кажется, сейчас не так сложно найти кого-нибудь рядом, кто напечатает. Чертил в OpenSCAD, если что, должно быть легко подправить под другую ширину полосы. Соединение с обратной стороны:

Новогодняя снежинка на ws2812 "Snowflake"

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

Новогодняя снежинка на ws2812 "Snowflake"

Для возможности разъединения проводов припаял обычные штырьки 2.54мм. 4 штырька на каждый луч. Три пина припаиваются прямо к ленте, земля, данные, +5 вольт. А на четвертый возвращается провод данных с дальнего конца луча. В центре это соединяется вот таким пауком (и да, я знаю, что у паука 8 лап, мой просто жертва беспощадного диайвая):

Новогодняя снежинка на ws2812 "Snowflake"

В каждом луче схема соединения аналогична маленькой снежинке. Что радует, паять тут столько же, хоть и размер в 5 раз больше. Над лентой тут нет крышки-рассеивателя, для любования с большого расстояния она и не требуется, светодиоды слепят только вблизи. Да и красоту особо наводить не требуется, с улицы не видно, далеко, а изнутри помещения изнанка вполне приличная. Так что я повода фиксировал термоклеем, только чтобы они не попадали в свет диодов, не перекрывали их.

Новогодняя снежинка на ws2812 "Snowflake"

Новогодняя снежинка на ws2812 "Snowflake"

Попробовал взять «мозги» от мелкой снежинки и подключить к новой. Тут-то мне памяти и перестало хватать. Нет, впихнуться, я уверен, было можно. В оптимизацию я могу и умею. Я, к примеру, делал LED куб 8*8*8 диодов на ATmega32U4. Таких кубиков в инете полно. Вот только мой был ещё и с градациями яркости, динамическая индикация слоев одновременно с ШИМом отдельных диодов. Выглядит гораздо интереснее. (Видео плохо передаёт яркость, но примерно понять можно: youtu.be/tFre3wmwgtU). Так вот, в этот раз я заленился и решил просто взять что-то побольше. АТмеги памятью не славятся. STM32F100 с оперативкой более 8КБ идут в больших корпусах, что тоже какой-то оверинжиниринг, учитывая что нужен всего один пин для управления лентой. Да и цены на них росли ещё до силиконового кризиса, не говоря уж о дефиците сейчас. Наверное, STM32F103Cx, который стоит на BluePill, подошел бы, 20КБ памяти, 72МГц. Но я в итоге выбрал esp8266 в виде модуля ESP-07. Оверинжиниринг, скажете? Ну, вроде как да. Зато дешево, компактно, много памяти. И у меня их в запасе больше сотни, для меня — рабочая лошадка. Использую их в приводах штор LazyRolls. Что касается лишнего Wi-Fi, да пусть будет, хоть и не нужен. Пока что я его не использую. Но можно и задействовать, использовать как вход для цветомузыки. Или для обновления прошивки, если потом захочется добавлять эффектов, не снимая с окна. И чем ещё еспшки мне нравятся, они проще новичкам. Я не думал, что снежинку буду предлагать для повторения, но если вдруг кто захочет, ему будет проще, всякие NodeMCU широко распространены, код можно по своему вкусу быстренько подправить в Arduino IDE, которая для новичка гораздо проще, чем ставить Keil или PlatformIO, которые использовал я. А библиотека FastLED, хоть её иногда критикуют за монструозность, поддерживает разные типы управляемых лент, что делает прошивку более универсальной.

Новогодняя снежинка на ws2812 "Snowflake"

Что мне не нравится в тех проектах, что я видел, так это анимация. Я пробовал и WLED, и прошивку для ёлки от Jason Coon (Evil Genius Labs). Нет, эффекты красивые, тут вопросов нет. Но вот смена эффектов обычно происходит мгновенно, вот были «искорки», вдруг бац, уже радуга. Кому как, а мне такой вариант не по вкусу. Мне хотелось сделать так, чтобы один эффект плавно переходил в другой. Яркость предыдущего эффекта снижается, а следующего — нарастает. При этом какое-то время оба эффекта движутся по своим программам одновременно. Это требует несколько больших вычислительных мощностей. Зато перетекание одного эффекта в другой само по себе даёт причудливые эффекты, иногда удачные, иногда и нет. Но разнообразия добавляет. Вот что у меня получилось. Видео снято изнутри. Наледь на стеклах балкона хорошо рассеивает диоды и их так проще заснять. Да и зима на улице не располагает к съёмкам дрожащими руками на большом зуме.

Софт

Цвета для анимации считаются в HSV координатах. Т.е. тон, насыщенность, яркость. Так гораздо проще делать яркие эффекты. К примеру, плавный переход между красным и голубым проходит по всем оттенкам радуги, через оранжевый, желтый, зеленый. Достаточно только плавно менять значение цвета H, оставляя насыщенность S и яркость V в максимуме. В RGB такое считать очень неудобно. Перед выводом ещё желательно немного скорректировать гамму. Глаз воспринимает яркость нелинейно. Половинная яркость диода выглядит всего лишь чуть-чуть менее яркой. Я в мелкой снежинке сделал простейшую коррекцию по степеням двойки, рассчитанная яркость в диапазоне 0-255 превращается в фиксированные десять уровней: 0, 1, 2, 4, 8, 16, 32, 64, 128, 255. Неидеально, но на практике даёт вполне приличный результат. На украшении такое упрощение совсем незаметно. В библиотеке FastLED гамма-коррекция уже есть, стал использовать её.

Новогодняя снежинка на ws2812 "Snowflake"

Палитры для эффектов задаются из 6 цветов в HSV. Мне этого представляется достаточным, учитывая что промежутки между ними интерполируются. Можно задать как радугу, так и палитры из трех и двух цветов, повторяя нужные цвета. Например, белый, синий и красный для флага. Или палитра «кока-кола» из чистых красного и белого. Камрадам из РБ может понравится, но будьте осторожны, если решите повторить.

Новогодняя снежинка на ws2812 "Snowflake"

Эффекты считаются в двухмерных координатах. Для каждого светодиода в прошивке рассчитаны координаты, по ним и определяется цвет в каждый момент времени для каждого светодиода. Такой подход офигителен тем, что прошивку легко модифицировать под любое число диодов, расположенных произвольным образом. Достаточно только рассчитать (ручками, линейкой или в какой-нибудь программе) координаты светиков в пространстве. Можно хоть матрицу сделать, хоть надпись, хоть снежинку. И будет работать. Поэтому мне было легко отмасштабировать маленькую снежинку в большую, взяв тот же код. Сами эффекты, конечно, я затачивал под круговой рисунок, у которого есть центр и на котором хорошо смотрится, к примеру, вращение. Но потом добавил и эффекты типа «развевающийся флаг», который подошёл бы на прямоугольное украшения даже лучше, чем на снежинку.

Координаты диодов рассчитаны как в декартовых координатах (0-255 по X и Y), так и в угловых (угол от вертикали и расстояние от центра, оба параметра 0-255). Одно в другое можно легко пересчитать программно. Для такой формы, как снежинка, проще вручную задать угловые координаты, а программно пересчитать в декартовы. Для других узоров, возможно, будет проще наоборот, забить константы X-Y, а в угловые пересчитать программно. Для снежинки я добавил ещё одну «координату», по ней можно определить, к чему относится диод, центральной точке, основному лучу или боковым отросткам. Это тоже можно использовать в эффектах. Только когда готовил иллюстрации к этому тексту, я заметил, что не совсем точно задал угловые координаты для второстепенных лучей, получились слегка куриные лапки. Ну и ладно, запишем криворукость в фирменный авторский стиль.

Новогодняя снежинка на ws2812 "Snowflake"

Помимо того, что для анимации выбираются случайным образом эффект и палитра, ещё выбирается случайно параметр, который, в зависимости от эффекта, может менять направление анимации на обратное, отображать эффект горизонтально или вертикально, менять скорость и т.п. Это ещё увеличивает разнообразие. Был бы я китайцем, посчитал бы все комбинации, говорил бы про 100500 эффектов. Но это не наш путь.

Эффекты

Новогодняя снежинка на ws2812 "Snowflake"

Линейная волна

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

Новогодняя снежинка на ws2812 "Snowflake"

Радиальная волна

Расходящиеся круги на воде. За счёт более высокой плотности диодов у краёв снежинки получается более яркий всплеск. Немного напоминает этим салют. Параметры могут сделать круги сходящимися к центру и отзеркалить палитру.

Новогодняя снежинка на ws2812 "Snowflake"

Вращающаяся волна

Эффект вращения вокруг центра. Тут уже немного больше разнообразия. Может меняться не только направление вращения и палитры. Хвостики снежинки могут вращаться навстречу основным лучам (как на примере). Или могут вращаться только хвосты, получается такой хоровод. Неплохо смотрится вариант с палитрой «flash», где яркие цвета чередуются с чёрным. Вращающиеся желтый, зеленый и красный изображают векторную диаграмму напряжений трехфазной сети 🙂

Новогодняя снежинка на ws2812 "Snowflake"

Потоковый накопитель

Две встречные волны по четным и нечетным лучам снежинки. Навеяно машиной времени из «Назад в будущее». Там было три сходящихся луча. Ну а тут удвоенная версия 🙂 Мне особенно нравится в варианте чередующихся черного и зеленого.

Новогодняя снежинка на ws2812 "Snowflake"

Вспышки

Случайные вспышки, плавно затухающие. Или, как вариант, капли дождя. Разноцветного, правда, ну, уж какая экология есть. Эффект не зациклен, поэтому на превью дергается в месте склейки, в железе такого, конечно, нет.

Новогодняя снежинка на ws2812 "Snowflake"Новогодняя снежинка на ws2812 "Snowflake"

Бегающие огни

Немного схоже с эффектом радиальной волны, но тут не полная волна пробегает, а что-то вроде отдельных точек. Достаточно сильно модифицируется параметрами, направление (расходящиеся, сходящие, пульсирующие), одна или две точки одновременно на каждом луче, сдвиг точек по фазе, дающий эффект спирали. Вот два примера вариабельности:

Новогодняя снежинка на ws2812 "Snowflake"

Спираль

Отдельно эффект спирали. Похоже на вращающийся фейерверк. Тут наверное стоит разнообразить параметрами, сейчас только направление и палитра меняются. Но эффект достаточно симпатичный, пока не надоел.

Новогодняя снежинка на ws2812 "Snowflake"

Деревья

Стволы и ветви переливаются по отдельности. Эффект мигания, меньше анимации, больше привлечения внимания 🙂 Для разнообразия и такое полезно. Смахивает на простую двухканальную гирлянду.

Новогодняя снежинка на ws2812 "Snowflake"

Флаг

Развевающийся флаг. Может быть отзеркален и повернут на 90 градусов. Я в прошивке добавил 33% вероятности выпадения цветов флага РФ для этого эффекта. Но можно поменять на любую другую палитру или вообще убрать приоритет. Для флага РФ также отключаются вращение и отзеркаливание. Вот чего я не подумал, что надо добавить запрет на флаг в сочетании с палитрой «радуга». А то мало ли. Выглядит, кстати, красиво, но показывать не буду.

Новогодняя снежинка на ws2812 "Snowflake"

Плоская волна

Дабы закрыть тему волн, добавил ещё одну, в декартовых координатах, т.е. прямоугольную. С вариациями вертикальной, горизонтальной, диагональной, угловой, в разных направлениях.

Новогодняя снежинка на ws2812 "Snowflake"

Один цвет

Ещё один простой эффект без изысков. Просто монохромно переливается по заданной палитре. Скучновато, но с разными цветами пойдёт. В сочетании с переходами к соседним эффектам тоже даёт неплохие комбинации.

Новогодняя снежинка на ws2812 "Snowflake"Новогодняя снежинка на ws2812 "Snowflake"

Бегущие огни 2

Алгоритм смешанный из бегущих огней 1, спирали и вращающейся волны. Сильно зависит от параметров. Палитра может вращаться по кругу или нет. Кольца/спирали. Пульсация.

Новогодняя снежинка на ws2812 "Snowflake"

Прожекторы

Алгоритмически это должны были быть 3 круга, движущиеся в пространстве, как световые пятна от поисковых прожекторов, каждый по двум противоположным веткам. На снежинке это выглядит странновато, но в целом что-то в этом есть.

Новогодняя снежинка на ws2812 "Snowflake"Новогодняя снежинка на ws2812 "Snowflake"

Стрелки

Эффект с акцентом на хвостики, стрелочки, куриные лапки. Параметрами может меняться радиальная или угловая анимация, добавляться бегающие посередине точки

Новогодняя снежинка на ws2812 "Snowflake"

Прожектор 2

Ещё один прожектор. Если честно, я сам не знаю, что я тут навертел. Вроде как несколько пятен, движущихся случайно в пространстве, накладываются друг на друга. Издалека, когда не видно отдельных диодов, вполне угадывается что-то похожее.

Новогодняя снежинка на ws2812 "Snowflake"

Плазма

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

Для иллюстраций к этому обзору я накалякал приложение под десктоп для симуляции снежинки. Его же можно будет использовать и для отладки новых эффектов. Код анимаций взят прямо из прошивки большой снежинки. В том числе можно заценить и плавные переходы между эффектами. Кнопка save сохраняет последовательность png’шек для анимированных gif’ок (делать сохранение сразу в анимированный gif было лень). Компилируется в QT5.7. Бинарник под винду есть на гитхабе, если кто не брезгует запускать незнакомые exe. Под линукс тоже должно скомпилироваться, но мне лень проверять, у меня лапки, я виндузятник.

Новогодняя снежинка на ws2812 "Snowflake"

Прошивку для esp8266 я писал в PlatformIO IDE, это гораздо удобнее, чем Arduino IDE. Но если нужно что-то подправить по мелочи, то можно сделать и в последней, через неё же и прошить. Достаточно взять файл «srcmain.cpp» из исходников, переименовать в snowflake.ino и открыть в ардуине. И не забыть подключить библиотеку FastLED 3.4.0.

В самом начале прошивки есть константы настроек. Тип ленты, порядок цветов, пин для подключения.

Можно изменить число светодиодов, но это немного сложнее, так как потребует пересчёта координат. Массив led_coord_r содержит расстояния диодов от центра, диапазон значений 0-255. Так как лучи одинаковые, симметричные относительно центра, то в массиве 6 одинаковых строк:

17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255,   180, 192, 204, 216, 228,    180, 192, 204, 216, 228

Легко увидеть, что первые 15 диодов расположены на примерно равномерно возрастающем удалении от центра, а две группы по 5 диодов стартуют где-то между 10-11 диодами основной ветки и также удаляются от центра. Угловая координата диодов (примерно как время на стрелочных часах) указывается в массиве led_coord_a. Так как лучи снежинки, опять таки, повторяются, только сдвигаются на 60 градусов, то координаты достаточно рассчитать для одного, а потом повторить 6 раз с прибавлением константы. Делается это так:

#define t 21

t, t, t, t, t, t, t, t, t, t, t, t, t, t, t, t-3, t-6, t-9, t-12, t-15, t+3, t+6, t+9, t+12, t+15,

определяется «базовый» угол t для луча. У меня снежинка расположена в двух створках окна, поэтому повернута одним лучом горизонтально, а двумя другими — по диагонали. Т.е. первый луч имеет наклон 30 градусов, что в диапазоне 0-255 даёт значение 30/360*256 = 21. Все 15 диодов на основной ветви имеют этот угол. Ну а диоды отростков расставляем со сдвигом 3-15 в одну и другую сторону. Остальные лучи копируем и меняем только значение t. Довольно просто.

Ещё для некоторых эффектов используется псевдо-координата led_coord_br. Она определяет принадлежность к основной или боковой ветви. Тут вообще просто, основные диоды обозначаем 0, боковые — 128. Получается 6 таких строчек:

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

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

Если прошивку нужно адаптировать под какой-то более сложный рисунок, то можно наоборот, вручную задать координаты X/Y диодов, а программно пересчитать в угловые. Вот к примеру, можно как-то так сделать, останется только гирлянду разложить в нужном порядке:

Новогодняя снежинка на ws2812 "Snowflake"Новогодняя снежинка на ws2812 "Snowflake"

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

Новогодняя снежинка на ws2812 "Snowflake"

С подключением ленты есть небольшой нюанс. WS2812B питается от 5 вольт. И за логическую единицу, по даташиту, принимает сигналы выше 0.7VDD, т.е. от 3.5В. Еспшка же питается от 3.3В, соответственно столько и выдаёт в качестве единицы. Из-за этого бывают сбои в данных, выглядящие как случайные цветные вспышки части диодов. Может зависеть от гирлянды, у меня было так, с одной работает, с другой — подглючивает. Идеальный вариант — использовать преобразователь уровней (level shifter). Его можно сделать из куска ленты в один светодиод и обычного диода, hackaday.com/2017/01/20/cheating-at-5v-ws2812-control-to-use-a-3-3v-data-line/ Я же решаю проблему проще. Для большой звезды нужен блок питания 5В и хотя бы 3А (2А точно не хватает на некоторых эффектах). Я использую 5В 5А, и на нём есть подстройка напряжения. Достаточно снизить до ~4.8В и глюки пропадают. На яркости это визуально никак не сказывается.

Прикинем бюджет для большой снежинки:

122+122+75 = 219р — алюминиевая полоса

$10.52 — лента, первый лот, что попался (5M 30 IP30). https://aliexpress.com/item/item/4000875413944.html

3D печать, около 60 грамм. Ну т.е. около 50р за сам пластик.

Модуль NodeMCU — около $2 https://aliexpress.com/item/item/32656401198.html

Провода, блок питания — лучше найти что-то в хозяйстве. Можно старый компьютерный БП использовать или мощную зарядку для мобил. У меня питается от Mean Well RS-25-5, 5В 5А, просто он у меня был. Цена нового 990р в бутике Чип и Дип. На авито б.у. сильно дешевле можно найти. Провод можно из витой пары взять, как вариант. Больше всего, около 5 метров, нужно под линию данных, а там любого сечения хватит, даже самого тонкого. Да и на питание много не надо.

Итого где-то 1200-2200р или US$16-30. Много это или мало — решайте сами. По мне, радость от результата — бесценна. Ах, да, ещё на электричество раскошелиться придётся. Посмотрим, что там умная розетка нам говорит:

Новогодняя снежинка на ws2812 "Snowflake"

В среднем около 15 ватт. Треть киловаттчаса в сутки, если не выключать. 2 рубля каждый день. Дорого, я днём выключаю 🙂

Новогодняя снежинка на ws2812 "Snowflake"

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

https://github.com/ACE1046/Snowflake

Когда-то давно, на рубеже тысячелетий, встречался софт, помимо распространенных freeware и shareware, который назывался cardware. Автор разрешал пользоваться его программой бесплатно, а взамен просил прислать ему открытку. Так вот, если используете что-то из этого проекта или повторите его, как есть, то не поленитесь, скиньте фотку в комментарии. Мне будет приятно.


СМОТРИ ТАКЖЕ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *