Цветомузыка на arduino
С наступающим! Приближается Новый год, а значит, пора срочно создавать настроение! Ну и как всегда в это время года рождаются десятки электронных схем различных цветомузыкальных установок.
Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.
Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!
Инструкция
Схема очень простая!Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из 180 светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180.
В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Скетч писал Майкл Крампас, парни из Чип и Дипа добавили функционал, а библиотека для светодиодов и быстрого преобразования Фурье (FFT) написана в Адафрут для проекта Piccolo. Библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.
Сам скетч и библиотеку FFT нужно скачать и .
Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч и наслаждайтесь шоу.
Это всего лишь развлечение!
В момент первого включения нужно сделать пару настроек :
Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.
Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:
1=60 светодиодов
2=120 светодиодов
3=180 светодиодов
По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.
Алгоритмы
Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.Танцы минус:
то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.
Световая полоса: в пиках освещается вся полоса.
Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.
Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.
Вспышки: пики сигналов отображаются в виде светодиодной вспышки в случайном месте. Начальный цвет белый, а затем исчезает через другой цвет.
Светлячки: пики сигналов отображаются как одиночные светодиоды в случайном месте, и они перемещаются влево или вправо и исчезают. Их скорость зависит от величины сигнала.
Цветовые схемы
Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.
Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.
Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.
Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.
Ещё одна композиция
Парни! И дамы конечно. Я очень хочу, чтобы вы успели сделать эту простую конструкцию к новогоднему празднику. Не пожалеете! Гости будут в шоке!
С наступающим 2018 годом!
Добавлено 15.12.2017 Эпилог или разбор полётов
1. Как изменить подсветку в паузах?
2. Можно ли изменить динамику?
3. Как подключить ленту с количеством светодиодов отличным от 60/120/180?
Плюс опубликована обновленная схема. Не волнуйтесь, добавили всего один резистор.
Осталось две недели до Нового года. Успеете собрать?
Добавлено 09.06.2018
Сделал настройки подсветки:
скетч и схема .
Пользуемся так.
Фоновая подсветка:
В паузах включается фоновая подсветка т.е вся линейка будет светится выбранным вами цветом и с выбранной яркостью.
Цвет: установите ручку потенциометра PARAM2 в среднее положение и один раз нажмите кнопку Background. Светодиодная линейка зажжется. Вращайте потенциометр PARAM2, цвет линейки будет меняться от красного до фиолетового. Выберите цвет и ещё раз нажмите кнопку Background.
Яркость: установите потенциометр в минимальное положение (ручку до упора по часовой) и нажмите кнопку Background. Линейка погаснет. Медленно вращая ручку потенциометра PARAM2 выберите требуемую яркость подсветки и ещё раз нажмите кнопку Background. Значения яркости запишется в память микроконтроллера.
С наступающим! Приближается Новый год, а значит, пора срочно создавать настроение! Ну и как всегда в это время года рождаются десятки электронных схем различных цветомузыкальных установок.
Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.
Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!
Инструкция
Схема очень простая!Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из 180 светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180.
В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Скетч писал Майкл Крампас, парни из Чип и Дипа добавили функционал, а библиотека для светодиодов и быстрого преобразования Фурье (FFT) написана в Адафрут для проекта Piccolo. Библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.
Сам скетч и библиотеку FFT нужно скачать и .
Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч и наслаждайтесь шоу.
Это всего лишь развлечение!
В момент первого включения нужно сделать пару настроек :
Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.
Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:
1=60 светодиодов
2=120 светодиодов
3=180 светодиодов
По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.
Алгоритмы
Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.Танцы минус:
то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.
Световая полоса: в пиках освещается вся полоса.
Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.
Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.
Вспышки: пики сигналов отображаются в виде светодиодной вспышки в случайном месте. Начальный цвет белый, а затем исчезает через другой цвет.
Светлячки: пики сигналов отображаются как одиночные светодиоды в случайном месте, и они перемещаются влево или вправо и исчезают. Их скорость зависит от величины сигнала.
Цветовые схемы
Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.
Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.
Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.
Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.
Ещё одна композиция
Парни! И дамы конечно. Я очень хочу, чтобы вы успели сделать эту простую конструкцию к новогоднему празднику. Не пожалеете! Гости будут в шоке!
С наступающим 2018 годом!
Добавлено 15.12.2017 Эпилог или разбор полётов
1. Как изменить подсветку в паузах?
2. Можно ли изменить динамику?
3. Как подключить ленту с количеством светодиодов отличным от 60/120/180?
Плюс опубликована обновленная схема. Не волнуйтесь, добавили всего один резистор.
Осталось две недели до Нового года. Успеете собрать?
Добавлено 09.06.2018
Сделал настройки подсветки:
скетч и схема .
Пользуемся так.
Фоновая подсветка:
В паузах включается фоновая подсветка т.е вся линейка будет светится выбранным вами цветом и с выбранной яркостью.
Цвет: установите ручку потенциометра PARAM2 в среднее положение и один раз нажмите кнопку Background. Светодиодная линейка зажжется. Вращайте потенциометр PARAM2, цвет линейки будет меняться от красного до фиолетового. Выберите цвет и ещё раз нажмите кнопку Background.
Яркость: установите потенциометр в минимальное положение (ручку до упора по часовой) и нажмите кнопку Background. Линейка погаснет. Медленно вращая ручку потенциометра PARAM2 выберите требуемую яркость подсветки и ещё раз нажмите кнопку Background. Значения яркости запишется в память микроконтроллера.
Дополнительно
-
В: Купил ленту, на ней контакты G, R, B, 12. Как подключить?
О: Это не та лента, можешь выкинутьВ: Прошивка загружается, но выползает рыжими буквами ошибка “Pragma message….”
О: Это не ошибка, а информация о версии библиотекиВ: Что делать, чтобы подключить ленту своей длины?
О: Посчитать количество светодиодов, перед загрузкой прошивки изменить самую первую в скетче настройку NUM_LEDS (по умолчанию стоит 120, заменить на своё). Да, просто заменить и всё!!!В: Сколько светодиодов поддерживает система?
О: Версия 1.1: максимум 450 штук, версия 2.0: 350 штукВ: Как увеличить это количество?
О: Варианта два: оптимизировать код, взять другую библиотеку для ленты (но придётся переписать часть). Либо взять Arduino MEGA, у неё больше памяти.В: Какой конденсатор ставить на питание ленты?
О: Электролитический. Напряжение 6.3 Вольт минимум (можно больше, но сам кондер будет крупнее). Ёмкость – минимум 1000 мкФ, а так чем больше тем лучше.В: Как проверить ленту без Arduino? Горит ли лента без Arduino?
О: Адресная лента управляется по спец протоколу и работает ТОЛЬКО при подключении к драйверу (микроконтроллеру) -
МОЖНО СОБРАТЬ СХЕМУ БЕЗ ПОТЕНЦИОМЕТРА! Для этого параметру POTENT (в скетче в блоке настроек в настройках сигнала) присваиваем 0. Будет задействован внутренний опорный источник опорного напряжения 1.1 Вольт. Но он будет работать не с любой громкостью! Для корректной работы системы нужно будет подобрать громкость входящего аудио сигнала так, чтобы всё было красиво, используя предыдущие два пункта по настройке.
-
Версию 2.0 и выше можно использовать БЕЗ ИК ПУЛЬТА, режимы переключаются кнопкой, всё остальное настраивается вручную перед загрузкой прошивки.
-
Как настроить другой пульт?
У других пультов кнопки имеют другой код, для определения кода кнопок используйте скетч IR_test (версии 2.0-2.4) или IRtest_2.0 (для версий 2.5+), есть в архиве проекта. Скетч шлёт в монитор порта коды нажатых кнопок. Далее в основном скетче в секции для разработчиков есть блок дефайнов для кнопок пульта, просто измените коды на свои. Можно сделать калибровку пульта, но честно уже совсем лень. -
Как сделать два столбика громкости по каналам?
Для этого вовсе необязательно переписывать прошивку, достаточно разрезать длинный кусок ленты на два коротких и восстановить нарушенные электрические связи тремя проводами (GND, 5V, DO-DI). Лента продолжит работать, как одно целое, но теперь у вас есть два куска. Само собой, аудио-штекер должен быть подключен тремя проводами, а в настройках отключен моно режим (MONO 0), а количество светодиодов должно быть равно суммарному количеству на двух отрезках.
P.S. Посмотри первую схему в схемах! -
Как сбросить настройки, которые хранятся в памяти?
Если вы доигрались с настройками и что то пошло не так, можно сбросить настройки на “заводские”. Начиная с версии 2.4 есть настройка RESET_SETTINGS , ставите её 1, прошиваетесь, ставите 0 и снова прошиваетесь. В память будут записаны настройки из скетча. Если вы на 2.3, то смело обновляйте до 2.4, версии отличаются только новой настройкой, которая никак не повлияет на работу системы. В версии 2.9 появилась настройка SETTINGS_LOG , которая выводит в порт значения хранящихся в памяти настроек. Так, для отладки и понимания.
Внимание! Новая программа не совместима со старыми скетчами.
Внешний вид новой программу ЦМУ
Программа поддерживает цветомузыкальные и динамические режимы работы.
В цветомузыкальном режиме для формирования цветовых эффектов используются выходы 19 цифровых полосовых фильтров. Значения на выходе цифровых фильтров в постоянном темпе передаются персональным компьютером и содержатся в массиве readData.
В динамическом режиме цветовые эффекты выполняются в темпе задаваемом программируемой задержкой. Для выполнения динамических программ подключение к ПК не требуется.
В программе можно выбрать одну из 4-х цветомузыкальных программ или одну из 8-ми динамических. Не все программы реализованы в прилагаемом скетче контроллера ленты. Я реализовал 3 цветомузыкальные и 4 динамические подпрограммы. Остальные программы вы можете составить сами.
Цветомузыкальные программы:
Радуга;
МИКС;
Двутавр;
Новая - оставлена под вашу реализацию.
Динамические программы:
1 - theaterChaseRainbow - из примеров к библиотеке Adafruit_NeoPixel, темп задается ползунком;
2 - rainbowCycle - из примеров к библиотеке Adafruit_NeoPixel, темп задается ползунком;
3 - мерцающие огни
4, 5, 6 - разные варианты бегущих огней
7..8 - оставлены под вашу реализацию.
Установка цвета всей ленты осуществляется выбором цвета на цветном поле;
Динамические программы могут выполняться автономно, без подключения к ПК. Если вы хотите использовать контроллер ленты автономно вам будет необходимо подключить к одному или нескольким цифровым входам платы arduino кнопки, а к одному из аналоговых входов потенциометр. Кнопки будут использоваться для переключения номера программы, а потенциометр для изменения параметра программы (темп, яркость, цвет). Подключение кнопок и потенциометра к arduino можно найти в стандартных примерах. Напишите и внесите в скетч контроллера ленты код, изменяющий номер подпрограммы prog и значения параметра param , в зависимости от нажатых кнопок и положения потенциометра. Можно для переключения динамических программ использовать ИК приёмник и пульт от телевизора. Подключение ИК приёмника к arduino также можно найти в стандартных примерах.
Для реализации цветомузыкальных программ у вас есть выходы 19 полосовых фильтров. Вы можете обрабатывать их как вам угодно для получения красивой цветомузыкальной программы. Вы можете увеличить количество программ используя ползунок изменения параметра (250 состояний) для изменения цветовой программы.
Оставляйте в комментариях к статье код своих красивых динамических и цветомузыкальных подпрограмм, чтобы каждый, кому она понравится, мог добавить её в свой скетч.
Творите, выдумывайте, пишите, делитесь и каждый сможет сделать такое устройство, какое пожелает.
Скетч для варианта подключения к компьютеру «COMtoLED.ino»:
Дополнительная информация
#include Скетчи для беспроводного варианта: Дополнительная информация #include Скетч для модуля ленты «RFtoLED.ino»:
Добавить в избранное
Понравилось
+65
+147
Скетч для модуля подключаемого к компьютеру «COMtoRF.ino»:
#include
Работа программ Радуга, МИКС, Двутавр: