Что делать, когда обычные гирлянды надоели, а пора встречать Новый год с детьми? Можно создать эффект снегопада и другие эффекты с помощью адресных светодиодов NeoPixels, добавить ИК-пульт для управления выбором эффектов, их скоростью и яркостью и, при желании, мини-дисплей для отображения текущих параметров. Так мы займем время до праздников и создадим свое устройство для украшения елки и не только елки.


Нам понадобятся микроконтроллер Raspberry Pi Pico (около 4$) или его разновидности на чипе RP2040, простейший ИК-пульт (дешевле 1$ вместе с приемником, батарейкой и белым светодиодом в комплекте) и соединенные последовательно адресные ленты WS2812B (10 светодиодов на метр, напряжение 5V, стоимость около 1$/метр). Также можно подключить миниатюрный I2C или SPI дисплей (1-3$), если таковой найдется под рукой. Код MicroPython реализует 5 разных эффектов, доступных при нажатии кнопок 1 — 5 на ИК пульте, а также обеспечивает управление яркостью гирлянды (кнопками вверх и вниз) и скоростью эффектов (кнопками вперед и назад).



Введение


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


Если следовать спецификациям подключения каждого компонента — получится много избыточных элементов, если не следовать — полученное устройство может работать не стабильно или вовсе сломаться. Мы посмотрим, как сделать стабильно работающую гирлянду с дистанционным управлением из минимума деталей на микроконтроллере RPI Pico, используя особенности его схемотехники.


Материалы и оборудование


В первую очередь, нужно выбрать микроконтроллер, так как именно его возможности определяют и схемотехнику и программу. Raspberry PI Pico — это не просто современный микроконтроллер, пусть и двухядерный, это еще и 8 дополнительных микроконтроллеров в едином корпусе, которые могут работать в реальном времени с периферийными устройствами, не нагружая основной процессор (такая технология названа PIO, Programmable Input/Output). Кроме того, Pico содержит отличный регулятор напряжения для преобразования питающего напряжения 5 V в необходимые микроконтроллеру 3.3 V, который решает все проблемы с нестабильностью основного напряжения, вызыванные изменением потребления тока подключенной светодиодной гирлянды. И более того, Pico поддерживает аппаратные прерывания, так что подключение ИК-приемника не вызывает никаких проблем, поскольку регистрация поступающих с приемника импульсов производится независимо от потока выполнения основного кода.


Поскольку у нас есть под рукой несколько разных основанных на RP2040 плат, мы использовали их все по штуке, из интереса. Все, что нам нужно для проекта, это PIO пин для управления одной гирляндой, GPIO пин для подключения ИК-приемника, 5 V пин для подключения гирлянды непосредственно к USB коннектору и 3.3 V пин подключения ИК-приемника и пины для опционального дисплея — все это доступно на практически любой RP2040 плате.


  • Стандартный Raspberry Pi Pico — самый бюджетный вариант, которого более чем достаточно для проекта. Схема пинов из даташита показана ниже:


    Pico-R3-A4-Pinout



Подключение пинов: лента к пину 15, ИК-приемник 28.


  • LilyGO T-Display RP2040 — включает дисплей 135х240 пикселов на чипе ST7789. Кстати, на этой же плате распаян вайфай чип ESP32, и оба чипа доступны напрямую, если перевернуть USB-C коннектор, при этом доступный для программирования чип индицируется зеленым или синим светодиодом. И это работает — интересный хак, за это девайс и куплен. Вайфай тоже работает (используя AT-команды). Из минусов — чип RP2040 заметно греется даже в бездействии, так что поставить его на устройство с малым энергопотреблением нельзя, а вот для управления мощной светодиодной гирляндой вполне годится.


Подключение пинов: лента к пину 20, ИК-приемник 24, пины управления дисплеем показаны на схеме.


  • Plasma Stick 2040 W — содержит встроенный коннектор для подключения светодиодной ленты и вайфай модуль. Куплен в сезон распродаж со скидкой ради стеклянного черепа. Схема пинов соответствует базовому микроконтроллеру, плюс добавлены кнопка RESET и пара разъемов для подключения светодиодной гирлянды и датчиков:


Подключение пинов: лента к встроенному коннектору для светодиодной ленты (пин 15 или plasma_stick.DAT), ИК-приемник 28 (аналогично стандартному Raspberry Pi Pico).


  • Tiny 2040 — миниатюрная RP2040 платка с 4-мя аналого-цифровыми интерфейсами, 8 PIO и USB-C коннектором. Если прямо на нее напаять ИК-приемник, получается очень миниатюрное устройство. Пинов немного, но все необходимые есть, и даже предлагается один дополнительный аналогово-цифровой вход:


Подключение пинов: лента к пину 26 (A0), ИК-приемник 29 (A3).


Пульт с ИК-приемником HX1838 на стандартные 38KHZ стоит всего лишь 0.8\$, на что стоит обратить внимание — чтобы отсек с батарейкой не выпадал (обычно это заметно прямо на фото товара, когда отсек не полностью входит в корпус). В более дорогих пультах за 5-10\$ разница лишь в том, что производитель предлагает готовые библиотеки для MicroBit и других контроллеров, где все клавиши доступны по их наименованиям, а не по кодам.


Опциональный SPI дисплей размером 135х240 пикселов на чипе ST7789 достаточно распространненный и легко доступный модуль, равно как и на другие разрешения. Указанный дисплей уже встроен в плату LilyGO T-Display RP2040, так что им мы и воспользовались, раз уж он уже есть и подключен.


Светодиодные ленты WS2812B на 5 V имеют несколько разных вариаций, мы выбрали вариант с проводами в прозрачной силиконовой изоляции (и влагозащитой IP67). Порядок цветов светодиодной ленты, обычно RGB (ленты из фирменных магазинов) или BGR (ленты с aliexpress).


MicroPython vs CircuitPython


Выбор языка программирования это, во многом, дело вкуса, и все же есть необходимые требования, которые мы и рассмотрим. Можно писать на достаточно низкоуровневом языке C — это займет больше времени и позволит воспользоваться всеми ресурсами микроконтроллера. Или выбрать скриптовый язык, писать на котором проще и быстрее, но часть возможностей микроконтроллера окажется недоступна. Поскольку для RPI Pico больше всего примеров на Python, то мы будем выбирать между популярными диалектами Python для микроконтроллеров. Их два: MicroPython и CircuitPython, и в обоих практически недоступно второе ядро микроконтроллера. Также CircuitPython, в отличие от MicroPython, не поддерживает прерывания — что создает проблемы при работе с ИК-приемником (часть сигналов теряется, когда микроконтроллер обрабатывает код управления гирляндой, к примеру). Значит, оптимальным выбором для нашей задачи является именно MicroPython, а необходимые нам модули можно установить отдельно или же воспользоваться прошивкой MicroPython Pimoroni Libraries, в которой многие уже включены (кроме модуля IR приемника). Эта прошивка доступна как на гитхабе Pimoroni Pico Libraries and Examples, так и в MicroPython редакторе Thonny для установки "в один клик".


RPI Pico позволяет сделать управление светодиодной лентой с множеством светодиодов, используя лишь один PIO, соответствующий MicroPython модуль доступен на гитхабе: Pimoroni Plasma Для управления ИК-приемником (и передатчиком) доступен модуль MicroPython IR Для дисплеев доступно множество библиотек, для единообразия и удобства мы воспользуемся модулем PicoGraphics от Pimoroni, который поддерживает нужный дисплей на чипе ST7789 и входит в состав MicroPython Pimoroni Libraries.


Устройство NeoPixels WS2812B


Светодиодная лента NeoPixels представляет собой набор адресных светодиодов, где каждый элемент состоит из адресуемого контроллера и трех светодиодов (красный, зеленый, синий) с управляемой яркостью (управляющий байт из 8 битов вмещает 2^8 = 256 уровней):



