Светодиоды ws2812b характеристики


Светодиоды c пиксельной адресацией WS2812B

Когда то давным давно, еще до эпохи РК86 и ZX-Spectrum, делом чести каждого начинающего радиолюбителя был собрать цветомузыку.

На транзисторах, тиристорах и даже тиратронах МТХ90, с лапочками, крашеными цапонлаком и самопальными рассеивателями.

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

Речь пойдет о продукции китайской компании WORLDSEMI CO.,LIMITED — светодиодах с пиксельной адресацией с использованием микросхем WS2811.

Описание WS2811

Микросхема WS2811 представляют собой 3-х канальный контроллер/ШИМ драйвер с управлением по одному проводу. Выпускаются WS2811 в корпусах DIP-8 и SOP-8 WS2811 подключаются последовательно друг за другом. К каждой микросхеме подключается три светодиода с питанием от 5В или три цепочки с питанием от 12В

На вход первой в цепочке микросхемы подается сигнал из прямоугольных импульсов частотой 400 или 800КГц. Импульсы, в зависимости от скважности, кодируют 0 или 1 для одного бита информации. Длинный (50мс) низкий уровень означает RESET или старт новой последовательности. Первая микросхема считывает 24 бита, в которых закодирован RGB сигнал по трем каналам светодиодов. Остальные импульсы пропускает на выходную шину. Следующие 24 бита достаются второй микросхеме и т.д. Всего каскадом может объединяться 1024 микросхем, информация в которых может обновляться 30 раз в секунду.

Подробнее изучить протокол управления микросхемами WS2811 можно изучить в даташите

Микросхемы WS2811 размещали на светодиодных лентах рядом с трехцветными RGB светодиодами. Но прогресс не стоит на месте. И микросхемы стали размещать прямо в корпусе светодиодов 5050. Так появились светодиоды WS2812

WS2812 и WS2812B отличаются количеством ног. У WS2812B их количество сократили с 6-ти до 4-х

Для тех, кто не хочет самостоятельно паять, сделано множество готовых изделий с WS2811/WS12

Я купил светодиоды WS2812B россыпью для самостоятельной пайки на ТАОБАО. Доставка со всеми процентами Мистера Тао вышла $7. Получилась итоговая цена $0.13 за один диод

Пришли светодиоды в специальной ленте, которую можно заряжать в устройство автоматического монтажа SMD компонентов

Почему то в описании на ТАО указана модель WS2813-4. На самом деле светодиоды полностью соответствуют описанию WS2812B

Продавец подошел серьезно к продаже и положил в подарок две таких ручки :))

Что можно сделать из таких деталек?

Обычные линейки, которые можно использовать в различных СДУ, иллюминации и прочих поделках со световыми эффектами.

Подробно об изготовлении таких линеек читайте в моей статье Видео, показывающее работу линейки

Такие линейки, наравне с обычной светодиодной летной на WS2812 подойдут для изготовления системы фоновой динамической подсветки телевизора или монитора.

Следующей моей поделкой стал светодиодный дисплей.

Здесь можно почитать про его изготовление, скачать эскизы печатной платы и демо скетчи для ардуины.

Демонстрация работы дисплея на WS2812B

Пока работал, испортил несколько светодиодов. Нет, не перегревом. Когда паял, фиксировал диоды к плате тем что подвернулось под руку, а именно, маленьким зубастым «крокодильчиком». Так вот, осторожнее, светодиоды WS2812 очень легко повредить механически, так как кристаллы и проводочки там за тонкой прозрачной пленочкой.

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

Подведем итог

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

Полезная информация

Описание микросхемы WS2811 на английском языкеДаташит на WS2811 на английском языке Даташит на WS2812/WS2812S в корпусе SMD5050 с 6-ю контактамиДаташит на WS2812B в корпусе SMD5050 с 4-ми контактамиБиблиотека Adafruit Neo Pixel для работы с WS2811/12 для ардуино

Кот похоже скоро будет разбираться в контроллерах лучше меня ;)

P.S Для тех, кто не любит покупать на ТАОБАОСсылка на похожий лот на АЛИ Там по поиску «WS2812» очень много всего находится

mysku.ru

Светодиоды WS2812B с пиксельной адресацией

Когда то давным давно, еще до эпохи РК86 и ZX-Spectrum, делом чести каждого начинающего радиолюбителя был собрать цветомузыку.

На транзисторах и тиристорах, с лапочками, крашеными цапонлаком и самодеятельными рассеивателями.

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

В данной статье речь пойдет о продукции китайской компании  WORLDSEMI CO.,LIMITED — светодиодах с пиксельной адресацией.

Микросхема WS2811

Микросхема WS2811 представляют собой 3-х канальный контроллер/ШИМ драйвер с управлением по одному проводу.

Выпускаются WS2811 в корпусах DIP-8 и SOP-8

WS2811 подключаются последовательно друг за другом.

К каждой микросхеме подключается три светодиода

Либо 3 цепочки из светодиодов, если увеличить напряжение питания

 

На вход первой в цепочке микросхемы подается сигнал из прямоугольных импульсов частотой 400 или 800КГц. Импульсы, в зависимости от скважности, кодируют 0 или 1 для одного бита информации. Длинный (50мс) низкий уровень означает RESET или старт новой последовательности. Первая микросхема считывает 24 бита, в которых закодирован RGB сигнал по трем каналам светодиодов. Остальные импульсы пропускает на выходную шину. Следующие 24 бита достаются второй микросхеме и т.д. Всего каскадом может объединяться 1024 микросхем, информация в которых может обновляться 30 раз в секунду.

Подробнее изучить протокол управления микросхемами WS2811 можно изучить в даташите

WS2812 и WS2812B

WS2812 представляет собой RGB светодиод в корпусе SMD5050 в корпус которого встроена микросхема WS281.1

WS2812 и WS2812B отличаются количеством ног. WS2812B их количество сократили до 4-х

 

Даташит на WS2812/WS2812S в корпусе SMD5050 с 6-ю контактами

Даташит на WS2812B в корпусе SMD5050 с 4-ми контактами

Готовые изделия на WS2811/WS2812

На сайте компании WORLDSEMI представлен большой выбор готовых устройств на базе светодиодов с пиксельной адресацией

Это гирлянды из различных модулей

Корпусные изделия

Светодиодные ленты

И даже матричный дисплей 16×16

Чем управлять

Компания WORLDSEMI выпускает также и контроллеры управления данными микросхемами и устройствами

