120-Adjusty strip — продвинутый индикатор уровня на WS2812B

Автор: | 05.08.2015

Продолжая тему «Подстраиваемого светодиода» и преследуя цель опробовать в деле умную светодиодную ленту на базе WS2812B (NeoPixels) родилось новое устройство — Adjusty strip — продвинутый индикатор уровня!

Ленту на пробу мне предоставил магазин DiyLab.com.ua Если Вам понравится устройство и Вы захотите его повторить, то ленту в Украине можно приобрести в этом-же магазине — ссылка на ленты. Для России ее можно приобрести еще у одного моего партнера TIXER.RU (обещались в ближайшее время пополнить ассортимент).


Переходим к конструкции.

Схема элементарна – на несколько деталек и ATtyni13. Надеюсь, знаете, как записать в МК прошивку? Нет? Тогда Вам сюда.

Длина ленты по умолчанию — 30 пикселей. Количество пикселей отображения можно изменить, указав в исходнике значение константы «Number_Pixels» равное реальному количеству пикселей  (эффекты автоматически пересчитаются под новое значение).

Несмотря на простую схему, индикатор уровня получился интересный! С большим выбором вариантов отображения линейки. В устройстве задействована специальная палитра, стилизованная под пламя. Соответственно, каждому значению уровня будет соответствовать свой цвет из палитры:


Устройство
– визуально отображает на ленте уровень входного сигнала. Это, своего рода, большой светодиодный столбик.

Индикатор умеет работать в 9-ти режимах отображения входного уровня. Для перебора режимов нужно нажимать на кнопку «Режим». Выбранный режим запоминается в энергонезависимую память и при повторном старте устройства будет автоматически активирован.

Режимы:
0 – Off – лента выключена
1 – Simple – обычная одноцветная полоса
2 – Bar – линейка от синего к белому по палитре
3 – Inv_Bar – линейка от белого к синему по палитре
4 – Color – вся линейка подсвечивается одним цветом в зависимости от длины
5 – Point – цветная точка, отображающая уровень
6 – Solid_Color – все пиксели горят цветом, зависящим от величины уровня
7 – Fire – стилизованный огонь — чем больше уровень, тем больше пламя
8 – Chaos – хаотичные засветки пикселей (изменяются от уровня)
9 – Scroll – сдвиг уровня по полосе

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

Так как устройство элементарно, для демонстрации его возможностей я собрал его на макетке, за пару минут:

И вот что получилось:



Материалы для сборки устройства:
120-Adjusty_WS2812B.zip - Материалы для сборки устройства

Область применения индикатора уровня Adjusty strip:

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


Обновление 2016
viktor001 проделал большую работу по подключению звука к устройству. Получилось здорово. Прошивка тоже немного изменена — смотрите в архиве.


Схема к индикатору получилась до безобразия простой и собственно соответствует поставленной задаче — простата, легкодоступные компоненты и 100 процентная повторяемость. При правильной сборке работает сразу. Вся настройка сводится к выставлению уровней компрессии и выхода микрофонного усилителя. Главное и единственное требование — не выставлять усиление по максимуму. Наличие компрессора не является таблеткой от всех болезней и при работе от микрофона всё же имеет свои границы регулирования. Можно конечно «зажать» сигнал регулятором компрессии, но тогда страдает подвижность индикации. Лучшим средством является предусмотренный регулятор усиления Ку на первом операционнике фильтра нч. При работе от линейного входа, компрессор замечательно справляется без дополнительных регулировок.
С питанием схемы всё ещё проще. Выбор блока питания исходил от требования ленты WS2812B, точнее от потребления тока, плюс небольшой запас. 10 вольт получаем через DC/DC преобразователь.

Схема к индикатору получилась до безобразия простой и собственно соответствует поставленной задаче — простата, легкодоступные компоненты и 100 процентная повторяемость. При правильной сборке работает сразу. Вся настройка сводится к выставлению уровней компрессии и выхода микрофонного усилителя. Главное и единственное требование — не выставлять усиление по максимуму. Наличие компрессора не является таблеткой от всех болезней и при работе от микрофона всё же имеет свои границы регулирования. Можно конечно «зажать» сигнал регулятором компрессии, но тогда страдает подвижность индикации. Лучшим средством является предусмотренный регулятор усиления Ку на первом операционнике фильтра нч. При работе от линейного входа, компрессор замечательно справляется без дополнительных регулировок.С питанием схемы всё ещё проще. Выбор блока питания исходил от требования ленты WS2812B, точнее от потребления тока, плюс небольшой запас. 10 вольт получаем через DC/DC преобразователь.

Кстати, что бы первые пиксели не светились в паузе между треками, на вход МК надо повесить резистор на 100к относительно массы. Я когда рисовал схему упустил этот момент.


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

