Цветомузыка на адресной светодиодной ленте

Цветомузыка на адресной светодиодной ленте

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

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

Особенность этой цветомузыки в том, что ее не нужно подключать к источнику аудио сигнала, так как она получает аудио данные, благодаря встроенному в нее модулю микрофона. Он подключен через усилитель напряжения к АЦП ардуины. Усилитель собран на транзисторе КТ3102, у которого есть зарубежные аналоги.

Для выбора режимов на цветомузыке имеются две кнопки, color и pattern. Кнопка color переключает цветовые схемы, их всего 3, а кнопка patern переключает динамические режимы цветомузыки, их всего 8.

Для настройки чувствительности и яркости установлен потенциометр param, это переменный резистор с изменяемым сопротивлением от 0 до 10 кОм. Он так же подключен к АЦП и в зависимости от его положения происходит программная обработка параметров. Можно модифицировать код и установить вместо потенциометра энкодер, но это уже будет реализовано в другом проекте.

В настройках так же можно выбирать используемое в ленте количество светодиодов 60, 120 или 180 и регулировать частотный фильтр, настроенный на 8 частотных диапазонов, для этого применяется программный фильтр частот на базе алгоритма быстрого преобразования Фурье.

Светодиодная лента основана на полноцветных, управляемых адресных светодиодах ws2812b. Плотность ленты я выбрал 60 светодиодов на 1 метр. На мой взгляд это оптимальное соотношение для многих задач. К питанию светодиодной ленты нужно отнестись серьезно , так как на максимуме она потребляет до 3,6 А на 1 метр. Конечно вероятность такого сценария что цветомузыка включит все светодиоды белым цветом и еще на полную мощность, равна нулю. Но тем не менее лучше сразу приобрести хороший блок питания. Как минимум на 5 Вольт и 5 Ампер.

Схема цветомузыки.
По схеме комментировать особо нечего. Нужно только настроить среднюю точку усилителя на транзисторе КТ3102. Настройка сводится к подбору резистора смещения 200 кОм или резистора нагрузки 1 кОм, нужно добиться половины напряжения питания на коллекторе транзистора или входе A0. Транзистор можно заменить любым n-p-n аналогом.

Потенциометр лучше использовать линейный с сопротивлением от 10 до 50 кОм.

Если Вы в своем проекте будете использовать контроллер Arduino pro mini, то припаяйте сразу керамический конденсатор 0,1 мкФ на 20-й вывод (ARef) микроконтроллера ATmega328.

Скетч для Ардуино ws2812b
Я использовал в своем проекте, код цветомузыки Lumazoid с небольшими модификациями. Оригинальный скетч можно скачать с гитхаба
Еще нужно добавить в папку libraries, используемые в проекте дополнительные библиотеки NeoPixel.h и ffft.h

Если Вы в скетче не прописали параметры своей светодиодной ленты, то их можно изменить. Для этого нажмите кнопку pattern, не отпуская ее включите питание. Вращая потенциометр нужно выбрать плотность используемой светодиодной ленты, по светящимся красным светодиодам: первый — 60, второй — 120 или третий — 180 светодиодов. Для сохранения параметров в EEPROM еще раз нажмите кнопку pattern.

Для регулировки яркости нужно нажать и удерживать кнопку color, после чего включаем питание. По умолчанию в скетче прописано 8 светодиодов которые будут светиться основными цветами. Ручкой потенциометра param можно изменить их яркость. Для сохранения параметров в EEPROM нажмите еще раз кнопку color.

Цветовую схему лучше выбрать 3-ю, так как она наиболее красочная. В этом режиме каждому цвету соответствует свой частотный диапазон. Всего 8 частотных диапазонов, перечисляю их цвета от самого низкого до самого высокого: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый.
Если удерживать кнопки color, pattern и вращать потенциометр param, то можно ограничивать частотный диапазон убирая высокие — средние и так далее до самых низких частот(красный светодиод). Например если Вам нужно что бы цветомузыка реагировала только на низкие звуки, то достаточно оставить только низкий диапазон частот.

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

Решил повторить цветомузыку от Nootropic design USA и chipdip.ru
Пока едут светодиоды и arduino NANO — жду, а тем временем развел платку.

Плату развел под arduino NANO V3.0 ATmega328P




Скетч и библиотека БПФ — компилировать на версии arduino-1.6.8
Скетч
Библиотека

Работает с любыми светодиодами WS2812 / WS2812B, такими как NeoPixel и другими
Поддерживает 60, 120 или 180 светодиодных полос. (видео ниже показано 2m 120 светодиодной полосы)
8 различных шаблонов + случайный режим, который плавно переходит между шаблонами
3 разных цветовых режима с контролем параметров
Контроль чувствительности и яркости
Регулируемый частотный отклик, поэтому вы можете выбрать визуализацию всех частотных диапазонов или только басов и биений
Программируемый с Arduino

Технические подробности
Мощность