Но покупать готовые контроллеры — не наш путь. Наш путь подключить WS2812 к Arduino при помощи библиотеки Adafruit_Neopixel(можно и не Ардуино, но тогда это выходит за рамки тематики этого блога)

Покупка в интернете

Микросхемы WS2811/2812 и изделия из них можно купить в интернете. Цены в российских интернет магазинах на данные изделия очень уж завышенные.

На Алиэкспресс партией 100шт можно купить WS2812B по $0.13 

Для тех кто не любит много паять можно купить светодиодную ленту с Ws2812 по 30, 60 или даже 144 светодиода на метр.

Я заказал на TAOBAO.COM  у этого продавца.

За эти же деньги можно их купить и на ТаоБао  WS2812B  (на сайте они почему то обозначены как WS2813-4). 200 штук через посредника с доставкой в Пермь обойдутся в $26 или $0.13 за штуку.

Поставляются светодиоды в специальной ленте, которую можно заряжать в устройство автоматического монтажа SMD компонентов

Светодиоды точно такие же как в даташите

 

Область применения

В основном, светодиоды с пиксельной адресацией используются для различных свето-динамических установок. Здесь собрана огромная коллекция реализации СДУ на WS2811/WS2812

Очень популярны они и при создании динамической подсветки дисплея, аналогичной Ambilight от Philips.

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

   

Изготовление линейки из 10 светодиодов WS2812B

Изготовление дисплея на WS2812B

Цифро-аналоговые часы на WS2812B

Обзор и обсуждение по покупке

А пока можно вместе с Тимофеем хорошо подумать и подготовится к этому

 

 

со своего сайта.

samopal.pro

Светодиодная лента WS2812B - изготовление новогодней подсветки окна

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

Я взял влагозащищенную версию, которая у продавца обозначается как «White 4m 60 IP67», это лента в силиконе. Пришла на катушке, в фольгированном пакетике: На одном метре 60 светиков, залитых силиконом: С обратной стороны двухсторонний скотч для крепления к поверхности: Посмотрим на отдельную секцию ленты: Видим: линии отреза по контактам, собственно контакты с двух сторон: DIN — входные данные, DO — выходные данные, +5V — плюс питания, GND — минус питания, C1 — керамический конденсатор, ну и собственно сам светодиод припаянный 4-мя контактами. Направление передачи данных указано черным треугольником.

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

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

Для ардуино разработана хорошая библиотека для данных сборок Adafruit_NeoPixel. Которая позволяет раскрашивать каждую сборку в свой цвет. Также у Adafruit есть библиотека для экранов из данных сборок и неплохие примеры использования.

Мы уже видели на этом сайте замечательные результаты творчества с применением WS2812B: аналог Ambilight/Aurea, снежинка.

Мне захотелось сделать управляемую ленту в окошко с применением данной ленты. Клеить ленту будем в оконный проем, поэтому потребуется 2 метра ленты. Собрав прототип простой гирлянды и загрузив пример, идущий в комплекте с библиотекой Adafruit_NeoPixel: strandtest, я убедился что принципиально все работает. Фактически в библиотеке задается один пин контроллера который подключается ко входу Din первой сборки. Схема: С типовым скетчем и типовым подключением никаких проблем не возникло.

Но ведь нам требуется управлять линейкой удаленно… Вот тут и начинаются грабли.

Первым делом я решил подключить ик приемник и управлять с пульта. Собрал схему помигал светодиодом и подключил ленту… Реакции не было… Точнее я подключив консоль получал случайного вида коды кнопок, нажав 10 раз на одну кнопку и увидев только разные коды, я задумался. Первая мысль была помеха по питанию, ведь кроме включения ленты ничего не менялось. Прочитал на adafruit.com о рекомендации впаять на вход ленты электролит напряжением 6.3 Вольта и емкостью не меньше 1000 мкФ, конечно же сразу это сделал, результат нулевой… Начал копать код библиотеки Adafruit_NeoPixel и обнаружил, что при передаче данных на светодиоды библиотека полностью блокирует прерывания. Отключение блокировки привело к тому что лента вела себя очень странно, прерывания происходили на любой мусор попавший на вход ик приемника…

Расстроившись в неудаче при такой простой схеме, начал думать про второй контроллер, отвечающий за прием ик сигналов и управляющий основным… Если кому то хочется сделать ик-управляемую ленту на WS2812B, то это единственный разумный вариант. Конечно есть еще и экзотические, например, вводить промежутки времени когда гирлянда не меняет свое состояние и принимать в них ик-сигналы — но это уже совсем рогатый метод…

В итоге принято решение использовать bluetooth и с телефона управлять гирляндой, благо несколько штучек модулей HC-06 у меня лежали без дела. Для индикации текущего режима работы гирлянды решил использовать дисплей на TM1637, обзор которого присутствует здесь. Итоговая схема:

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

Теперь про управление, конечно написать свое красивое приложение заманчивая идея, но времени на это не было и я воспользовался приложением для android — BluetoothSPP, в режиме кнопок настроил нужные коды и стало все хорошо. Есть возможность подписать каждой кнопке посылаемый код и обозначение. Большего мне и не было нужно. Все эффекты пронумеровал получилось 10 различных, 10 кнопок задействованы под эффекты, и 1 кнопка на то чтобы включить последовательную смену эффектов.

Bluetooth модуль конфигуририровал с помощью программки btinit.exe, очень удобно, можно изменить название устройства при поиске и скорость: HC-06 следует подключить к компьютеру с помощью стандартного USB-TTL ковертора.

Подключив к лабораторному блоку питания, выяснил, что моя лента (2 метра) потребляет в пике, когда все включено 2.1 А при напряжении 5В. Поставил блок питания на 3А, купленный в офлайне: неделя непрерывной работы, проблем не выявила.

Ну и конечно мне хотелось, чтобы готовое устройство не выглядело клубком проводов в коробке из под обуви. Тем более, у меня имелись корпуса со стеклянной крышечкой подходящим размером: Делаем печатную плату в программе Sprint Layout, ИК приемник, я все таки оставил, так как возможно иное применение коробочки, либо как-то удастся разрешить проблему с ним: Процесс изготовления методом ЛУТ я описывал ранее в обзоре шарового крана. Вот так выглядела плата с нанесением тонера: Травление: Собираем устройство: Для подключения гирлянды я использовал разъем для наушников, по нему же подается питание на устройство. Провод для подключения блока питания к ленте я использовал ПВС 2x0.5, а для подключения устройства к ленте телефонный кабель 4 жилы, землю сделал из 2-х жил. Итоговое устройство: Ну и его эффекты: Конечно лучше всего смотреть гирлянду на видео:

Лентой и полученным результатом все довольны, работает больше недели непрерывно.

UPD: добавил файл платы для Sprint Layout

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

Новогодний хищник рад гирлянде

mysku.ru

119-Умные светодиоды WS2812B NeoPixels — GetChip.net

Светодиоды (пиксели) WS2812B и светодиодные ленты на базе этих пикселей довольно популярны и это оправдано по нескольким причинам:

— компактность — пиксель содержит в своем корпусе (размером всего 5х5 мм) 3 светодиода и драйвера для них — простота управления – пиксель управляется посредством простого последовательного интерфейса, который легко реализовать как программно, так и используя аппаратные интерфейсы МК (такие как SPI и UART)— управление всего по одной линии (не считая проводов питания)— неограниченное количество включенных последовательно пикселей— относительно небольшая стоимость (если посчитать стоимость отдельно 3х светодиодов и драйверов к ним выйдет гораздо дороже)

Эта статья попытка обобщить информацию (наверное, больше для себя) об умных светодиодах WS2812B в одном месте.

Начнем знакомство с серией WS

Первым идет WS2801

Фактически, это не светодиод а микросхема-драйвер для RGB-светодиода с последовательным интерфейсом SPI (есть линия данных и тактовая линия). Эти микросхемы используются во встраиваемых конструкциях пикселей:

Есть и ленты с использованием этих драйверов, но, наверное, их не найти уже.

WS2801.pdf - Даташит

Дальше — WS2811

Это тоже микросхема для управления RGB-светодиодом, но она уже компактней (8 ног, в отличие от WS2801 — 14 ног) и имеет однолинейный последовательный интерфейс.

WS2811.pdf - Даташит

Приближаемся — WS2812(S)

Это уже интегрированные в SMD корпусе 5050 и драйвер и сами светодиоды. Корпус 6-ти ножечный

Как и в предыдущем WS2811 интерфейс однолинейный, но тайминги протокола другие несовместимые.

WS2812.pdf - Даташит

И, наконец, WS2812B

Это почти аналог предыдущего светодиода, но уже с 4-мя ножками и слегка измененными таймингами протокола (совместимы, при использовании компромиссных значений временных периодов сигналов)

WS2812B.pdf - Даташит

Еще существует WS2812D (аналог PD9823)

Это полностью WS2812B но в корпусе обычного 8мм светодиода.

WS2812D.pdf - даташит

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

Принцип работы WS2812B — официальная информация из даташита.

Физически в WS2812B имеется 3 излучающих светодиода (красный, синий и зеленый) и ШИМ-драйвера управляющие их яркостью. ШИМ-драйвера 8-ми битные, то есть для каждого из цветов возможны 256 градаций яркости и, соответственно, для того чтобы установить яркости для каждого из 3-х светодиодов нужно передать пикселю 8х3=24 бит (3 байта) информации. Протокол передачи информации светодиоду однолинейный с фиксированной скоростью. Единички и нули информации о яркости кодируются длительностью высокого и низкого уровня сигнала в линии.

Время передачи одного бита составляет  0.8+0.45=1.25 мкС — это довольно быстро. Время передачи всего пакета из 24 бит для одного пикселя WS2812B составляет 24*1.25=30 мкС. Для 1000 штук — 1000*30=30 мС (что, например, позволяет обновлять по одной линии панно 30х30 пикселей с частотой 30 раз в секунду!).

Каждый из пикселей WS2812B имеет 2 вывода питания (VDD, VSS), вход (DIN) и выход (DOUT).

На вход DIN подается информация (24бита) для установки нового цвета. Информация о цвете передается побитно (начиная со старшего бита) последовательно для каждой из составляющей цветов G, R, B.

Пиксели соединяются в цепочку следующим образом:

Запись значений цвета цепочке пикселей происходит следующим способом:Первые 24 бита поданные на DIN записывает себе во временную память (цвет пока остается неизменным с предыдущего раза) первый пиксель. Последующие биты первый пиксель пропускает через себя и выдает на выход DOUT. Второй пиксель повторяет действия первого (оставляя себе первые дошедшие до него 24 бита)  и так по цепочке. Для того, чтобы значения цветов из временной памяти пикселей стали активными должна быть выдержана пауза в передаче (reset code) в течении 50мкС. После этой паузы цикл можно повторять снова.

Вот это основное, что нам говорит довольно скудный даташит.

Теперь более интересная часть – Практические способы включения ленты и реализации протокола WS2812B.

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

Для начала, общие советы (по большей части взятые с https://learn.adafruit.com):

— подключайте к ленте (между линиями питания) конденсатор побольше, вплоть до 1000 мкФ

— в разрыв линии данных (от МК к ленте) добавляйте резистор  300 — 500 Ом, устанавливая его ближе к ленте.

— по возможности, делайте короче провод данных к ленте

— при «горячем» подключении ленты, подключайте «землю» первой (отключайте последней)

— если лента запитана от отдельного источника питания, ее нужно запитать первой (после чего запитать схему управления)

— не допускайте статического электричества при монтаже ленты

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

— напряжение питания пикселей, заявленное в даташите, лежит в пределах +3.5 ~ +5.3 вольт. Из чего видно, что предпочтительней подавать на ленту меньше 5ти вольт (этим правилом следует пользоваться при выборе количества элементов при батарейном питании)

— максимальный ток каждого пикселя составляет 60мА (при полной яркости белого цвета). Если Вы не планируете использовать ленту WS2812B как источник белого света (для этого лучше взять обычную светодиодную ленту с белыми светодиодами), то принято считать, что, усреднено, каждый пиксель потребляет 20мА.

Соответственно:минимальный  ток ИП = 20мА*количество_пикселей. максимальный  ток ИП = 60мА*количество_пикселей

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

Теперь более ценные советы по реализации протокола

Есть несколько способов реализовать протокол умных светодиодов:— аппаратный при помощи SPI-интерфейса— аппаратный при помощи UART-интерфейса— программный

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

Реализация протокола WS2812B (NeoPixel) при помощи SPI

Прежде, чем приступить к реализации, следует акцентировать внимание, что у WS2812B кодирование нулей и единичек происходит по правилу 1/3 (смотрите даташит выше). То есть ноль передается как 1/3 времени высокий уровень и 2/3 низкий. Единица – это 2/3 высокий и 1/3 низкий. Из этого следует, что для передачи одного бита для  WS2812B нам достаточно 3х бит переданных по SPI.

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

Но есть решение этой проблемы! Забегая наперед, сообщу, что для пикселя важна длительность периода высокого уровня, а низкий уровень может быть с бОльшим отклонением, чем указано в даташите. Поэтому мы может удлинить наши цепочки бит SPI с трех до четырех:

Вот теперь алгоритм становится более простым и приемлемым к реализации.

Для выдачи информации на пиксели используется только один вывод SPI – MOSI. Выводы MISO и SCK остаются незадействованными. Частота SPI должна быть 1/0.4мкС = 2.5МГц

Реализация протокола WS2812B (NeoPixel) при помощи UART

Все, о чем я писал для SPI, подходит и для UART, но тут есть несколько моментов, которые усложнят реализацию:

— UART в паузах удерживает свою выходную линию (TXD) в высоком уровне, что для пикселей недопустимо, так как невозможно будет избежать неопределенностей в моменты начала и окончании передачи

— соответственно, нужно инвертировать сигнал перед подачей его на пиксели

— а, так как линия инвертируется, нужно инвертировать и передаваемые данные

— UART-пакет, в отличии от SPI, содержит служебные биты – это старт-бит и стоп-бит (бит четности нужно отключать в настройках UART — он не нужен). Дополнительные биты служебной информации нужно учитывать при формировании передаваемого байта, так как они тоже пойдут в пиксель

В итоге, если учесть все нюансы, получается идеальная реализация протокола. Устанавливаем скорость UART 2.5 МГц (это нестандартно), устанавливаем размер кадра 7 бит (вместо стандартных 8-ми), убираем бит четности, оставляем один стоп-бит и получаем следующую картинку:

Программная реализация протокола WS2812B (NeoPixel)

Переходим к тому разделу, ради которого я и писал эту статью (но, видимо, увлекся по ходу 🙂 ). Для меня интересней реализовать этот протокол программно, так как эта реализация дает мне произвольное количество линий у МК к которым можно подключить ленты и управлять ими независимо. Это плюс. Минусом является то, что протокол довольно быстрый и это накладывает ограничения на процедуру формирования сигналов и, конечно, в моменты вывода значений цвета все прерывания у МК должны быть запрещены.

Первая проблема, которую придется решать – это формирование малых временных интервалов. Для примера. МК работает на частоте 16МГц. Время одного такта 0,0625 мкСДля формирования интерфейса WS2812B нам нужно формировать 2 временных интервала: 0,4мкС  (6 тактов) и 0,85мкС (14 тактов). Всего период бита составляет 20 тактов. Очевидно, язык высокого уровня не способен сформировать код с точной размерностью по тактам. Это возможно реализовать только на языке низкого уровня – придется использовать ассемблер (по крайней мере, только для этой процедуры).

Дальше возникает проблема с точностью формирования этих промежутков. Если мы говорим о передаче данных только для одного пикселя (3 байта), то периоды можно соблюсти очень точно, прописав отдельно буквально каждый бит. Другое дело если нам нужно передавать массив значений в одной посылке без пауз. Тут придется создавать алгоритм, который, кроме того что формирует сигнал (дрыгает ногой МК), еще и считывает данные с массива данных в SRAM (или Flash), возможно, осуществляет несложную обработку данных. В этом случае очень сложно будет уложиться в 20 тактов периода передачи бита и, неизбежно, будут возникать ситуации, где потраченное на обработку время превысит допустимые значения. Вот тут нам помогут исследования проведенные здесь:

Привожу итоговую таблицу того что допускает протокол в плане ухода от даташита.

Более детально читайте в статье по ссылке выше, но если кратко — протокол требует более жесткого формирования периодов сигнала с высоким уровнем, а периоды с низким уровнем могут быть значительно затянуты. Это дает нам простор для реализации «тяжелых» мест.

Далее, даташит нам дает время паузы после которой происходит защелкивание новых значений цвета – 50 мкС. По факту, защелкивание начинается уже после 10 мкС – нужно стараться не делать паузы больше 10 мкС во время передачи длинных пакетов данных.

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

(Visited 46 874 times, 77 visits today)

www.getchip.net

Ограничения в использовании умных светодиодов WS2812, WS2801 и подобных в современных проектах декоративной светотехники

Уже несколько лет на рынке светотехники можно встретить такие названия, как: «smart led strip», «smart led pixel» и подобные. Как правило, «умный пиксель» — это сборка из миниатюрного 3-х канального светодиодного драйвера (с интегрированным стабилизатором тока, PWM модулятором и сдвиговым регистром), подключенная к RGB светодиоду. На базе таких пикселей многие производители выпускают «умные» гибкие светодиодные ленты, LED «гвозди» и LED кластера. Также можно встретить такие модели чипов, как WS2812, WS2813, с интегрированным LED драйвером непосредственно в корпус 5050 RGB светодиода. Малые габариты, большое количество последовательно включенных пикселей (более 1000 шт.), простота управления по 1(2) проводу и сравнительно низкая стоимость решения — более чем оправдывают их применение.

Эта моя первая публикация на Хабре, в которой я хочу донести мой опыт использования и обозначить недостатки таких пикселей. За несколько последних лет я успел поработать со следующими LED драйверами: LPD6803, WS2801, WS2811, WS2812(B), TM1903, UCS1903, TM1804, TM1803, SM16716 и другими менее ходовыми. В интернете часто можно встретить такой термин как «светодиодная лента с пиксельной адресацией» — я с этим совершенно не согласен, и это является первым ограничением.

Информация в такие ленты/пиксели загружается по последовательному каналу, а именно через сдвиговые регистры с 24-х битной разрядностью (как правило), т.е. 3 канала по 8 бит для RGB. Никаких адресов такие LED пиксели не помнят и работают исключительно по последовательному принципу. Отсутствие сигнала управления на линии данных или синхронизации (если таковая есть), служит командой для преобразования значений в регистрах в PWM сигналы для RGB светодиодов. По этой причине, при выходе из строя информационного канала одного из пикселей, последующие пиксели перестанут корректно работать. Многие неопытные LED «рекламисты» наступили на эти грабли, применяя такие пиксели для уличных экранов.

Рисунок ниже демонстрирует «битые» полоски.

Второе ограничение связанно с температурой использования. В большинстве случаев у пикселей, что управляются только по одному проводу «DATA», к примеру, WS2812B — нижняя температура использования -25 градусов. На практике, часто от -15 градусов. Это связанно с отсутствием хорошего кварцевого блока регенерации сигнала внутри чипа. Таким образом, при низких температурах пиксель перестает корректно работать, наблюдаются «сверчки» и т.п. до полного отсутствия картинки. Другое дело — чипы с синхронизацией: WS2801, LPD6803, к примеру. Здесь имеется хорошая регенерация сигналов по уровням, по времени — регенерация не нужна, поскольку имеется линия синхронизации. Рабочая температура в этом случае от -40 градусов. Но и стоят эти чипы вдвое дороже.

Третье ограничение — глубина цвета.

Рисунок ниже демонстрирует экраны собранный на чипах WS2801.

Не вооруженным глазом заметно, что экран с фоном засвечен. Низкие уровни градиента «умные пиксели» (WS2812, WS2801 и т.п. практически все) не способны воспроизводить так, как это делают современные экраны. Это связанно с низкой разрядностью интегрированного в чип PWM генератора (всего 8 бит на канал) и как следствие – отсутствие полноценной гамма коррекции. Проще говоря, светодиод светит слишком ярко, когда хочется совсем чуть-чуть и ничего с этим нельзя поделать.

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

«LedEdit» обеспечивает возможность создания и редактирования видео анимации, захвата и последующего конвертирования на «железо». Но использовать этот софт я могу только совместно с их контроллерами. Также я выявил большие недостатки софта «LedEdit» в плане качества видео захвата и стабильности обработки кадров.

Поскольку в этой теме я был очень заинтересован и обладал неплохими знаниями в области программирования, в том числе микроконтроллеров, я написал свой «граббер» видео с последующей конвертацией на «пиксели». Идею объединить в одной программе возможности создания и конвертирования анимации я сразу отложил, поскольку это не профессиональный подход. Анимацию нужно создавать и редактировать в специализированных программах, к примеру, я выбрал FREE программное обеспечение «Jinx!».

На выходе ПО «Jinx!» можно получить открытый бинарный файл *.out представляющих битовое представление данных прямоугольной матрицы из пикселей для каждого кадра. Теперь дело остается за немногим: сопоставить прямоугольную матрицу из данных для каждого кадра с реальным расположением «умного пикселя» на пиксельном поле и произвести граб анимации. Так у меня родилось FREE программное обеспечение «LS Terminal».

Сейчас ПО «LS Terminal» позволяет работать с большинством видео форматов *.avi, *.flv и д.р., использовать десятки портов, качественно обрабатывать видео захват для десятков тысяч «умных пикселей» расставленных по полю пользователем. Для обработки и визуализации видео я использовал библиотеки OpenCV и OpenGL. Выгрузку данных на «умные пиксели» осуществляю посредством микроконтроллера, который считывает данных с SD карты.

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

— для LED костюмов:

— небольшой изогнутый экран на WS2812:

— в этом объекте несколько тысяч «умных пикселей» WS2801:

habrahabr.ru

Светодиодная лента WS2812B - изготовление новогодней подсветки окна

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

Я взял влагозащищенную версию, которая у продавца обозначается как «White 4m 60 IP67», это лента в силиконе. Пришла на катушке, в фольгированном пакетике:На одном метре 60 светиков, залитых силиконом:С обратной стороны двухсторонний скотч для крепления к поверхности:Посмотрим на отдельную секцию ленты:Видим: линии отреза по контактам, собственно контакты с двух сторон: DIN — входные данные, DO — выходные данные, +5V — плюс питания, GND — минус питания, C1 — керамический конденсатор, ну и собственно сам светодиод припаянный 4-мя контактами. Направление передачи данных указано черным треугольником.

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

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

Для ардуино разработана хорошая библиотека для данных сборок Adafruit_NeoPixel. Которая позволяет раскрашивать каждую сборку в свой цвет. Также у Adafruit есть библиотека для экранов из данных сборок и неплохие примеры использования.

Мы уже видели на этом сайте замечательные результаты творчества с применением WS2812B: аналог Ambilight/Aurea, снежинка.

Мне захотелось сделать управляемую ленту в окошко с применением данной ленты. Клеить ленту будем в оконный проем, поэтому потребуется 2 метра ленты. Собрав прототип простой гирлянды и загрузив пример, идущий в комплекте с библиотекой Adafruit_NeoPixel: strandtest, я убедился что принципиально все работает. Фактически в библиотеке задается один пин контроллера который подключается ко входу Din первой сборки.Схема:С типовым скетчем и типовым подключением никаких проблем не возникло.

Но ведь нам требуется управлять линейкой удаленно… Вот тут и начинаются грабли.

Первым делом я решил подключить ик приемник и управлять с пульта. Собрал схему помигал светодиодом и подключил ленту… Реакции не было… Точнее я подключив консоль получал случайного вида коды кнопок, нажав 10 раз на одну кнопку и увидев только разные коды, я задумался. Первая мысль была помеха по питанию, ведь кроме включения ленты ничего не менялось. Прочитал на adafruit.com о рекомендации впаять на вход ленты электролит напряжением 6.3 Вольта и емкостью не меньше 1000 мкФ, конечно же сразу это сделал, результат нулевой… Начал копать код библиотеки Adafruit_NeoPixel и обнаружил, что при передаче данных на светодиоды библиотека полностью блокирует прерывания. Отключение блокировки привело к тому что лента вела себя очень странно, прерывания происходили на любой мусор попавший на вход ик приемника…

Расстроившись в неудаче при такой простой схеме, начал думать про второй контроллер, отвечающий за прием ик сигналов и управляющий основным… Если кому то хочется сделать ик-управляемую ленту на WS2812B, то это единственный разумный вариант. Конечно есть еще и экзотические, например, вводить промежутки времени когда гирлянда не меняет свое состояние и принимать в них ик-сигналы — но это уже совсем рогатый метод…

В итоге принято решение использовать bluetooth и с телефона управлять гирляндой, благо несколько штучек модулей HC-06 у меня лежали без дела. Для индикации текущего режима работы гирлянды решил использовать дисплей на TM1637, обзор которого присутствует здесь. Итоговая схема:

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

Теперь про управление, конечно написать свое красивое приложение заманчивая идея, но времени на это не было и я воспользовался приложением для android — BluetoothSPP, в режиме кнопок настроил нужные коды и стало все хорошо. Есть возможность подписать каждой кнопке посылаемый код и обозначение. Большего мне и не было нужно. Все эффекты пронумеровал получилось 10 различных, 10 кнопок задействованы под эффекты, и 1 кнопка на то чтобы включить последовательную смену эффектов.

Bluetooth модуль конфигуририровал с помощью программки btinit.exe, очень удобно, можно изменить название устройства при поиске и скорость:HC-06 следует подключить к компьютеру с помощью стандартного USB-TTL ковертора.

Подключив к лабораторному блоку питания, выяснил, что моя лента (2 метра) потребляет в пике, когда все включено 2.1 А при напряжении 5В. Поставил блок питания на 3А, купленный в офлайне:неделя непрерывной работы, проблем не выявила.

Ну и конечно мне хотелось, чтобы готовое устройство не выглядело клубком проводов в коробке из под обуви. Тем более, у меня имелись корпуса со стеклянной крышечкой подходящим размером:Делаем печатную плату в программе Sprint Layout, ИК приемник, я все таки оставил, так как возможно иное применение коробочки, либо как-то удастся разрешить проблему с ним:Процесс изготовления методом ЛУТ я описывал ранее в обзоре шарового крана.Вот так выглядела плата с нанесением тонера:Травление:Собираем устройство:Для подключения гирлянды я использовал разъем для наушников, по нему же подается питание на устройство. Провод для подключения блока питания к ленте я использовал ПВС 2x0.5, а для подключения устройства к ленте телефонный кабель 4 жилы, землю сделал из 2-х жил.Итоговое устройство:Ну и его эффекты:Конечно лучше всего смотреть гирлянду на видео:

Лентой и полученным результатом все довольны, работает больше недели непрерывно.

UPD: добавил файл платы для Sprint Layout

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

Новогодний хищник рад гирлянде

mysku.me

Ws2812b led strip или аналог Ambilight/Aurea за пять минут (или чуть дольше) (обновлено 22.11.14г. "Android")

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

Внимание! Под катом очень много картинок!

Обновление 21.11.14: Добавил настройку Ambibox

Обновление 22.11.14: Настройка на Android, вроде как...

Обновление 23.11.14: Добавил еще одно видео

К управляемым светодиодам ws2812b присматривался давно, покупал парочку «поиграться», но большой заказ делать не позволяла жаба, но тут я все-таки созрел, придушил свою жабу и заказал ленту 4 метра по 60 диодов на метр. Заказ пришел относительно быстро. Прием в китае 3.11 — получение 17.11.

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

Сама лента выглядит вот так.

Клеящий слой.

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

Быстро подключив ленту к ардуино и подав питание, вдоволь намигался и насветился, решил что пора что-нибудь с ней сделать. Думал не очень долго, фоновую подсветку для своего 3D монитора собрать хотел уже очень давно, да и комплектующие под рукой, поэтому я быстро приступил к делу. Собирать мы будем немного модифицированную подсветку Adalight.

Данная фоновая подсветка будут работать в паре с персональным компьютером, либо медиаплеером на android, но в данной статье я рассмотрю только вариант подключения к ПК.

Для сборки своей собственной фоновой подсветки монитора или тв вам потребуется:

  • Arduino (Arduino Nano на ATmega328 будет идеальным вариантом)
  • Лента светодиодная на ws2812b (в моем случае ушло чуть больше 1 метра ленты на монитор 23")
  • Маломощный паяльник (флюс и припой)
  • Три проводка
  • Блок питания на пять вольт (один метр ленты потребляет максимум 14.4 ватт)
Ставим монитор спиной к нам. Путем прикладывания ленты к корпусу монитора с обратной стороны, отмеряем сколько ленты нам потребуется для каждой из сторон. Я решил делать подсветку только трех сторон, при этом низ оставить без подсветки, т.к. снизу находится не очень красивая подставка. Отмерять ленту нужно с левого нижнего края и по часовой стрелке (не забываем, что необходимо развернуть монитор к нам спиной) Если ваш телевизор или монитор висит на стене, то имеет смысл сделать подсветку по всему периметру. тогда отмерять нужно с центра нижней грани и по часовой стрелке (Так будет проще настроить программное обеспечение на последних этапах. Отрезаем обычными ножницами отрезки необходимой длины по линии отреза, ее вы можете определить по значку ножниц на ней. Резать начинайте со стороны разъемов для подключения контроллера, через них мы и будем подключать нашу подсветку. Места разреза спаяйте тремя проводками, восстанавливая контакт только что разрезанным дорожкам. Начало и конец ленты спаивать вместе не надо. Соблюдайте направление, не перепутайте! На ленте есть стрелочки, которые указывают на правильное направление сигнала от контроллера до конца ленты.

Получится вот так:

После того как вы спаяете все отрезки вместе, можно приклеивать нашу ленту по всему периметру монитора (с левой стороны и по часовой стрелке начиная с разъемов на ленте)

После данной процедуры вы должны получить это:

Далее берем ардуинку и один из комплектных разъемов, тот что с тремя проводами

Красный провод (+5в) припаиваем, либо подключаем к пину +5в на ардуино, белый провод подключаем к земле, а зеленый (центральный) к пину D6

Блок питания подключаем ко второму комплектному разъему с двумя проводами: красный к +5в, белый к минусу. Важно чтобы напряжение питания находилось в пределах 5-5.2в. Длинную ленту лучше запитывать в нескольких точках, чтобы избежать большого падения напряжения на диодах.

Arduino Nano

Вообще данное подключение не совсем правильное, вот тут более подробно про подключение mySKU.pro/blog/aliexpress/28820.html#comment787634

Всё, основная физическая работа закончена.

Скачиваем Arduino IDE http://arduino.cc/download.php?f=/arduino-1.5.8-windows.zipСкачиваем библиотеку FastLED https://yadi.sk/d/XFsSRVMecpKeeСкачиваем скетч для ардуино https://yadi.sk/d/1ne7hKfpcpKia

Пользователь tidehunterrr советует использовать данный скетч mySKU.pro/blog/aliexpress/28820.html#comment817287 если у вас возникает проблема с мерцающими диодами

Распаковываем Arduino IDE в любое удобное место, папку FastLED из архива с файлами внутри кидаем в папку libraries, которая находится в папке c ArduinoIDE. Запускаем файл с arduino.exe это создаст папку «arduino» в папке с документами, в ней создаем папку NeoPixel и кидем в нее наш скетч. Выходим из Arduino IDE.

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

Запускаем arduino.exe.

Видим следующее:

Открываем наш скетч

В меню Сервис-> Плата выбираем нашу наноВ меню Сервис -> Процессор выбираем ATmega328В меню Сервис -> Порт выбираем виртуальный Com порт под которым числится наша ардуинка (обычно тот что не com1)

В месте выделенном желтым цветом указываем общее количество диодов в нашей подсветке (у меня получилось 69).

Жмем вот эту кнопку:Это скомпилирует и загрузит скетч в нашу нано. Во время этой процедуры диодики на ардуине должны интенсивно мигать. После заливки скетча закройте IDE, отключите ардуино от компьютера, подключите её к ленте с помощью нашего разъема на 3 провода и подключите блок питания к ленте. Теперь вновь подключите нано к USB.

Скачайте замечательную программу Prismatik https://github.com/woodenshark/Lightpack/releases/download/5.11.1/PrismatikSetup_5.11.1.exeОт замечательного проекта «Лайтпак» и установите её.

При запуске увидите это:

жмите «Next»

Выбираем Adalight и жмем «Next»

Здесь пишем номер нашего порта, а остальное не трогаем

Затем выбираем имя которое вам нравится

Тут нужно указать общее количество наших диодов

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

В трее рядом с часами появится иконка с изображением солнышка, нажмите на нее правой кнопкой и перейдите в настройки.

Убедитесь, что выбран режим «Захват экрана»

Настройка закончена. Вы можете также поиграться с настройками гаммы, яркости и др. в настройках призматика, но я не буду их разбирать, вы можете изучить их самостоятельно изучив данную инструкцию https://github.com/Atarity/Lightpack-docs/blob/master/RUS/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BA_%D0%9F%D1%80%D0%B8%D0%B7%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0.md

ВСЁ! НАША ПОДСВЕТКА ГОТОВА! Поздравляю!

Потрясающий эффект от подсветки. Монитор стал казаться больше, глаза меньше напрягаются при просмотре видео в темном помещении.

На сборку подсветки у меня ушло 10 минут, еще десять я потратил на настройку софта.

Внимательный читатель в этот момент должен возмутиться и сказать что-нибудь вроде «Минуточку! А где же матерное слово?» а то самое слово у меня вырвалось, когда я начал проводить испытания моей подсветки и выражало оно исключительно восторг от увиденного.

Q&A

Чем оно лучше Ambilight? У меня получилось 69 независимых зон подсветки, а это, насколько мне известно, много больше чем у philips.

Как можно улучшить? Взять диоды мощнее, например такие http://www.aliexpress.com/item/12mm-WS2811-as-WS2801-led-pixel-module-IP68-waterproof-DC5V-full-color-RGB-50pcs-a-string/1022672558.html?s=p

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

Как использовать данную подсветку с android? Вот тут http://youtu.be/3otxXST1d50 парень дает ссылку на свой скрипт для XBMC под андроид. Возможны и другие варианты о которых я не знаю.

Работает ли она с играми? Да работает, но не со всеми. И необходимо отключать все оверлеи (steam, msi afterburner). Есть информация, что программа Ambibox справляется с играми лучше, но у меня она не заработала.

Что еще можно сделать с данной лентой? Можно собрать светодиодную матрицу (дисплей) и транслировать на нее gif с помощью программы glediator, скетч для arduino можно найти на сайте программы.

Внимание! Чем больше зон подсветки, тем больше нагрузка на процессор компьютера. На тестовой сборке на 240 диодов, зависала ардуино.

Обновление:

Замечательные новости! Проблем с производительностью больше нет! Я попробовал восхитительную и бесплатную программу Ambibox www.ambibox.ru/ и вот результаты тестирования производительности на планшете с intel baytrail

как видите даже планшет свободно тянет подсветку с 300 диодами и скорость обновления больше 40fps!У неё есть плагин для xbmc.Также заявлена хорошая совместимость с играми, правда через платную playclaw.

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

Обновление 21.11.14г.

Настройка Ambibox

Я окончательно перешел c Призматик на Ambibox и сейчас расскажу вам как настроить вашу подсветку на работу с ней.

Скачиваем последнюю версию программы отсюда www.ambibox.ru/ru/index.php/%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C_AmbiBox

или отсюда yadi.sk/d/wW1K0eO1dMXeg

и устанавливаем её. В самом конце процесса установки появится вот такое окошко

Выбираем «Adalight» и процесс установки закончен. После установки запустите программу, в трее рядом с часами появится цветной квадратик, нажмите на него два раза, откроется окно настроек. Язык программы можно поменять в настрйках программы, а основные настройки подсветки находятся здесь

А теперь внимание! Вот почему я не смог в первый раз настроить программу? Да потому что настроек-то и нет нигде. Но оказалось, что они есть, но не влезли в окно, поэтому растягиваем за правый нижний край окно и жмем кнопку «Больше настроек»

И в появившихся настройках выбираем порт нашей ардуинки и количество диодов. Программа может перезапуститься при выборе порта. Здесь же можно выбрать режим работы для текущего профиля, и метод захвата, в играх выбирать их игровой режим с playclaw, а для кино режим windows 8 (самый быстрый, по моим ощущениям).При включенных дополнительных настройках жмите кнопку «Показать зоны захвата», появятся цветные квадратики по периметру и дополнительные кнопки в меню, нажимаем «Мастер настройки зон».

В этом конфигураторе очень удобно настраивать большое количество зон, можно выбрать количество сторон с подсветкой, количество диодов по вертикали и горизонтали, задать смещение, выбрать формат области для захвата, размер выреза на нижней грани под подставку, монитор с которого производить захват, и даже формат 3d изображения (если вы выводите 3d сигнал на тв в формате side-by-side или over-under). Настроив, жмите «Применить», затем в главном меню сохраните настройки. Настройки для моей системы на скриншоте.

Все! На этом основная настройка программы закончена, но в этой программе еще ОЧЕНЬ большое количество настроек! Вы можете настроить подсветку регулируя цветовые каналы по отдельности для каждого диода, настроить сглаживание, гамму, динамику, и прочее… Можете создать отдельные профили для широкоформатного кино и переключаться на него сочетанием клавиш или автоматически при открытии программы, и даже включать по открытию винампа режим цветомузыки! Экспериментируйте!

Обновление 22.11.14г.

Настройка на android

Всю ночь пытался запустить подсветку на андроид… забегая вперед скажу, что итог изысканий: -1 ардуина мега, но какие-то результаты все-таки есть: выяснилось, что моя мега абсолютно не хочет стыковаться с лентой, ни на одном пине, ни с одним скетчем, и с программами на windows тоже, а в итоге под утро, основательно «клюя носом» спалил ее по глупости. Но при том что лентой она не могла управлять, все остальное работало нормально данные получались, программами подсветка определялась, именно поэтому я не могу с полной уверенностью утверждать, что подсветка работает.

Как я уже писал в комментариях, драйверов на ардуино нано, а точнее на чип ft232r в ядре моих андроид устройств нет, поэтому сняв с другого проекта «Мегу» и убедившись что мой смартфон корректно её определяет и подмонтировывает ее как ttyACM0, приступил к экспериментам. И да, нам потребуется root.

Для начала я скачал последнюю стабильную версию xbmc для android из этой темы и установил её.

Затем скачал скрипт у этого парня youtu.be/3otxXST1d50к нему потребовался еще модуль libboblight.so, его я нашел в гугле, качал, кажется, отсюда fi.archive.ubuntu.com/xbmc/build-deps/addon-deps/binaries/libboblight/android/

Откройте XBMC и зайдите в настройки -> Аддоны и установите аддон под названием boblight с официального репозитория, затем закройте XBMC

Файловым менеджером откройте папку Android/data/org.xbmc.xbmc/files/.xbmc/addons и замените папку script.xbmc.boblight папкой, которую мы взяли с ютюба. (Эту процедуру я произвел потому что не был уверен, что скрипт установится правильно, если я просто закину скачанную папку).

Файл libboblight.so кидаем в /system/lib/ и для верности я закинул его еще и в Android/data/org.xbmc.xbmc/files/.xbmc/addons/script.xbmc.boblight/resources/lib/

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

Конфигурируется этот скрипт в файле hyperion.config.json в папке скрипта, править его можно конфигуратором HyperCon.jar вот отсюда github.com/tvdzwan/hyperion/wiki/configuration

Дополнительная информация от пользователя andryvlad:

Для тех, кому нужно под Андроид — заработало с платой Arduino Uno R3. Проверял на TV-Box с процессором Amlogic AML8726-M6(MX), Android 4.2.2, Kodi 14.2 Helix с плагином Boblight. Один нюанс — ардуина должна быть собрана по оригинальной схеме (с ATmega16U2 в качестве USB-Com) — она определяется в Андроиде как ttyACM0 (брал такую). Arduino Nano (с FT232RL) увы, не определяется. В утилите HyperCon.jar в первой вкладке прописываем:Device Type: AdalightOutput: /dev/ttyACM0Baudrate: 115200ну и указываем расположение и количество светодиодов (при заливке скетча в ардуино нужно прописать такое же их количество), остальные параметры не трогал. Сформированный файл hyperion.config.json закидываем в папку скрипта. В самом плагине Boblight ничего не настраивал.Теперь при запуске Kodi появляется сообщение, что плагин подключен и лента мигает по очереди тремя цветами (это типа тест такой, отключается в настройках Boblight). Включаем фильм, наслаждаемся! ) На этом пожалуй все… заказал на али новую «мегу» на замену старой и к ней еще uno r3 и буду продолжать эксперименты потом, ну а сейчас я вполне доволен своей подсветкой монитора управляемой через «нано» замечательной программой Ambibox, а и да… товар рекомендую к покупке ;-)

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

Пользовательская галерея

Пользователь vre опубликовал небольшое видео со своей подсветкой (телевизор 42", подсветка 3х сторон, 125 диодов).

Пользователь ventura тоже поделился видео со своей системой

Пользователь chaloc прислал фото своего монитора с лентой ws2812b

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

Пользователь drawde опубликовал видео со своей подсветкой

110 диодов WS2812B + ARUINO Nano + AmbiBox 2.1.7.Играет Foobar а картинку на 50" телевизор выдает плагин MilkDrop2… Видео от пользователя Ernesto

WS2811+Arduino nano, установлено на Samsung 40" 81зона Отличное видео с монитором пользователя l0lder

112 диодов на 27" монике… Телевизор товарища nukezzz

— 120 пикселей на 29" телике (2 метра ровно), — ленту брал с защитой IP65 (отличный вариант).— arduino nano на Ch440 Телевизор пользователя Fedor

Низ не стал делать. Телек 55 дюймов. Красивое видео с подсветкой пользователя Bron888

Собрал уже давно, когда ещё не было этой темы, ох и помучился тогда разыскивая информацию )))Отличная статья и здесь есть новый скетч убирающий глюк с мерцанием диодов, у себя борол с помощью Watchdog ) вот мой результат. Еще один день и еще один довольный пользователь самодельной подсветки. Пользователь lesha_01 прислал видео о своей подсветкой.Сделал уже давно, использую в течение года — всё стабильно работает с Amnibox, метр ленты ровно на 3 стороны пошёл.

