Хотя сейчас только октябрь, пора прокачать наши окна и балконы! Будем делать уникальную гирлянду со спецэффектами - такой точно ни у кого не будет. И начать стоит прямо сейчас: пока вы закажете компоненты и всё соберете, тут и праздники наступят. А клеить светодиоды на балконе точно приятнее, пока морозы еще не пришли.
Гирлянда делается из адресных RGB-светодиодов. Это означает, что можно менять цвет каждого отдельного пикселя в этой гирлянде и сделать 2D-экран на окно. А с телефона будем этой гирляндой управлять. По себестоимости гирлянда получается недорогая, и точно дешевле аналогичной магазинной. Главное, что всё ПО бесплатное, открытое и легко модифицируется. Использовать будем готовую прошивку от проекта WLED как наиболее простую в установке.
Этот текст - расшифровка и дополнение видео с канала IT Школы Samsung:
Видео вышло в рамках видеокурса “Galaxy Upcycling - новая жизнь старого смартфона”. Мы там уже сделали 3D-голограмму, проектор (и написали об этом статью на Хабр), микроскоп, часы, спектрометр (и про него тоже есть статья) и кнопочную панель управления, и продолжаем снимать новые видео.
Для нашей гирлянды паять и программировать не придется, берем всё максимально готовое. От вас потребуется знание основ электроники, то есть вы должны знать, что такое резистор, конденсатор, напряжение, уметь не перепутать полярность, при необходимости воспользоваться мультиметром - словом, не сложнее школьной физики. Руководство достаточно подробное, и им смогут воспользоваться даже те, кто никогда в жизни не работал с микроконтроллером.
Что понадобится
Адресная светодиодная лента.
Плата микроконтроллера ESP8266 (я беру NodeMCU).
Соединительные провода.
Клеммники WAGO.
Блок питания. Рекомендую 2 ампера или больше.
К нему переходник на винтовой клеммник.
Рулетка.
Скотч.
Логика выбора комплектующих
Что такое адресный светодиод? Их еще называют NeoPixel, такое у них маркетинговое название. Это RGB-светодиод, цвет которого можно назначать программно.
Гирлянда из таких светодиодов - это по сути пиксельный экран, на нем можно рисовать любые картинки, в отличие от традиционных RGB-лент, где все светодиоды светятся одинаковым цветом.
Поэтому, выбирая себе гирлянду, ищите именно со словом “Адресная”.
Какую покупать? Я рекомендую ту, где светодиоды стоят достаточно далеко друг от друга, например на расстоянии 10 сантиметров. Это позволит сделать заметную пиксельную сетку на окне и при этом не разориться. У каждого светодиода в составе микросхема, которая определяет протокол взаимодействия с ним. Я купила ленту, состоящую из светодиодов с микросхемой WS2812B. Но у вас могут быть и другие, со своими особенностями.
Программировать мы ничего не будем, а воспользуемся готовой программой. Что приятно, она открытая, часто обновляется и лежит в свободном доступе на GitHub. Это проект WLED. Из сильных сторон проекта можно отметить активное международное сообщество, наличие веб- и мобильного интерфейса, легкость установки. Принцип простой: мы берем типовое железо на базе ESP, потом ставим на него готовую прошивку. Её даже не нужно компилировать и устанавливать себе на компьютер среду разработки
Что такое микроконтроллер? Это маленький компьютер, предназначенный для решения малого количества несложных задач, вычислительно слабый, но очень дешевый.
Что такое микроконтроллеры ESP? Это чипы китайского производства, которые появились на рынке 10 лет назад и моментально обрели славу “народного WiFi”. Они поставляются сразу с возможностью беспроводной связи на борту, и стоят дешево, отсюда их популярность.
Но ESP сам по себе это просто микроконтроллерный модуль. Его в чистом виде неудобно подключать к чему бы то ни было, как минимум понадобились бы навыки пайки. Поэтому нам понадобится готовая отладочная плата микроконтроллера. Их существует много разновидностей.
Как минимум, нам нужен USB-разъем для загрузки прошивки, и наличие выводов для подключения периферии. Исходя из этого, я выбрала известную и недорогую плату NodeMCU, она сделана на основе ESP8266 и к ней легко подключиться кабелем MicroUSB. Ее без проблем можно купить в России.
Подключаем маленькую матрицу 4х4
Как начать тестировать светодиодную ленту? Скачиваем готовую прошивку WLED, которую загрузим в нашу плату. Если вы работаете под Windows, для работы с платой вам могут понадобиться драйверы для микросхемы CH340 для коммуникации по USB, а если у вас операционная система Linux, то там они уже включены в ядро и делать ничего не нужно.
Как загрузить прошивку в плату: самое простое - использовать веб-установщик: https://install.wled.me/v2.htm
Через веб-интерфейс можно загрузить программу в вашу плату прямо из браузера! Тут же появится окошко, в котором необходимо ввести ваш логин и пароль от WiFi. После чего вы получите радостное сообщение о том, что устройство подключено.
Оно получит от вашего роутера IP-адрес, высветит его в интерфейсе загрузки, и вы можете зайти теперь в браузере на страничку устройства. У меня адрес получился http://192.168.0.20/, у вас будет похожий адрес. Теперь вы можете подключиться к плате и со смартфона, используя приложение WLED! Оно бесплатно скачивается из Google Play.
Давайте запустим эту прошивку и проверим, как она работает с любым адресным светодиодом. Не подключайте сразу гирлянду, попробуйте на чем-то малом. Для примера, я подключу вот такой модуль, матрицу 4 на 4, но здесь можно обойтись любым светодиодом из списка совместимых на сайте WLED.
Здесь светодиоды, управляемые по протоколу SK6812. Три контакта: DI - “Data in”, то есть ввод данных, 5V и GND. DI подключаем к выводу микроконтроллера, откуда пойдут данные, 5V - написано 5 вольт, но мы можем взять и 3.3В, ведь в документации модуля указано: рабочее питание - от 3.3В до 5В. Все это уточняется на сайте производителя.
Согласно официальному руководству WLED, наш светодиод подключается к выводу GPIO2 микроконтроллера. На большинстве плат это соответствует разъёму с маркировкой D4.
На моей плате это также D4. Если у вас другая плата, не NodeMCU, то узнайте, куда подведен этот вывод, используя документацию платы.
Мы видим, что нам улыбнулась удача: GPIO2 (он же D4), 3,3V и GND расположились рядом, и мы можем одним тройным проводом подключить эту матрицу.
Смотрим спецэффекты в мобильном приложении
В мобильном приложении можно менять цвет матрицы и навешивать анимированные спецэффекты.
Подключаем большую гирлянду
Итак, проверили, что программная часть работает. Нам осталось собрать большую гирлянду. Посмотрим, как она выглядит. С одной стороны у нее пять проводов. Из них три это те, о которых мы уже знаем: плюс, минус и сигнал. Остальные два провода дублируют плюс и минус - это чтобы можно было делать дополнительное питание гирлянды.
Вопрос, как посчитать силу тока? С напряжением всё ясно, у нас тут 5 вольт. А что делать с силой тока? В описании гирлянды сказано, что ее мощность - 2,5 Вт на метр. У меня 3 гирлянды, итого у меня 7,5 ватт суммарная мощность. Мощность равняется напряжение умножить на силу тока:
Если напряжение 5 вольт, то очевидно, что сила тока должна быть более 1,5 ампера. Это немного. Такой блок питания легко приобрести. Я бы взяла с запасом, на 2 ампера как минимум.
Оканчивается гирлянда соединительным разъемом, через который можно подключить еще одну. То есть их можно объединять последовательно и делать супер-длинную гирлянду.
Как подключать? Смотрим схему на сайте WLED. Вообще там две схемы: одна для 5 вольт, вторая для 12 вольт. Нам нужна первая, поскольку наша гирлянда рассчитана именно на это напряжение, поэтому смотрим на нее:
Логическую часть мы уже собрали в предыдущем разделе, поэтому переставляем провод со светодиодной матрицы на гирлянду. Осталось разобраться с питанием. Плата NodeMCU работает на 3.3 вольта, а у нас блок питания на 5 вольт. Но это не проблема, потому что в этой плате есть встроенный преобразователь из 5 вольт в 3.3. Чтобы он работал, подать плюс питания нужно на вывод, подписанный как VIN. Отсюда с платы будет идти выход на гирлянду. Подаем питание на светодиодную ленту, на нее передаем сигнал от ESP, с вывода D4. Земли, как положено, объединяем. Всё!
Клеим на окно
Я измерила окно, чтобы знать, сколько у меня места. Получилось 100 сантиметров на 150. Как нам покрыть эту площадь гирляндой, которая длиной 5 метров, и светодиоды расположены через промежутки 10 сантиметров? Ответ очевиден! Мы берем три гирлянды. И это будет в точности 150 светодиодов. Получится матрица 10 на 15 пикселей.
Теперь, как все это клеить на окно? Я предлагаю на обычный скотч. Тонких полосок будет достаточно, чтобы держать гирлянду. А оттереть следы скотча потом легко спиртом.
Мы решили смонтировать гирлянду на окно в нашем офисе. Мне помогли с монтажом мои коллеги Андрей и Алексей. Советую вам тоже делать это с кем-то вместе, у вас всё получится гораздо быстрее и веселее.
Демо спецэффектов
Работа в программе JINX: координатная сетка
Теперь вы посмотрите на это и спросите: а где же продвинутые эффекты - бегущая строка, тетрис, фильм “Матрица”, вообще где вся классная 2D-графика? И вы будете абсолютно правы. WLED это очень простая программа, она не учитывает адреса светодиодов, и накладывает спецэффекты так, что считает вашу ленту просто длинной полоской. Она одномерная. Как нам перейти в двухмерное пространство?
Есть интересная бесплатная программа под названием Jinx! Она как раз работает с двумерной матрицей. Там можно сделать бегущий текст и даже транслировать ваш экран на гирлянде! Если вы когда-нибудь видели, как запускают Doom на елочной гирлянде, теперь вы знаете, как это сделать.
Здесь понадобится настройка. Ведь программа не знает, как именно мы наклеили гирлянду на окно. Нажимаем Setup - Matrix Options. Здесь указываем размерность матрицы: у меня ширина 10 и высота 15. Дальше выбираем пункт Output Patch, и размечаем координатную сетку. Полезна опция FastPatch, где есть подборка наиболее популярных разметок. Дальше нужно указать размерность, порядок пикселей (у меня это RGB, и стартовый канал 0) и стартовый угол. У меня параметры получились такие: разметка Snakeline (“змейкой”), нижний правый угол - начало. И нажимаем Start Output.
Здесь куча крутых эффектов - Матрица, Радар, Анализатор спектра. Каждый эффект можно настраивать, например, Autocolor означает, что цвет эффекта будет плавно меняться. Если я хочу эффект “как в Матрице”, то я фиксирую зеленый цвет, и он не меняется. Можно менять скорость эффекта. Можно даже взять картинку - пиксель-арт - и она спроецируется. Она автоматически уменьшится под размерность матрицы. Можно сделать простейший эквалайзер для аудио. К примеру, Audio VU Meter будет соответствовать песне, которая у вас сейчас играет. А самые интригующие эффекты - AVI Player, Capture Screen, Capture Webcam.
Как улучшить вашу гирлянду?
С точки зрения электроники, здесь бы еще добавить, как минимум, резистор и конденсатор. Они добавят отказоустойчивости и стабильности свечения вашей гирлянде. Да, всё будет работать и без них, но если вы хотите ее использовать у себя дома регулярно, то обязательно поставьте, как здесь на схеме, резистор на 62 ома и конденсатор на 1000 микрофарад.
По-серьезному, здесь не обойтись без преобразователя логических уровней. Того самого, который на схеме называется Level Shifter и идет с ремаркой “Best to use but sometimes can omit”. Все дело в том, что ESP8266 на выводах дает от 0 до 3.3 вольт, а гирлянда управляется от 0 до 5 вольт. Наша удача, что 3,3 вольта еле-еле “влезают” в границы высокого логического уровня. Поэтому если у вас провод до гирлянды от контроллера длиннее 10 сантиметров, возможны проблемы с сигналами. Такой преобразователь - очень простая и недорогая плата, ее можно купить за 150 рублей.
Что еще можно сделать с этой гирляндой? Попробуйте настроить в программе Jinx: бегущую строку, пиксельную графику, игру “Жизнь”, музыкальный эквалайзер, спроецируйте видео любимой компьютерной игры или фильма. Удачи! Прокачивайте свои окна и балконы, пишите в комментариях о своем опыте, делитесь лайфхаками.
Если пост наберет 100 лайков, то я попробую также прошивку от известного российского автора Alex Gyver и сделаю сравнение по различным параметрам. Её немного сложнее установить, потому что нужно компилировать из исходников, но там больше спецэффектов.
Другие статьи из этого цикла:
Татьяна Волкова
Ведущий специалист управления развития технологических проектов и образовательных программ Исследовательского Центра Samsung в России
Комментарии (5)
OldFashionedEngineer
31.10.2022 23:07+2У Алекса Гайвера был подобный проект четыре года назад. Интересно, кто у кого вдохновлялся?
net_men
01.11.2022 09:46и до неё у меня руки так и не дошли :))))
ну ничего, может теперь сделаю... хотя 4р на гирлянду... ну х.з...
mondzucker
02.11.2022 09:48+1Недавно до меня доехал ESP32 Wroom. Вообще думал его на другой проект пустить, но новый год, самое время приобщить детей к DOOM на гирлянде :-D
Den4558
02.11.2022 09:48+1Привет по народ! Гирлянда конечно - огонь! А вот у меня такой вопрос, уже полгода бьюсь с поиском ответа: wemos с прошитой wled запускается при питании от юсб, при подаче на +5v прошивка не стартует, где то краем глаза читал что как то связано с инициализацией usb-uart и конфигурации wi-fi из Флэш (?). В общем, подскажите толком люди добрые с чем может быть связано такое поведение и как поправить если возможно?
N-Cube
Двунаправленный преобразователь уровней (да еще многоканальный) здесь вовсе не нужен, достаточно поставить обычный транзистор :) резистор почти любой подойдет в диапазоне 20-200 ом (а можно и пару килоом поставить, если провода между контроллером и гирляндой короткие и достаточной толщины), он особенно пригодится, когда ненароком закоротите выводы. Конденсатор от помех спасет мало, потому что гирлянда длинная и провода тонкие (да еще индуктивность самого конденсатора добавляется) … лучше просто избегать сильных перепадов яркости (и бросков тока и, соответственно, напряжения), так и смотреть приятнее будет. Для каждой секции гирлянды стоит продублировать питание, иначе падение напряжения на всей длине будет очень существенным (и никакой конденсатор на входе первой секции не поможет). А самое интересное - это самостоятельно перекодировать линейный индекс светодиодов в двумерный, ничего сложного, зато потом матричные и векторные вычисления станут понятны (понадобятся операции деления по модулю и целочисленного деления).