Плата Lumazoid требует источника питания 5 В постоянного тока (имеется в нашем магазине). Источник питания должен быть способен подавать ток 2А при использовании люмазоидов с 60 или 120 светодиодами (например, полоса 1 м или 2 м с 60 светодиодами на метр). Прошивка Lumazoid тщательно разработана для создания менее 2 А тока при использовании с 60 или 120 светодиодами. Если вы используете Lumazoid с полосой 180 LED, вам понадобится источник питания, который может обеспечить ток не менее 3A, но вы, вероятно, уже имеете такой источник питания, если у вас есть много светодиодов. В настоящее время мы продаем только блоки питания 2А.

Читайте также:  Пена в топасе что делать

Если вы разрабатываете и кодируете свои собственные визуализации для Lumazoid, убедитесь, что вы учитываете текущие требования к визуализации.

Совместимость с светодиодной лентой
Lumazoid предназначен для светодиодных полосок WS2812 или WS2812B. Они легко доступны у многих поставщиков (включая нас) и иногда называются «NeoPixel», который является брендом Adafruit для полос WS2812B. Иногда светодиодные полосы называются «WS2811», но имя WS2811 относится только к чипу драйвера, а не к интегрированной микросхеме + светодиод. Если у вас есть светодиодная полоса, которую кто-то назвал «WS2811», и у нее есть 3 провода (5V, земля и данные), тогда он должен работать.

Lumazoid НЕ работает с другими типами светодиодных полосок на основе различных технологий, таких как светодиоды APA102 и APA104 (например, полосы Adafruit «DotStar»). Lumazoid работает только с 3-проводными светодиодными полосками на основе технологии WS2812 или WS2812B.

ВАЖНО : Всегда подключайте светодиодную ленту перед подключением питания. Не подключайте светодиодную ленту к питающей плате.

Инструкции по использованию
Начальная настройка
Перед использованием Lumazoid вам может потребоваться настроить его для вашей длины светодиодной полосы и, при необходимости, настроить яркость. По умолчанию Lumazoid сконфигурирован для использования 120 светодиодных полосок (например, полоса 2 м с 60 светодиодами на метр) и установлен для максимальной яркости. Если у вас есть одинарная светодиодная длина или вы хотите уменьшить яркость, следуйте этим инструкциям.

Яркость : удерживайте кнопку цвета при подключении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки параметров измените яркость. По завершении нажмите кнопку цвета еще раз, и ваша конфигурация будет сохранена в памяти. Это будет запомнено, даже если питание отключено.

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

60 светодиодов
120 светодиодов
180 светодиодов
По завершении нажмите кнопку шаблона еще раз, и ваша конфигурация будет сохранена в памяти. Это будет запомнено, даже если питание отключено.

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

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

Шаблоны: Люмазоид имеет различные шаблоны отображения для визуализации пиков аудиосигнала (высокой амплитуды), обнаруженных в музыке. Lumazoid похож на графический эквалайзер, который показывает силу разных полос частот, но Lumazoid отображает информацию гораздо более интересным способом. Существует 8 различных шаблонов для отображения звуковых пиков в музыке. Нажмите кнопку шаблона, чтобы просмотреть их. Белый светодиод указывает, какой шаблон выбран. 9-й шаблон — это «случайный» режим, который обозначается красным светодиодом. Этот режим изменяет шаблон случайным образом со случайным интервалом времени. 8 моделей:

Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.

Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.

Световая полоса: в пиках освещается вся полоса.

Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.

Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.

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

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

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

Читайте также:  Чем отделать потолки на даче

Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.

Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.

Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.
Некоторые рекомендуемые настройки
Dance Party или Dancy Party 2, цветной режим = 1 (двухцветная схема), ручка параметра установлена ​​на полпути, частотная характеристика установлена ​​на более низкие 3 полосы частот. Это создает двухцветные схемы, которые меняются со временем.
Dance Party или Dancy Party 2, цветной режим = 3 (частотные цвета), частотная характеристика, включающая все диапазоны частот. Этот параметр позволяет вам реально визуализировать различные компоненты музыки. Бит будет красным / оранжевым, вокал голубой / синий / пурпурный и т. Д.
Режим случайного шаблона, цветной режим = 1, регулятор параметров установлен на самый высокий уровень. Каждый пик сигнала будет случайным цветом, который хорошо выглядит на множестве шаблонов.
Режим случайного шаблона, цветной режим = 2 (циклический режим радуги), регулятор параметров установлен на средний уровень. Все пики имеют тот же базовый цвет (с некоторой случайной вариацией), а базовый цвет смещается через радугу.
_______________________________
Дополнительно:
Уровень входного сигнал у визуализатора около 1,8В
конденсатор С2 Минусом к источнику звука, плюсом к Ардуино, т.к там на делителе +2.5в
Может кому будет будет полезно. Что бы Atmega328P нормально работал, вывод номер 21 (AREF) надо подключить через конденсатор 0,1 мкФ на землю.
Подключение микрофонного и линейно входа:
Микрофонный, он-же линейный вход на уcилителе TDA1308. Дальше через переменник и коммутируемый миниджек на усилитель мощности PAM8403 и через конденсаторную развязку дальше в схему. Усилки на Алиэкспресе копейки. В итоге имеем линейный вход (он-же микрофонный) и вход от любого источника с наушников. Миниджек дублируем для дальнейшего прохождения сигнала, например на акустический усилитель.