vu_meter_by_viktor001.zip - Индикатор уровня от viktor001


(Visited 6 470 times, 13 visits today)

120-Adjusty strip — продвинутый индикатор уровня на WS2812B: 77 комментариев

  1. Juris

    Молодец, отличный модуль! Тем более что тут море возможностей развернутся фантазией и по применению, и по возможному (я так полагаю) дальнейшему развитию самого устройства по функционалу. Спасибо за разработку!

  2. Malinarg

    Всё!!! Это была последняя соломинка, сломавшая хребет верблюду моих сомнений — пошёл на «алиэкспресс» за WS2812B.
    Потрясающе просто! Спасибо!

  3. vpashko

    Какой хребет?Какой верблюд? не курите разную х…ю братва, лучше быстрей в магазин(радиорынок) и собираем данный девайс….

  4. serega23

    Здорово получилось.

  5. 4yk4a

    Система Google по проверке безопасности сайтов недавно обнаружила на http://www.getchip.net вредоносное ПО… ???

  6. GetChiper Автор записи

    Спасибо, что заметили.
    Действительно, гугл часть драйверов USBtiny стал считать «Неопознанное вредоносное ПО» — хотя они на сайте уже лет пять…

    В любом случае удалил.

  7. dimaris

    Здорово получилось! И главное на народном ATtiny13. А интересно получится это сделать на WS2801? Просто еще год назад купил гирлянду на этих микросхемах по незнанию что более современные есть.

  8. GetChiper Автор записи

    Можно и на WS2801 сделать. По даташиту я понял, что принцип передачи то-же, только нужно еще и тактовый сигнал передавать.
    А сколько пикселей в гирлянде?

  9. dimaris

    В гирлянде 25 пикселей, сделана из 12 миллиметровых RGB светодиодов.

  10. GetChiper Автор записи

    Попробую по свободе сделать вариант для WS2801

  11. dpd69

    Привет!Хочу сделать тахометр в машине.Как будеть выглядит схема?У меня машина Fiat Uno,’89 год.Могу взять сигнал с катушки зажигания.У меня плата с 16 светодиодов.Если можно,сделайте прошивка для 16 LED. http://www.ebay.co.uk/itm/WS2812-5050-RGB-Built-in-LED-8-Colorful-LED-Module-for-Arduino-DE-/281755867234?hash=item4199f55862-заказал 2 шт. и сделал последователно.Спасибо большое.

  12. GetChiper Автор записи

    Какой сигнал идет на техометер? Обычно это импульсы и нужно знать их период в зависимости от скорости (количество импульсов на метр)

    Количество пикселей не проблема поменять

  13. dpd69

    Привет.Думаю,что 2 имп на 1 оборот.Двигатель 4-х тактном 4-х цилиндровом,бензин.

  14. GetChiper Автор записи

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

  15. P.A.L.

    Привет всем. Хорошая задумка насчет тахометра.

    GetChiper :
    Какой сигнал идет на техометер? Обычно это импульсы и нужно знать их период в зависимости от скорости (количество импульсов на метр)

    Прошу прощения, что влез в тему, но вижу что Евгений немного запутался в скоростях и метрах. Поэтому хочу поправить, тахометр замеряет частоту вращения коленчатого вала (кол-во оборотов в минуту) и соответственно нужно замерять частоту вращения двигателя. Для этого достаточно измерить частоту импульсов (в диапазоне от 0 до 133 Гц, что соответствует частоте вращения от 0 до 7980 об/мин) от коммутатора или взять сигнал с одного из высоковольтных проводов (с помощью индукционного датчика). Обычно у 4х цилиндрового двигателя на выходе с коммутатора идет два импульса на один оборот, то для определения частоты вращения двигателя нужно полученную частоту поделить на два и умножить на 60 (секунд), что и даст кол-во оборотов в минуту. Линейку с 16ю с.д. можно разбить по 500 об/мин на один с.д., что даст шкалу от 0 до 7980(8000)об/мин. А т.к. максимальные допустимые обороты для данного двигателя примерно 5000 об/мин, то после 5000 желательно шкалу сделать красным цветом.
    P.S. надеюсь информация была полезной.

  16. P.A.L.

    Ах да, забыл дописать, что если брать сигнал с высоковольтного провода, то полученную частоту нужно умножить на два.

  17. GetChiper Автор записи

    P.A.L. :
    Прошу прощения, что влез в тему, но вижу что Евгений немного запутался в скоростях и метрах.

    Точно! 🙂 пишу «тахометр» а сам думаю про спидометр…
    …в диапазоне от 0 до 133 Гц… этого достаточно чтобы получить шкалу тахометра.

    доделаю текущее устройство и сделаю модификацию для этого устройства.

  18. tig-rrr

    Здравствуйте. Спасибо за ВАШИ труды. Очень интересно и познавательно. Увидев Ваши наработки с «умными лентами» подумал , а нельзя ли сделать табло из лент..? Погуглив увидел, что есть и матрицы из WS2812B. И вот интересная работка -https://www.youtube.com/watch?v=1umAAvQJFRQ .Возможно-ли из ардуинки нечто подобное сотворить??

  19. Juris

    @tig-rrr:
    Собирать матрицы из кусков умных лент сейчас «модно». Куски нужной размерности устанавливаютса как бы «зиг-загом», технически это всё та же единая лента, куски последовательно друг другу. Управлять можно Ардуиной (или чем по сильнее, если лента длинная, Teensy, и.т.п.), а програмно есть несколько безплатных управляющих программ для таких художеств. Сразу помню «gLEDiator», «Jinx!», но наверное есть ещё другие, в том числе платные.
    http://www.solderlab.de/index.php/software/glediator
    http://www.live-leds.de/

    Вот цытата про «gLEDiator»:
    » … Since LEDs with integrated PWM controller become more and more popular (and cheaper) many people were asking for steering these guys with Glediator. And here we go: We made a sketch for all kind of Arduino boards (UNO, Leonardo, Mini, Micro, Mega, etc.) that receives serial data and feeds stripes / matrices of WS2811/WS2812 pixels. You can download the sketch here. …»

    Успехов! 🙂

  20. Fantomas

    Здравствуйте, коллеги! Автору за разработку спасибо. Сегодня повторил конструкцию. Все работает. Вот только если на вход подать звук то как то не очень реагирует… Видимо на вход нужно подавать высокий уровень (до 5 Вольт) Можно ли сделать что то так же простое, например поставить транзистор для усиления? То есть звуковой сигнал подавать на базу, а +5Вотльт через коллектор -> эмиттер пойдет на вход МК? Или нужно что то посерьезнее например на операционнике? Спасибо.

  21. GetChiper Автор записи

    Да, рабочий диапазон входов 0-5 вольт. Соответственно нужно звук усиливать.
    Подойдет любой способ усиления, вплоть до схемы с одним транзистором.
    Как вариант — подавать на схему звук который идет на динамики (после штатного усилителя).

  22. henc

    GetChiper, доброго дня. Очень прошу сделать модификацию прошивки под 4 пикселя WS2812B , есть идея сделать брошь ребенку на утренник, уж больно красиво ваша конструкция работает, а исходник я править не умею 🙁

  23. GetChiper Автор записи

    dpd69 :

    Привет!Хочу сделать тахометр в машине.Как будеть выглядит схема?У меня машина Fiat Uno,’89 год.Могу взять сигнал с катушки зажигания.У меня плата с 16 светодиодов.Если можно,сделайте прошивка для 16 LED. http://www.ebay.co.uk/itm/WS2812-5050-RGB-Built-in-LED-8-Colorful-LED-Module-for-Arduino-DE-/281755867234?hash=item4199f55862-заказал 2 шт. и сделал последователно.Спасибо большое.

    У вас само устройство собрано? Сигнал с тахометра имеется возможность запускать на устройство (сигнал 0-5 вольт)?

  24. GetChiper Автор записи

    henc :

    GetChiper, доброго дня. Очень прошу сделать модификацию прошивки под 4 пикселя WS2812B , есть идея сделать брошь ребенку на утренник, уж больно красиво ваша конструкция работает, а исходник я править не умею :(

    Готово http://www.forum.getchip.net/viewtopic.php?f=24&t=642
    Правда не представляю как оно будет выглядеть всего на 4 светодиодах…
    Модификацию не тестировал в железе. Если что, отписывайтесь на форуме – будем править.
    Если хорошо получится, сделайте фотки, а лучше видео.

  25. henc

    @GetChiper
    Спасибо, спасибо, спасибо. Отчитываюсь. МК — 6 ножка на землю, 7 — через кнопку на землю, 3 — висит в воздухе. Питание 5 вольт от резервной зарядки для телефона, с нее так и планировал питать устройство. Отлично работает, конечно с учетом специфики что устройство создавалось как индикатор уровня сигнала. файл прошит — main.hex. Отдельное спасибо от всех моих девочек!!!!!!!
    Видео не понятно как приложить к сообщению.

  26. dpd69

    Нет,не собрано,потому что не знаю как будет выглядеть схема.

  27. GetChiper Автор записи

    henc :

    @GetChiper
    Видео не понятно как приложить к сообщению.

    можно ссылку оставить на форуме в теме мода или скинуть мне на мыло (выдео или ссылку). Мыло здесь http://www.getchip.net/o-proekte/

  28. GetChiper Автор записи

    dpd69 :

    Нет,не собрано,потому что не знаю как будет выглядеть схема.

    Ну для начала нужно определится, что там за импульсы идут на тахометер. Я так подозреваю уровень у них будет 12 вольт. Нужно будет ограничивать до 5 вольт (по простому резистор + стабилитрон).

  29. GetChiper Автор записи

    Если есть желающие соорудить себе подсветку тахометра на базе устройства этой статьи — прошу отписаться на форуме http://www.forum.getchip.net/viewtopic.php?f=8&t=644

    нужно на чем то устройство обкатывать!

  30. Fantomas

    Что то устройство начало глючить… Работало нормально, а теперь:
    1. Иногда зависает
    2. Проскакивают режимы.
    3. Выборочно могут не гореть 3 светодиода причем всегда разные.
    Собрано и работает в дэмо режиме на макетке…
    Под подозрением МК, перепрошивал дважды, не помогло, буду копать дальше…

  31. GetChiper Автор записи

    Долго работало нормально?
    Проскакивают режимы — это когда кнопку жмешь а выбирается не следующий а какойто другой?
    3 светодиода не светятся постоянно при работающем эффекте? или прыгают по ленте?

    Питание нормальное? Фильтруется? Мощности хватает (напряжение не проседает)?

  32. henc

    @Fantomas
    Смею дать рекомендации.
    1 Между 4 и 8 ногой конденсатор 0,1 мкф керамика.
    желательно рядом поставить электролит 220 х 10 вольт, т к макетка и само собой длинные провода как я думаю
    2 Поставьте 39 ом на вход D ленты и желательно так же поставить электролит на входе питания ленты.
    Попробуйте, должно помочь.

  33. Fantomas

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

    Это происходит на режимах где задействована почти вся лента, то есть работает максимальное количество диодов…

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

    Спасибо друзья!
    О результатах отпишусь.

    А вот кстати снял небольшое видео, как работает третий эффект.

  34. Fantomas

    GetChiper :
    Питание нормальное? Фильтруется? Мощности хватает (напряжение не проседает)?

    Работало целый день. БП импульсный 1А точно тянет. Шуметь не должен, будет время посмотрю его осцилллографом.

    Вот видео https://youtu.be/yll_XyrDHcs

  35. GetChiper Автор записи

    В каких режимах это происходит? Или во всех если линейка заполняется?

    Кстати, фьюзы прошиты правильно? Если частота внутреннего задающего генератора не установлена на 9.6МГц — не будут соблюдаться временные интервалы вывода на ленту.

  36. Fantomas

    Друзья! Проблема решилась заменой МК… вот так.

  37. henc

    Поздравляю с избавлением от головной боли

  38. viktor001

    Очень хочется себе такую собрать, но стерео. В програмировании к сожалению почти никак. Не могли вы хотя бы подсказать как это сделать. Да, и в какой проге исходник написан? Хочу светодиодов уменьшить до 20.

  39. GetChiper Автор записи

    Программа http://algrom.net/russian.html
    количество светодиодов не проблема меньше сделать — там есть константа, которой нужно задать новое значение.
    Стерео тоже не проблема будет сделать.

  40. viktor001

    Спасибо. Скачал прогу но, что-то пока не очень понятно как в ней работать, буду разбираться. Количество пикселей вроде изменил на 20 но пока нет на чём проверить. Хотел в протеусе обкатать но там нет ws2812. А памяти тиньки хватит для стерео?

  41. GetChiper Автор записи

    Для стерео памяти хватит — там ничего такого объемного.
    Как появятся пиксели — я помогу сделать модификацию.

  42. viktor001

    Адресуемую RGB ленту я уже заказал. Сейчас определюсь на каком операционнике будет предварительный усилитель и можно рисовать схему и платку. Аудио вход МК будет РВ3 и РВ4. А вот с выходом как? Один на оба канала? Тут наверно надо знать как это программно реализовано.

  43. dimaris

    А что мешает сделать отдельную ленту на каждый канал? Или ATtiny13 подорожала?

  44. GetChiper Автор записи

    @viktor001
    Выхода тоже лучше делать 2 — РВ0 и РВ1

    @dimaris
    Тоже вариант. Каждый канал — свое устройство.

  45. viktor001

    Выход РВ0 и РВ1 — придётся пожертвовать режимом «ДЕМО». Жалко, полезная функция. Вариант с двумя МК расматривался сразу. Дело вовсе не в количестве МК или их стоимости, просто это как-то неправильно. Насколько синхронным к примеру будет включение схемы и переключение режимов?

  46. GetChiper Автор записи

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

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