Схема светодиодной ленты, см. Driving WS2812b with STM32 and PWM strange behavior Заметим, что для каждого светодиода в ленте предусмотрен свой фильтрующий конденсатор, расположенный максимально близко к светодиоду. Подробнее об устройстве ленты можно прочитать по ссылке Умные светодиоды WS2812B NeoPixels


Благодаря своему устройству, лента имеет неожиданно большую максимальную мощность. При всех включенных светодиодах излучается белый свет и потребление для выбранной ленты (WS2812 4020 IC) указано как 0.1 W/LED, что дает 35 W для 35 метров ленты из 350 светодиодов. Для любого одного цвета на максимальной яркости потребление примерно втрое меньше и составляет около 12 W. Ток по спецификации равен 12W/5V = 2.4 A, а с учетом падения напряжения на гирлянде примерно 2 A. Соответственно, при питающем напряжении 5 V ток потребления составляет около 2 A. Таким образом, для питания гирлянды достаточно блока питания или power bank на 2 A.


Для стандартной управляющей частоты 800 kHz время переключения одного светодиода (передачи трех байтов — по одному байту для каждого цвета) составляет 24/800000 = 30 мкс, так что при визуально комфортной частоте обновления 60 Hz можно управлять лентой не более чем из 500 светодиодов, а при частоте 30 Hz — 1000. Имея 8 PIO выходов, можно подключить тысячи светодиодов, что более чем достаточно для домашних проектов.https://electronics.stackexchange.com/questions/390743/driving-ws2812b-with-stm32-and-pwm-strange-behavior)


Питающее напряжение для WS2812B находится в диапазоне 3.3 — 5V, соответственно, требуют логический уровень управляющего сигнала от 3 — 5 V. Заметим, что старые ленты WS2812 требуют питающего напряжения 5 V и не срабатывают от логического уровня 3 V, так что для них и только для них необходим конвертор уровня.


Эффекты для гирлянды


Светодиодные ленты NeoPixels позволяют создавать замечательные эффекты бегущего огня или падающих снежинок и многие такие эффекты уже реализованы и доступны в виде примеров на MicroPython. Мы выбрали наборы эффектов из гитхаб репозитория Plasma Stick MicroPython Examples, предлагаемые в дополнение к продукту Wireless Plasma Kit (Pico W Aboard) — на странице продукта доступны схема, ссылка на примеры и видео получаемых эффектов. Эти примеры работают и на базовом RPI Pico, нужно лишь правильно указать пин, к которому подключена гирлянда. Для большего интереса мы добавили возможность управления яркостью светодиодов кнопками вверх-вниз на ИК пульте, скоростью эффектов кнопками влево-вправо, а также переключения различных программ числовыми кнопками.


Используя встроенные аналогово-цифровые преобразователи RPI Pico, можно замерить потребляемый гирляндой ток, пример доступен на гитхабе радуга и сенсор тока Эту информацию тоже можно отобразить на дисплее, но для гирлянды на елке мы не стали этого делать.


Создание эффекта радуги


Существует много способов задать любой нужный цвет — например, в графических редакторах часто используют RGB представление цвета. В то же время, цветные струйные принтеры используют чернила 4-х цветов CMYK для печати любого цвета — поскольку передача черного цвета смешиванием трех базовых работает хорошо только в теории, а на практике не очень. Есть и другие подходы, применимые для других задач. Для эффекта радуги, когда мы хотим создать непрерывную циклическую смену цветов, подойдет вариант кодирования HSV (hue, saturation, value — цвет, насыщенность, яркость):



Wikipedia — HSL and HSV


Такой метод позволяет контролировать яркость отдельно от значения цвета, так что можно легко изменять яркость всех светодиодов разом, независимо от их цветов. Кроме того, цвета циклические с периодом 360 градусов, так что значения 0 или 360 или 720 и так далее равнозначны и обозначают красный цвет. Для эффекта радуги требуется распределить цвета равномерно в кольце 0-360 градусов и далее плавно сдвигать их (60 раз в секунду) по кольцу. Аналогичный код в цветовой схеме RGB будет гораздо более сложным.


Работа с ИК-приемником