crazyrock прислал очень красивое фото своего монитора

Поставил, получилось 118 диодов. Автор красавчик!Использовал эти лоты, питание от блока системникаaliexpress.com/item/10-Pair-3pin-JST-Connector-Male-Female-Cable-Wire-for-WS2811-WS2812B-RGB-LED-Strip/32225174103.htmlaliexpress.com/item/FREE-SHIPPING-2PCS-1pcs-Nano-3-0-ATmega328-Mini-USB-Board-1pcs-USB-Cable/1040679060.htmlaliexpress.com/item/DC5V-4M-240-leds-60-pixel-m-white-PCB-WS2812B-WS2811-IC-WS2812-Digital-5050-RGB/2047744497.htmlAlexNerf тоже поделился своим монитором

Монитор 20", Windows 8, питание от БП системного блока, лента в изоляции Телевизор пользователя Danteвот что у меня получилось. на углах ленту сгибал, питание не дублировал, думаю и не надо. 60' панель, получилось 118 диодов и зон, внизу вырез для подставки. использовал скетч из коментов, т.к. скетч тс мерцает. Монитор пользователя Alber

AVR ATmega32U4 — 1 pcs (~$3)LED-strip ws2812b — 100 pcs (~$9)PSU Xiaomi 5V 10W — 1 pcsLCD Acer 24" — 1 pcs Software — Ambibox

Себестоимость без имевшихся в наличии блока питания и монитора составила 12 баксов.

Снято на смарт с руки в условиях когда монитор стоит на кронштейне в 15 см от тюля белого цвета.

Монитор пользователя Aimo

ТС спасибо за подробный обзор, т.к. в гайде у adafruit некоторые нюансы были не указаны.Ленту соединял уголками на 3 пина, очень удобно.Питание + конденсатор на 1000мкФ 6.3v подключал через коннектор, опять таки очень удобно.Аккуратно подключив все провода и припаяв резистор на 470ом — Arduino nano поместил в «яйцо» от киндер сюрприза. И обновленный вариант настроек

Телевизор пользователя Tauntik

Я сделал себе для 55" из ленты 60 диодов на метр, вышло 233 диода (около 4 метров)

Вы тоже можете присылать свои видео и фото, я с удовольствием добавлю их в обзор

mysku.pro


Смотрите также