Управляем компьютерной RGB подсветкой без пк

Название ARGB или Adressable RGB, буквально говорит само за себя. Вместо глупого управления тремя линиями как в простых лентах, здесь устанавливают адресуемые RGB светодиоды. Их фишка в том что диод имеет все те же 4 контакта, 2 из которых питание, а 3 и 4 это вход данных и выход данных. Каждый «пиксель» это не просто светодиод, а целая конструкция с микроконтроллером, а так же тремя светодиодами красного, зеленого и синего цвета.

Источник https://aliexpress.ru/item/1005001593247498.html

Все «диоды» стоят в очереди и передают данные дальше по цепочке, заодно сами берут данные из пакета данных, и применяют себе выбранный цвет. Пакеты данных очень компактные, в них упакована яркость (256 значений) и 16777216 цветов. Все это передается по цепочке на скорости до 800 кбит/сек!

Источник https://cpldcpu.wordpress.com/2014/01/14/light_ws2812-library-v2-0-part-i-understanding-the-ws2812/

К материнской плате такие ленты с диодами подключаются через простой разъем на 3 пина. По ним лента получает питание 5V, а так же данные.

6658c6405b08add0f1dde7a17993dd26.png

Невысокое напряжение питания этих диодов одновременно их сильная сторона если питать их например от USB, но и слабая сторона, так как каждый диод может поедать вплоть до 60 мА, а ленты бывают и длинные и с большим количеством диодов, а сама подложка ленты зачастую тонкая и мягкая в угоду удобства. От чего инсталляции с большим кол-вом диодов могут сильно проседать по яркости и искажать цвет на большом расстоянии от начала ленты. Но в случае с компьютерными железками такая ситуация довольно редкая.

Источник - Даташит микросхемы

Источник — Даташит микросхемы

Разборки

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

Для данного поста компания Adata XPG предоставила вентиляторы XPG Huricane 120 ARGB, а так же удлинители проводов Xpg Prime ARGB. Именно их мы разберем в поисках адресуемых светодиодов, а так же подключим к своему микроконтроллеру минуя материнскую плату с ее родным софтом.

Первым пошел вентилятор XPG Huricane 120 ARGB. Диоды тут расположены сразу в двух местах. На «хабе» мотора, а так же в виде кольца вокруг крыльчатки.

Снимаем черное кольцо которое удерживает белый рассеиватель в вентиляторе, а дальше вытаскиваем белый рассеиватель отверткой.

598821fc46b6aa430d13a5d6c5b6054d.png

После снятия рассеивателя можно доставать ленту.

80ccb85c5f67b0577a86884257ac83fa.png

Диоды на первый взгляд обыкновенные, именно такие которые можно найти в даташитах.

eaba5878877d78217f397b6d7f0c7cff.png

При ближайшем рассмотрении мы находим тот самый чип WS2812.

0a7e931f61bc64d4faf0b5f3df8494bd.png

С удлинителем кабелей Xpg Prime ARGB все немного интереснее. Конструкция подсветки очень компактная и диоды в корпусе 5050 туда просто не влезут. Разборка показала что тут установлены очень крохотные SMD диоды размером 2020! Их удалось найти в китае под названием «WS2812–2020»

a3badda0be9c5ead664ad2336ba66b22.png7eba437f1c3de513c088fee32064355f.png728b97a954c9a7831750d4a4de9eef59.png

Каждый диод внутри действительно имеет 3 светодиода, а так же Ws2812 совместимый чип, что позволяет управлять подсветкой каждой декоративной трубки.

7d238b2c91f1f3afab966077f86b68c0.pngaa3267d398dbf5e1c3b56e5e659a8929.png

Но, а как же управлять такими лентами ?

На практике все максимально просто. Нам потребуется любой микроконтроллер, подойдет как Arduino, stm32, так и самое дешевое решение на рынке — ESP8266 либо ESP32. Я решил взять esp8266 как пример дешевого контроллера с возможностью прошивки своего кода.

Для начала припаяем коннектор для адресуемых лент. У меня нашелся штекер от 4pin RGB ленты, для работы с 3пин достаточно откусить один кабель и пин из штекера типа ПАПА. Если у вас такого штекера нет, то можно откусить его от одного из вентиляторов, решение не идеальное, но кто вас остановит ?

267db6d5c28798acd2947761b02a52a3.png5ed38af791dde4027be07a74a45bd25f.png

В качестве контроллера мною был выбран ESP8266 в исполнении Wemos D1 mini. Оно идеально своей низкой ценой в районе 200руб, а так же компактным исполнением и USB-TypeC коннектором который позволит подключить данную плату современным кабелем к любому пк.

Я припаял питание ленты к контакту 5V, землю к G, а сигнальный кабель к порту D4. Между лентой и D4 Желательно установить резистор 220–440Ом, но и без резистора все будет работать без проблем.

53a2c8914f164d550b5ba9ec701e5585.png

Cейчас я покажу самый простейший способ начать управлять аргб устройствами — прошивка WLED. Для работы с ней не требуется познаний программирования или вообще каких то знаний. Просто идем на сайт онлайн прошивальщика — https://install.wled.me/ , выбираем последнюю версию прошивки, и подключаем esp8266 плату в пк.

Драйверы должны подхватиться сами, а в системе появится новый COM порт. Жмем INSTALL на странице, и выбираем COM порт который появился при подключении ESP.

39d1ad192dc3d05db8037c74589e0ae1.png

Если все сделано правильно то сайт предложит установить прошивку, жмем INSTALL WLED и ожидаем окончания установки которая занимает около 1 минуты.

462e49eaf7554256e78e1b484e9bdd9a.png

После успешной установки можно сразу же ввести логин и пароль от домашней Wfi сети, дабы управлять девайсом из браузера или из мобильного приложения WLED. Если не настроить подключение к сети, то плата сама будет поднимать свою собственную сеть с названием WLED, и при подключении к ней можно управлять лентой вообще не имея домашней wifi сети.

3772a3c684814d353c4aec8b294feab1.png12dbef808ea6dc78994f122c1a263708.pngЕсли не веб интерфейс не работает после прошивки

Такое бывает, первым делом стоит подключить esp8266 в USB3 порт компьютера, и желательно коротким кабелем, юсб3 порт имеет больший рабочий ток, а короткий кабель уменьшит падение напряжения на проводах.

Если же это не помогло, то стоит прошить ESP8266 другим способом.

Качаем релиз для вашей платы отсюда https://github.com/Aircoookie/WLED/releases/tag/v0.14.2

Далее идем сюда https://web.esphome.io/ подключаемся и вместо установки esphome, выбираем наш BIN файл прошивки wled и прошиваем его, далее ищем WIFI точку WLED-AP без пароля, подключаемся к ней и настраиваем WIFI.

После успешной установки прошивки, можно подключить управляемые устройства (вентиляторы, ленты, итд) к плате и проверить. Они сразу же включатся и будут светиться оранжевым светом в половину яркости.

35558b5a859f258d08cd3dcbef191614.png

Далее идем в настройки (шестеренка справа сверху), далее в led Preferences.

380d76c21102bf45249fc28441ae7cdc.pngc6b151ec775ae86d6bb877c85e760f50.png

Настроим ток. В случае с USB3 стоит выставить ток до 0,9А те 900 мА. Но на практике я не встречал материнских плат которые не тянут меньше 1,5–1,9А. Напоминаю что обычный светодиод на ws2812 чипе будет потреблять до 60 мА, но только если включить белый цвет на максимальной яркости! В таком случае можно рассчитать что при 1А у нас есть бюджет аж на 16 светодиодов, а при 2А уже 32 светодиода. На практике если использовать эффекты wled либо выбрать какой то цвет отличный от белого, общее потребление диодов можно делить в разы

Тут же нужно выставить Количество диодов на канал. Если выставить меньше, то незадействованные диоды либо не будут светиться, либо при включении примут случайный цвет и так и залипнут. Количество диодов нужно подбирать под конкретный случай. Например в моих вентиляторах XPG Hurricane установлено 12 светодиодов. Если подключать все вентиляторы параллельно то в настройках wled достаточно выставить 12 диодов. Passthru коннекторы данных вентиляторов параллельные, поэтому увеличивать количество диодов с каждым подключенным вентилятором просто не требуется.

Если ваши вентиляторы поддерживают последовательное подключение, то соответственно стоит выставить количество диодов равное количеству вентиляторов умноженному на количество диодов в каждом вентиляторе. Например 4 вентилятора по 12 диодов дадут нам всего 48 диодов, именно эту цифру надо вписать в настройках длинны.

e1ab90786e0c1da3dff4e583d173309a.png

После настроек идем на главную страницу, включаем эффект радуги, и наслаждаемся RGB подсветкой которая работает без мам, пап, и кривого софта от материнской платы!

33a686d888a4167b4504f3518401002d.png

Все мои вентиляторы Xpg hurricane имеют passthru порт, но он параллельный, поэтому выставив 12 светодиодов в настройках WLED у меня все 4 вентилятора получили одну и ту же подсветку.

c81b62efb510ded88ffe33af0512e8ec.png

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

6262820fac54ba34d1e0488c0ff14d76.png27f39934b5d99fda71ff6693a2b6c7ef.pngbf9bbd840c89a3998ec4b930430b1e5f.png

WLED имеет отличную интеграцию в целый список софта для домашней автоматизации, например Home assistant, Domoticz, MQTT и openHAB. Из коробки поддерживает интеграцию в Amazon Echo, Philips Hue sync, итд https://kno.wled.ge/advanced/home-automation/ Поэтому интегрировать подсветку компьютера в умный дом не составит труда.

Кроме того присутствует прекрасный API который позволяет управлять цветом и эффектами через простейшие HTTP запросы или JSON https://kno.wled.ge/interfaces/http-api/ Для более быстрой коммуникации можно посылать те же json запросы, но через websockets https://kno.wled.ge/interfaces/websocket/

Любители работать с профессиональным концертным оборудованием оценят интеграцию с DMX и Art-Net https://kno.wled.ge/interfaces/e1.31-dmx/

Вот так просто и с минимальным бюджетом можно управлять компьютерными компонентами с адресной RGB подсветкой.

© Habrahabr.ru