ИК-приемник способен принимать сигналы как комплектного, так и всех прочих ИК-передатчиков, таких, как пульты от телевизора или кондиционера. Во избежание путаницы, в дополнение к коду нажатой клавиши каждый пульт отправляет еще и свой идентификатор. Это позволяет как игнорировать сигналы от "чужого" пульта, так и настроить отдельные реакции на них — к примеру, можно включать и выключать гирлянду одновременно со включением и выключением телевизора,… или наоборот, по желанию. Каждое нажатие клавиши на ИК-пульте приводит к передаче примерно 100 сигналов с заданным интервалом (зависит от рабочей частоты пульта). Из-за различных помех и отражений сигнала эти интервалы и передаваемые сигнальные последовательности искажаются, и задача при емника состоит в том, чтобы принять их "как есть" и передать программному декодеру. При декодировании сигналы сравниваются с эталонными, и если они достаточно похожи — декодер распознает сигнал как нажатие определенной кнопки, а иначе сообщает об ошибке декодирования. Повторные сигналы декодер идентифицирует отдельно, что позволяет просто их игнорировать или сделать ускоренное изменение параметров — нажав, к примеру, стрелку вверх на пульте, мы можем быстро изменять значение яркости гирлянды. Именно последний вариант реализован в предлагаемой программе.


Сборка устройства


Если прямо следовать спецификациям, то нам потребуются достаточно емкий конденсатор на входе гирлянды, резистор, подключенный между пином микроконтроллера и сигнальным входом гирлянды, а также конвертор логического уровня микроконтроллера 3.3 V в логический уровень 5 V гирлянды. На самом деле, все это не нужно, рассмотрим, почему.


Конденсатор для компенсации помех в питающей сети, подключенный между пинами питания гирлянды, позволяет снизить уровень помех в цепи питания. Есть некоторая "городская легенда", что это способствует стабильности работы самой гирлянды, но это не так, поскольку конденсатор устанавливается максимально близко к микроконтроллеру и далеко от светодиодов. Для работы RPI Pico с качественным регулятором питания пользы от указанного конденсатора нет никакой, в то время как для других микроконтроллеров этот конденсатор может быть необходим.


Также часто рекомендуется резистор между выходом микроконтроллера и входом гирлянды. Номинал этого резистора зависит от длины и толщины сигнального провода от микроконтроллера до гирлянды, для коротких толстых проводов (мало помех, малое падение напряжение на проводах) можно поставить резистор на 2 kohm, а для тонких длинных проводов (много помех, большое падение напряжения на проводах) около 200 ohm. В теории, этот резистор позволяет снизить выходной ток микроконтроллера и снизить энергопотребление схемы — но для мощной гирлянды это не даст никакого заметного эффекта. Еще резистор контролирует логический уровень на выходе — при слишком большом токе падение напряжения внутри микроконтроллера может оказаться неприемлимо большим и выходное напряжение станет недостаточным для надежного управления внешними устройствами. Также такой резистор обеспечивает стабильность работы микроконтролллеров без контроля выходного тока каждого пина по отдельности — слишком большой ток на одном из пинов снижает ток на всех остальных, приводя к нестабильности работы подключенных устройств. Все это важно, но микроконтролллер RPI Pico ограничивает выходной ток каждого пина значением 30 mA, что соответствует значению дополнительного резистора около 100 ohm. И более того, можно программно ограничить ток, см. "Output drive strength can be set to 2mA, 4mA, 8mA or 12mA" (в PDF мануале по RPI это описано более подробно, зато на онлайн мануал проще дать прямую ссылку), код на MicroPython для установки максимального тока 12 mA пина GPIO28 выглядит так:


import machine
machine.mem32[0x4001c074]=0x42

Такой ток соответствует значению внешнего резистора около 250 ohm, аналогично можно задать ток, соответствующий резисторам почти до 2 kohm. Таким образом, установка внешнего резистора совершенно бесполезна, если правильно воспользоваться возможностями микроконтроллера. Для нашей задачи стандартное ограничение выходного тока пина 30 mA вполне разумно — так гирлянда будет работать стабильно даже при длинном сигнальном проводе от микроконтроллера.


Для светодиодов WS2812B конвертор логических уровней не нужен, поскольку от уровня 3 V лента надежно срабатывает по спецификации, а ограничение выходного тока микроконтроллера гарантирует наличие такого уровня на выходе, как показано выше. Для старых светодиодов WS2812 однонаправленный конвертор от микроконтроллера к светодиодной ленте можно реализовать на одном транзисторе и одном резисторе, см, схему двунаправленного конвертора логических уровней, где второй резистор (правый на схеме) может быть исключен для превращения двунаправленного конвертора в однонаправленный (поскольку светодиоды не передают сигналы микроконтроллеру), а транзистор мы используем более распространенный 2N2700.


image

SparkFun Logic Level Converter — Bi-Directional — Schematic


Остается рассмотреть подключение ИК-приемника. Как мы помним, ранее мы отказались от использование помехогасящего конденсатора на входе гирлянды, так что шина питания 5 V микроконтроллера не пригодна для подключения датчиков. К счастью, RPI Pico имеет вывод внутреннего стабилизированного напряжения 3.3 V, мощность которого более чем достаточно для ИК приемника. Поскольку приемник не требует большого тока питания и не создает помех по питанию, совершенно допустимо его подключение к этому выводу микроконтроллера. Выбранный модуль HX1838 работает стабильно при напряжениях питания 2.7 — 5.5 V, как нам и требуется.


Опциональный дисплей SPI подключается к SPI входам микроконтроллера (см. схему пинов выше) и внутреннему стабилизированному регулятору напряжения 3.3 V (аналогично ИК приемнику).


Резюмируя, сборка устройства сводится к присоединению ИК-приемника, светодиодной ленты и, опционально, дисплея к пинам микроконтроллера напрямую или через соединительные провода, никакие дополнительные детали нам не нужны. Для сборки мы используем пайку, как более котоустойчивый метод, также можно собрать на беспаечной макетной плате или просто на коннекторах.



На фото выше показаны все четыре собранных устройствах на разных микроконтроллерах на чипе RP2040. Можно заметить наличие логического конвертора уровней на одном транзисторе и резисторе на самой большой плате (в центре сверху) — у детей была идея разместить один контроллер далеко от гирлянды (подсоединив к гирлянде сигнальный провод и "землю" и обеспечив для гирлянды и контроллера отдельные источники питания), но в итоге это не потребовалось.


И пара слов про падение питающего напряжения на светодиодных лентах. Ленты оснащены разъемами с обоих концов, так что можно их соединять последовательно или подавать питание с двух сторон. На двухметровую елку нам потребовалось 35 метров гирлянды (можно и больше, 40 — 50 метров вполне уместится), а измеренное напряжение на выходе гирлянды равно 3.7 V (вместо 5 V на входе). При этом, первые 20 — 25 метров гирлянды имеют визуально равную яркость, а далее яркость снижается и светодиоды выглядят заметно тусклее. При подаче питающего напряжения еще и на выход нашей гирлянды ее яркость становится равномерной. Таким образом, для гирлянды длиной от 20 и до 50 метров лучше предусмотреть подачу питающего напряжения с двух сторон. Мы используем пауэрбанк с двумя USB выходами, так что можно легко отключить подачу питающего напряжения к окончанию светодиодной ленты и продемонстрировать детям эффект падения напряжения.


Программирование устройства


Простой способ загрузки прошивки MicroPython Pimoroni Libraries на устройство и записи файлов программы предоставляет редактор Thonny, по ссылке доступны описания, как его установить и использовать на разных операционных системах (есть различия). Установка прошивки Raspberry Pi Pico начинается с его подключения к компьютеру при нажатой кнопке "BOOTSEL" на плате и выбора нужной прошивки в редакторе:



В списке также присутствует прошивка для платы Tiny 2040, но она работает очень нестабильно, так что пришлось раз пять перепрошить устройство, прежде чем удалось записать на него программу и библиотеку ИК приемника, а после перезагрузки плата перестала опозначаваться и работать. Проблема решилась использованием стандартной прошивки, как показано выше на скриншоте.


Для автозапуска файл программы должен иметь наименование main.py и размещаться в корневом каталоге устройства вместе с папкой lib для библиотеки работы с ИК приемником:



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


Порядок цветов ленты задается константой:


# led strip colors order
#COLOR = plasma.COLOR_ORDER_RGB ;# Pimoroni LED strip and cube
COLOR = plasma.COLOR_ORDER_BGR ;# aliexpress LES strips

В случае, когда порядок цветов неизвестен, его легко можно проверить самостоятельно с помощью нижеследующего кода, перебирая все возможные варианты plasma.COLORORDER… или используя числовые коды от 0 до 5 включительно:


import plasma
led_strip = plasma.WS2812(350, 0, 0, 20, color_order=plasma.COLOR_ORDER_BGR)
led_strip.start()
led_strip.set_hsv(0, 0, 1.0, 1) ;# red
led_strip.set_rgb(0, 255, 0, 0) ;# red
led_strip.set_rgb(0, 0, 255, 0) ;# green
led_strip.set_rgb(0, 0, 0, 255) ;# blue

При правильно выбранном "color_order" цвет первого пиксела ленты должен соответствовать ожидаемым.


Количество светодиодов в ленте:


# Set how many LEDs you have
NUM_LEDS = 350

Пин подключения светодиодной ленты:


# LED strip pin
PIN_LED = 20 ;# LilyGO T-Display RP2040
#PIN_LED = 26 ;# Tiny 2040
#PIN_LED = 15 ;# plasma_stick (plasma_stick.DAT)

Пин подключения ИК-приемника:


# IR sensor pin
IR_PIN = 24 ;# LilyGO T-Display RP2040
#IR_PIN = 29 ;# Tiny 2040
#IR_PIN = 28 ;# plasma_stick

Код проекта смотрите по ссылке код MicroPython


Результаты


На видео показано, как выглядит гирлянда с эффектом снежинок:



И c эффектом радуги:



Заключение


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


Также смотрите


