Невероятно эффектная цветомузыка на Arduino и светодиодах. Цветомузыка на ардуино уно с микрофоном


Невероятно эффектная цветомузыка на Arduino и светодиодах / Geektimes

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

Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по 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? Плюс опубликована обновленная схема. Не волнуйтесь, добавили всего один резистор. Осталось две недели до Нового года. Успеете собрать?

geektimes.ru

Светомузыка на Arduino [Амперка / Вики]

Проекты на Arduino и Slot Shield

Устрой светомузыкальное шоу и прокачай домашнюю вечеринку. Технокотик слушает музыку аналоговым микрофоном датчика шума и зажигает сверхъяркие «Пираньи» в зависимости от частоты и амплитуды звуковой волны — красный диод реагирует на низкие частоты, зелёный на средние, жёлтый на высокие, а синий задаёт ритм.

Для обработки звука мы воспользовались быстрым преобразованием Фурье, поэтому в скетче используется библиотека FFT. Не забудьте скачать её.

Видеоинструкция

Что потребуется

Как собрать

Установите Troyka Slot Shield на Iskra Neo

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

Вставьте два сверхъярких светодиодиода «Пиранья» в слоты верхнего ряда. Светодиод в среднем слоте покажет низкие частоты, а в правом — общий фон.

Вставьте ещё две «Пираньи» под уже установленными светодиодами. Не забудьте перевернуть их на 180 градусов. Светодиод в среднем слоте покажет средние частоты, а в правом — высокие.

Осторожно!

Cветодиодные модули «Пиранья» очень яркие, поэтому не смотрите в середину светодиода с близкого расстояния, это очень вредно для глаз.

Скетч

Прошейте контроллер скетчем через Arduino IDE.

light-show.ino // включаем функцию для логарифмического формата #define LOG_OUT 1 // задаем количество выходных отсчетов #define FFT_N 128 // подключаем библиотеку FFT — быстрое преобразование Фурье #include <FFT.h>   // номер пина датчика микрофона #define MIC_PIN A5 // номера цифровых пинов светодиодов #define RED_LED 3 #define BLUE_LED 4 #define GREEN_LED 9 #define YELLOW_LED 10   // распределяем номера отчётов по частотам // весь диипазон (FFT_N / 2) #define FREQ_LOW_FFT 2 #define FREQ_MIDDLE_FFT 30 #define FREQ_HIGH_FFT 60   #define FREQ_LOW_LEVEL 38 #define FREQ_MIDDLE_LEVEL 18 #define FREQ_HIGH_LEVEL 15   void setup() { // открываем последовательный порт Serial.begin(115200); // назначаем пины светодиодов в режим выхода pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED , OUTPUT); pinMode(YELLOW_LED, OUTPUT); pinMode(BLUE_LED, OUTPUT); }   void loop() { // считываем заданное количество отсчётов for (int i = 0 ; i < FFT_N; i++) { // считываем показания микрофона и вычитаем отрицательную полу-волну int sample = analogRead(MIC_PIN) - 511; // игнорируем помехи АЦП if(sample < 5 && sample > -5) { sample = 0; } // сохраняем действительные значения в четные отсчеты fft_input[i++] = sample; // задаем нечетным отсчетам значение «0» fft_input[i] = 0; } // функция-окно, повышающая частотное разрешение fft_window(); // реорганизовываем данные перед запуском FFT fft_reorder(); // обрабатываем данные в FFT fft_run(); // извлекаем данные, обработанные FFT fft_mag_log(); // выводим значения преобразования Фурье Serial.print("<"); Serial.print(FFT_N / 2); Serial.print(":"); for (int curBin = 0; curBin < FFT_N / 2; ++curBin) { if (curBin > 0) { Serial.print(","); } Serial.print(fft_log_out[curBin]); } // если значение низких частот превысило предел if (fft_log_out[FREQ_LOW_FFT] > FREQ_LOW_LEVEL) { // зажигаем красный светодиод digitalWrite(RED_LED, HIGH); } else { // гасим красный светодиод digitalWrite(RED_LED, LOW); } // если значение средних частот превысило предел if (fft_log_out[FREQ_MIDDLE_FFT] > FREQ_MIDDLE_LEVEL) { // зажигаем зелёный светодиод digitalWrite(GREEN_LED, HIGH); // гасим синий светодиод (фон средних частот) digitalWrite(BLUE_LED, LOW); } else { // гасим зелёный светодиод digitalWrite(GREEN_LED, LOW); // зажигаем синий светодиод (фон средних частот) digitalWrite(BLUE_LED, HIGH); } // если значение высоких частот превысило предел if (fft_log_out[FREQ_HIGH_FFT] > FREQ_HIGH_LEVEL) { // зажигаем жёлтый светодиод digitalWrite(YELLOW_LED, HIGH); } else { // зажигаем жёлтый светодиод digitalWrite(YELLOW_LED, LOW); } Serial.println(">"); }

Что дальше?

wiki.amperka.ru

Невероятно эффектная цветомузыка на 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? Плюс опубликована обновленная схема. Не волнуйтесь, добавили всего один резистор. Осталось две недели до Нового года. Успеете собрать?

sohabr.net


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