Указать свое количество светодиодов:
// Change parameters based on config value.
void setConfig() <
switch (ledConfig) <
case 0:
N_LEDS = 60; меняем на своё количество светодиодов
break;
case 1:
N_LEDS = 120; меняем на своё количество светодиодов
break;
case 2:
N_LEDS = 180; меняем на своё количество светодиодов
break;
>
>

Изменить бэкграунд:
#define BACKGROUND ((uint32_t) 0x000006) //background color
Указать задержку схлопывания эффекта:
bandPeakDecay = 6, // peak decreases by 1 every bandPeakDecay frames. Larger value is slower decay

Это набор компонентов
(см.спецификацию ниже) − + В корзину

Спецификация набора

То, что у вас уже есть, вы можете удалить в корзине.

Наименование Цена Кол-во
Кер.ЧИП конд. 0.1мкФ,Y5V 50В, +80-20%,0603 4 руб. 56
К10-17Б имп. 0.1 мкФ X7R,10%, 0805, Конденсатор керамический выводной 5 руб. 1
ECAP (К50-35), 10 мкФ, 16 В, 105°C, 5×11, B41828A4106M007, Конденсатор электролитический алюминиевый 3 руб. 1
CF-100 (С1-4) 1 Вт, 2 кОм, 5%, Резистор углеродистый 4 руб. 2
CF-100 (С1-4) 1 Вт, 4.7 кОм, 5%, Резистор углеродистый 4 руб. 2
CF-100 (С1-4) 1 Вт, 100 кОм, 5%, Резистор углеродистый 4 руб. 2
16K1-B10K, L20KC, 10 кОм, Резистор переменный 50 руб. 2
WS2812B (Neopixel), Светодиод SMD 5050 RGB с пиксельной адресацией 23 руб. 64
PBS-3R (DS-1024 — 1×3 — R), Гнездо на плату 2.54мм 1х3 угловое 8 руб. 4
PLS-3 (DS1021-1×3), Вилка штыревая 2.54мм 1×3 прямая тип1 7 руб. 2
PLS-3R (DS1022-1×3-R), Вилка штыревая 2.54мм 1х3 угловая (тип D1) 8 руб. 4
KLS7-TS3601-4.3-180 (TC-0120), Кнопка тактовая 6х3.5мм, h=4.3 мм (SWT-1) 7 руб. 2
KLS2-104-5.00-02P-4S, Клеммник винтовой 2-контактный, 5мм, прямой 43 руб. 1
Печатная плата Neopixel stick 16, Печатная плата с разводкой, FR4 7.5х117.7мм (1.5мм, 18мкм) 55 руб. 4
Бузина, Программируемый контроллер на базе ATmega328P-AU, CP2102 (Arduino Nano) 500 руб. 1

С наступающим! Приближается Новый год, а значит, пора срочно создавать настроение! Ну и как всегда в это время года рождаются десятки электронных схем различных цветомузыкальных установок. Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.
Чип и Дип является крупнейшим поставщиком адресных светодиодов WS2812b на российский рынок. Поэтому мы хотим показать вам очень простую и удивительную цветомузыку, которую работает на Arduino. Назовем её — визуализатор звука!

Читайте также:  Приготовление горлодера в домашних условиях

Инструкция

Схема очень простая!

Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180. А впрочем, любое количество.
В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Основную часть скетча писал Майкл Крампас, парни из Чип и Дипа добавили функционал, ещё одна часть кода взята из проекта Piccolo компании Adafruit.
В Adafruit также писали библиотеку для светодиодов neopixel. А библиотека быстрого преобразования Фурье (FFT) написана уважаемым ChaN, это библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.
Сам скетч и библиотеки ffft.h и Adafruit_NeoPixel.h нужно скачать в подвале этой страницы и распаковать в папку с другими библиотеками Arduino. Например C:Program Files (x86)Arduinolibraries
Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч в плату Arduino и наслаждайтесь шоу.
Это всего лишь развлечение!

Настройки

В момент первого включения нужно сделать пару настроек:
Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.
Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:
1=60 светодиодов
2=120 светодиодов
3=180 светодиодов
По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.

Алгоритмы

Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.
Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.
Световая полоса: в пиках освещается вся полоса.
Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.
Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.
Вспышки: пики сигналов отображаются в виде светодиодной вспышки в случайном месте. Начальный цвет белый, а затем исчезает через другой цвет.
Светлячки: пики сигналов отображаются как одиночные светодиоды в случайном месте, и они перемещаются влево или вправо и исчезают. Их скорость зависит от величины сигнала.

Цветовые схемы

Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.
Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.
Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.
Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.

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

Ещё одна композиция

Эпилог или разбор полётов
1. Как изменить подсветку в паузах?
2. Можно ли изменить динамику?
3. Как подключить ленту с количеством светодиодов отличным от 60/120/180?

Это открытый проект! Лицензия, под которой он распространяется – Creative Commons — Attribution — Share Alike license.

Ссылка на основную публикацию
Adblock detector