Комментарии (27)


  1. KirovA
    29.12.2022 09:19

    • Дети..............................check

    • Схемотехника..............check

    • Программирование.....check

    Где сто пятьдесят лайков?


    1. OldFashionedEngineer
      29.12.2022 09:39
      +3

      Пруфы в чек-листе отсутствуют.


  1. c_kotik
    29.12.2022 09:32
    +4

    Где сама гирлянда, Лебовски? Такие темы обязаны быть наполненными картинками, а не текстом.


    1. N-Cube Автор
      29.12.2022 09:42

      Так вот же она - на первой картинке в статье :) А вот на елке поменьше:

      Увы, я не умею сделать серию фотографий, выдержанных в едином стиле для разных елок в разных комнатах.


      1. c_kotik
        29.12.2022 09:46

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

        Да и роликов пару штук залить с примером работы.


        1. N-Cube Автор
          29.12.2022 09:55
          +2

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

          В режиме снежинок эффект динамический, потому интересное фото сделать не удалось, если только используя эпловские "живые" фото, но они в вебе не поддерживаются.


        1. N-Cube Автор
          29.12.2022 10:07
          +4

          Вот если лайвфото в gif превратить:

          Палитра по умолчанию, так что заметны артефакты. Не уверен, возможно ли сделать эти gif по качеству на уровне статического фото из статьи .


      1. OldFashionedEngineer
        29.12.2022 10:11
        +1

        Надо оперативно фото и видео материалы в статью добавить!


        1. N-Cube Автор
          29.12.2022 10:17

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


        1. N-Cube Автор
          29.12.2022 13:33

          Видео добавил :)


      1. abbradon
        29.12.2022 13:44

        А мне пришлось ремонт на кухне делать. Все были включены)))). И жена, и дети, и даже соседка Алексеевна (принимала доставку). Шпатлевка, розетки, светильники, заливка полов, укладка покрытия и т.д. и т.п.
        Но у вас прикольно получилось, может повторю на следующий нг (хотя врядли)))


        1. N-Cube Автор
          29.12.2022 13:45

          Неужели предпочтете повторить ремонт?:)


  1. vviz
    29.12.2022 13:58
    +1

    Мощно.
    Даа, катушка с припоем впечетляет.
    А вот что это такое блестящее под паяльником стоит?


    1. N-Cube Автор
      29.12.2022 14:27

      Сын паяет регулярно, так что припой расходуется и еще как, а выгоднее всего покупать как минимум такими катушками - японский припой с 3% серебра оказывается по цене близок к обычному бессвинцовому. Под паяльником - медная стружка для чистки жала и еще баночка рефрешера для жала (вот именно этот фантастически эффективно работает, а стоит вполне доступно на японском амазоне).


      1. Didimus
        29.12.2022 15:52

        В советский период пос61 чуть ли не ломами был доступен, а нынче по цене чуть ли не как золото


        1. N-Cube Автор
          29.12.2022 16:37

          У меня оловянно-свинцовый припой вообще в брусьях был… надо было сначала отпилить кусочек, а потом от него кусачками отщипывать понемножку:) Современный припой диаметром 0.4-0.6мм, да еще с жилкой качественного флюса внутри совсем другое дело, конечно. Для дома да с детьми бессвинцовые припои - однозначный выбор, а добавление 3% серебра на цену заметно не влияет… пробовали и 0.3% серебра, так он еще и дороже был, а разницы от такого количества серебра и не заметно (все зависит от того, где покупать, у нас в Таиланде из Японии выгоднее всего - фирменные припои и прочее как-то возят беспошлинно).


          1. Didimus
            29.12.2022 20:57

            Эти бруски использовали для пайки крыш и тому подобного. Киловаттными паяльниками, газовыми лампами


            1. N-Cube Автор
              29.12.2022 21:04

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


              1. Didimus
                30.12.2022 12:24

                А еще можно было почувствовать, как в свое время рубли топором рубили


  1. acheck
    29.12.2022 17:32

    Гораздо проще сделать гирлянду для елки и прочих целей на контроллере ESP8266 или ESP32 и этом софте WLED - https://kno.wled.ge
    Прошивка заливается прямо из браузера по USB, оттуда же контроллер прописывается в вашей сетке WIFI.
    На сегодня 117 эффектов и 70 палитр. Управляется через встроенный веб-сайт и/или мобильное приложение.
    Есть возможность логически объединять несколько гирлянд в единое целое, синхронизировать работу нескольких контроллеров в одной сети и очень много других фич.
    Если лениво паять самому в сети есть уже готовые коробки - для сложных инсталляций - с защитой от КЗ и контролем потребления по току.


    1. N-Cube Автор
      29.12.2022 17:52

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

      Для синхронизации всех ламп в доме и всяких эффектов на них philips hue отлично справляется каждый день, а на праздники выбираем в их приложении, скажем, динамическую тему «хеллоуин» для первого этажа и все синхронизируется и светит разными цветами :) По комфорту для глаз несравнимо с китайскими гирляндами, так что ваш вариант разворачивать для постоянного использования и на весь дом так себе затея, на мой взгляд. Синхронизировать же именно гирлянду на первом этаже с гирляндами в комнатах детей вовсе не нужно - в том и идея, чтобы каждый мог себе настроить так, как захочется. Впрочем, контроллеры пико есть и с вайфай модулем - так что технически синхронизацию добавить несложно, если вам надо.

      Кстати, прошивка по USB заливается только из Google Chrome, потому что web usb расширение совершенно не секьюрное и больше никем и не поддерживается, насколько я знаю. Вообще сейчас «самый писк» обновлять код с гитхаба, что несложно сделать.


    1. N-Cube Автор
      29.12.2022 19:12
      +1

      Глянул частоту обновления для WLED - 40 раз в секунду и на форумах пишут, увеличить не получается. Так что предложенное на RPI Pico решение обеспечивает более плавную анимацию - и да, это важно, эффект снежинки выглядит не так при частоте обновления 30 раз в секунду. Ну и гирлянд к Pico можно подключить несравнимо больше, если захочется, сохраняя частоту обновления (потому что 8 независимых PIO машин состояний есть) - а WLED при большом количестве светодиодов еще более урезает частоту обновления. Получается, вы зачем-то рекомендуете решение, которое по техническим характеристикам и визуальному комфорту полностью проигрывает, не говоря уж о возможностях кастомизации.


      1. FlyingDutchman
        30.12.2022 09:08
        +1

        Наверное, потому что проще и дешевле решение? Плюс подобными ESP решениями забит весь интернет. Тем интереснее авторская статья.


        1. N-Cube Автор
          30.12.2022 09:30
          +1

          Наверное, это вопрос привычки, потому что разумных аргументов в пользу ESP контроллеров вообще не видно. Схемотехника и так проще некуда получается, всех дел подпаять гирлянду и ИК-приемник к выбранному микроконтроллеру (будь то RPI Pico или ESP) не нужно ни одной дополнительной детали. Насчет дешевле тоже вряд ли - модули esp32 с усб коннектором стоят от тех же 4$, как базовый Pico. Притом программу на MicroPython можно переносить между разными типами микроконтроллеров, разница только в используемых пинах и подключении гирлянды. Не говоря уж о том, что на большую елку нужно примерно на 40 $ светодиодных лент и микроконтроллер за 4 - так что копеечная разница примерно в полдоллара (это если в локальных магазинах смотреть, а в Черную пятницу Pico я и вовсе за 3 $ брал) в стоимости гирлянды роли не играет. В итоге получается, при идентичных трудозатратах и стоимости решения Pico обеспечивает намного более плавную анимацию и визуально приятные эффекты, а мы ради эффектов все это и собирали :)


  1. acheck
    30.12.2022 11:01
    +1

    Мы говорим о разном - вы о мозгах контроллера, частоте обновления и пр, а я о количестве эффектов из коробки и конструктивных вопросах...
    Neopixel ленты ведь используют не только для елки, а еще и для фасадного светового оформления - особенно после массового появления так называемых "неоновых лент" - типа такой https://www.aliexpress.com/item/1005002607602811.html
    Ну и для многосегментых уличных инсталляций мало кто пользует "самопаяные контроллеры" - а что-то типа QuinLED (https://quinled.info/)
    Опят же на улице нужны совсем другие эффекты, чем в "Plasma Stick MicroPython Examples" - там нужны не "нежные переливы", для которых частота мерцания может иметь значение, а сложные эффекты для протяженных лент. Опять же на улице возникают свои проблемы - часто вы не можете все элементы соединить в одну цепь - не хватит питания, да и сигнальная цепь "садится" - так что приходится запитывать разные сегменты от отдельных контроллеров, а тут и возникают вопросы синхронизации контроллеров и внешним управлением системой контроллеров.
    Так что большое спасибо за ваш пост - вы очень детально расписали процесс для "чайника", что явно поспособствует популяризации NeoPixel и контроллеров с открытым софтом.
    Я просто хотел сказать и о других применениях и проблемах.


    1. N-Cube Автор
      30.12.2022 11:41
      +1

      Тематика статьи все же DIY для дома, где качество эффектов (частота обновления) важно. Да и насчет решений на ESP и синхронизации все не так просто - при интенсивном использовании WIFI чип становится тратит заметные ресурсы на сетевое взаимодействие, почитайте, к примеру, https://esp8266.ru/forum/threads/esp8266-i-apparatnyj-tajmer-hw_timer.5369/ RPI Pico W таких проблем не имеет вовсе, так как использует отдельный WIFI чип. Так что даже разрабатывая сегодня промышленное решение - я выберу современный RPI Pico W (или хотя бы PR2040 чип плюс esp32 в качестве сетевого).

      А что у вас за проблемы такие с сигналом? Сигнал ретранслируется каждым neopixel, его уровень фиксированный что после первого светодиода, что после тысячного. Нужна только подача питания для каждого сегмента для больших сборок - как в статье показано.


  1. sleepy_warrior
    30.12.2022 12:48

    RGB елка , это мы покупаем