Arduino DIY Блог, для электронщиков-самодельщиков.
Всем привет.
Ну вот наконец то наступили праздничные дни и я могу написать подробности по сборке своей цветомузыки на ардуино и 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, то можно ограничивать частотный диапазон убирая высокие — средние и так далее до самых низких частот(красный светодиод). Например если Вам нужно что бы цветомузыка реагировала только на низкие звуки, то достаточно оставить только низкий диапазон частот.
Видео демонстрирующее возможности цветомузыки.
Сразу прошу извинить меня за качество ролика, снимал дешевым смартфоном.
Цветомузыка для светодиодной ленты WS2812, Аrduino и ПК
Поздравляю всех с новым годом! Перед новым годом собрал для дома цветомузыку на светодиодной ленте WS2812. Проект получился простым для повторения и не дорогим.
Формирование цветомузыкальных программ осуществляется контроллером Arduino nano на основании данных полученных от программы «CMU.EXE». Программа «CMU.EXE» для персонального компьютера выполняет роль 20 полосного анализатора спектра и пульта управления программами.
Данная организация позволит всем желающим достаточно просто собрать цветомузыку. Любители программирования могут, не вникая в тонкости цифровой обработки аудио сигналов, создавать свои цветомузыкальные программы в простой среде Arduino IDE.
→ Скетчи для Arduino и программа «CMU.EXE» представлены на GitHub
В проекте предусмотрены два вида подключения к персональному компьютеру.
Первый вариант, непосредственное подключение к USB ПК, скетч COMtoLed.
Второй вариант, подключение через радиомост построенный на nRF24L01, скетчи COMtoRF и RFtoLed.
Вы можете использовать имеющиеся в скетче цветомузыкальные и динамические подпрограммы или заменить их своими. Все цветомузыкальные программы в скетче выполнены в виде отдельных подпрограмм, это облегчит понимание представленного исходного кода и написание своих подпрограмм.
Для работы контроллера Аrduino вам потребуется
1. Установить в Arduino IDE библиотеки: Adafruit_Neopixels, IRremote, RF24(если используется беспроводной вариант)
2. Установить в скетче:
— Количество светодиодов в вашей ленте:
— Номера выходов к которым подключена ваша лента и ИК приёмник ДУ:
— Номера контактов для управления радио модулем (если используется):
На данный момент в скетче реализованы 7 цветомузыкальных программ и более 70 вариантов бегущих огней (по китайскому исчислению, другой цвет = другая программа).
Программа «CMU.EXE» для персонального компьютера достаточно сложна и предлагается в виде исполняемого модуля без исходного кода.
Цветомузыкальная программа «CMU.EXE» может принимать аудио поток с любого записывающего звукового устройства персонального компьютера. Например: микшер, линейный вход, микрофон или любой виртуальный аудио кабель.
Используя микшер или виртуальный аудио кабель можно получить аудио поток из любого аудио плеера. Например: ITUNES, AIMP, VLC или любого другого.
Внешний вид программы:
Подключение к ITUNES с использованием виртуального аудиокабеля и проигрыванием через AIRPlay:
Видео работы цветомузыкальной представлено на youtube:
Невероятно эффектная цветомузыка на 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 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.
Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.
Как сделать цветомузыку своими руками – простая домашняя схема самодельной светомузыки на светодиодах через Arduino
Как сделать светомузыку своими руками? Закатите новогоднюю вечеринку и поразите своих друзей удивительными музыкальными цветными огнями, которые зажигаются и меняют цвет в такт музыке. Эти огни – не что иное, как простые светодиодные RGB-ленты, подключенные к электронному мозгу – контроллеру Arduino.
Вы можете установить светодиодные ленты в любом месте в доме или даже на улице. Использовать цветомузыку можно не только во время вечеринок, но и при повседневном прослушивании музыки. Приклейте светодиодные ленты хоть к телевизору, хоть к дивану, к столу или стенам – куда захотите. Единственное условие – рядом должен присутствовать источник звука: аудио-сигнал, который будет подаваться на цветомузыкальную установку (ЦМУ) и обрабатываться устройством.
Как уже говорилось, для приема аудио сигнала, обработки и вывода его через цифровые выходы на светодиодные ленты, используется контроллер Arduino. Для питания платы Arduino и светодиодных лент, применяется источник питания 12 В. Устройство имеет входной и выходной аудио разъем. От входного разъема, сигнал поступает на контроллер Arduino и выходное гнездо, для подключения к нему наушников или динамиков. Проект может быть выполнен в течение двух часов (максимум трех) из легкодоступных компонентов. Вы очень удивитесь, увидев конечный результат проекта (фотографии не передают всей его красоты).
Вот короткое видео домашней цветомузыки в действии:
Приступаем к реализации цветомузыки на Ардуино!
Шаг 1: Как это работает?
Прежде, чем начать осуществление проекта, разберемся с принципом работы установки. Можно просто слепо следовать инструкциям, а можно изучить работу устройства, что гораздо интереснее.
Светодиодная лента, подключенная к устройству, загорается и меняет свой цвет всякий раз, когда на Arduino поступает громкий звук. Так как аудио-сигнал очень слабый, он подается на аналоговый вывод Arduino, который чувствителен даже к очень слабым электрическим сигналам. Теперь, когда на входе появляется сигнал высокой амплитуды (выше определенного порога), контроллер реагирует на него.
Когда такой сигнал зафиксирован, Arduino меняет цвет RGB-ленты на любой случайный. Следует отметить, что контроллер Arduino не управляет светодиодной лентой напрямую. Он отправляет сигналы на транзисторные ключи, которые и включают светодиоды. Причина заключается в том, что сигналы с выводов Arduino имеют напряжение 5 В, в то время как для работы светодиодных лент требуется 12 В.
Шаг 2: Компоненты и инструмент
Следующие компоненты и инструмент необходимы для осуществления этого проекта. Общая стоимость проекта составляет 30 долларов США. Эта сумма может меняться в зависимости от того, где вы приобретаете материалы. Длина светодиодной ленты зависит от ваших потребностей.
Компоненты для самодельной цветомузыки:
- Контроллер Arduino Nano или UNO (или же любая другая аналогичная плата).
- RGB светодиодная лента (длина на ваш выбор).
- Три NPN-транзистора (TIP31C, TIP122 или любой аналогичный).
- Два аудио разъема 3,5 мм.
- Три резистора номиналом 1 кОм.
- Два кабеля AUX (для подключения ЦМУ к аудиовыходу).
- Один 12-вольтный блок питания (можно использовать аккумулятор).
- Штыревые контакты для установки на плату.
- Провода.
- Подходящий корпус.
- Текстолитовая печатная плата с готовыми отверстиями.
Инструмент:
- Паяльник.
- Паяльная проволока (припой).
- Пистолет для термо-клея с клеевыми стержнями.
- Дрель.
- Кусачки, инструмент для зачистки проводов.
- Плоскогубцы.
Шаг 3: Подготовительные работы
Подготовим корпус для установки в него компонентов. Сначала нужно выбрать тип корпуса и его размеры. Самый простой способ – использовать пластиковый контейнер для еды, так как с пластиком легко работать. Не рекомендуется использовать металлический корпус, так как его придется полностью изолировать во избежание короткого замыкания.
Чтобы просверлить отверстия, используйте дрель. Вам нужно сделать четыре отверстия: одно – для провода электропитания, одно – для выводов светодиодной ленты, два – для аудио-разъемов. При работе с электроинструментом, используйте средства защиты. Отверстия также можно прожечь раскаленным гвоздем или проковырять ножом.
Шаг 4: Паяем контроллер светодиодов
Это важный шаг. Вам нужно распаять схему ключей управления светодиодными лентами, на которые будут поступать сигналы от контроллера Arduino. Такая схема необходима, поскольку выходное напряжение выводов платы Arduino составляет всего 5 В, а светодиодной ленте для работы требуется не менее 12 В. Схема состоит из трех силовых транзисторов, которые работают как ключи: при поступлении слабого сигнала на базу транзистора, он открывается, подавая напряжение, достаточное для питания светодиодных лент. Каждым цветом полосы (красным, зеленым и синим) управляет отдельный транзистор.
Прежде чем приступить к пайке, изучите схему, приведенную выше. Обратите внимание, что на плату припаиваются два штыревых разъема с четырьмя контактами – для подключения светодиодной ленты и для соединения с контроллером Arduino.
Еще один двойной штыревой разъем – для подачи напряжения 12 В на плату Arduino. Наконец, припаяйте винтовые клеммы для подключения источника питания к плате. Использование штыревых разъемов и винтовых клемм не обязательно, но это лучший вариант, чем просто припаять провода. Это позволит легко отключить или подключить соединения.
Шаг 5: Делаем шилд для Arduino
Следующим шагом будет создание шилда для Arduino, который поможет соединить все компоненты, хотя делать его необязательно. Для контроллера Arduino UNO такой шилд не понадобится. Основное предназначение шилда – возможность в любой момент вносить необходимые изменения в соединениях проводов без необходимости пайки. Это также позволит загружать код в контроллер Arduino, отключив его от шилда.
Вы можете спаять такой шилд по фотографии выше. Он состоит из печатной платы на которой распаяны гнезда для подключения контроллера Arduino и штыревые разъемы, соответствующие каждому выводу контроллера. Еще потребуется припаять несколько штырьков для подключения выводов 5 В и GND, так как они используются очень часто. Вы сможете применить данный шилд в других проектах, просто отсоединив все провода-перемычки.
Шаг 6: Подключаем цепь к Arduino
После того, как шилд и светодиодный контроллер будут готовы, подключим их друг к другу. Вначале установите плату Arduino на шилд. Теперь, используя несколько монтажных проводов с разъемами типа «мама-мама», соедините шилд и светодиодный контроллер по следующей схеме:
- Эмиттеры всех транзисторов соедините с «землей» (GND) контроллера Arduino.
- Базу транзистора 1 – с цифровым выводом 9 Arduino через резистор 1 кОм.
- Базу транзистора 2 – с цифровым выводом 10 Arduino через резистор 1 кОм.
- Базу транзистора 3 – с цифровым выводом 11 Arduino через резистор 1 кОм.
После этого, приклейте плату светодиодного контроллера, а также шилд с установленным контроллером Arduino внутри корпуса устройства.
Шаг 7: Устанавливаем входной и выходной аудио-разъемы
Для подключения аудио-сигнала, нужен разъем. Кроме входного, сделаем выходной разъем, что позволит включать цветомузыкальную установку между источником звука и наушниками или динамиками. Входной разъем является обязательным атрибутом, а выходной – необязательным.
Любое современное аудиоустройство воспроизводит стереофонический звук, то есть имеет два канала: левый и правый. Наше устройство будет использовать сигнал только от одного канала, но на выходной разъем будут подаваться оба аудио-сигнала. Далее подключите схему так (терминология Википедии):
- Гильза разъема 1 (вход) – к гильзе разъема 2 (выход).
- Кольцо разъема 1 – к кольцу разъема 2.
- Кончик разъема 1 – к кончику разъема 2.
- Гильза разъема 1 – к «земле» (GND) платы Arduino.
- Кольцо разъема 1 – аналоговый вывод А0 Arduino.
После выполнения всех соединений, установите оба разъема в сделанных ранее отверстиях корпуса.
Шаг 8: Подключаем электропитание к установке
На данном шаге у вас могут возникнуть трудности, если вам не удастся подобрать необходимый для проекта источник питания 12 В. Для питания ЦМУ требуется адаптер 12 В / 2 А. Адаптер, рассчитанный на максимальный ток 1 А, может не работать должным образом при использовании длинной светодиодной ленты, поскольку она будет потреблять большой ток.
Подсоедините провода от блока питания к винтовым клеммам контроллера. Питание будет подаваться не только на светодиоды, но и на контроллер Arduino. Контроллеры Arduino UNO и Arduino Nano имеют встроенный преобразователь напряжения 12 В – 5 В (который отсутствует в контроллере Arduino Pro Mini). С помощью соединительных проводов подключите положительный вывод от источника питания к выводу Vcc Arduino, а отрицательный – к GND Arduino.
Шаг 9: Подключаем светодиодную ленту к контроллеру
Теперь вам нужно подключить RGB-светодиодную ленту к соответствующему разъему на контроллере. Убедитесь в том, что вы подключили ее правильно. Обрежьте ленту до необходимой вам длины и припаяйте провода к ее медным контактным площадкам, расположенным с задней стороны полосы.
При желании, можете удлинить провода ленты, если намереваетесь установить ее на большом расстоянии от устройства.
Шаг 10: Загружаем код
Подключите контроллер Arduino к ПК и загрузите в него приведенный ниже скетч через приложение Arduino IDE. В разделе «Инструменты => Плата» выберите вашу плату, например, Arduino Nano, а в разделе «Инструменты => Порт» выберите номер COM-порта, к которому подключен контроллер. Если вы хоть немного разбираетесь в программировании, то легко сможете понять код скетча. Работает программа следующим образом:
- Проверяется, превышает ли аудио-сигнал установленный порог.
- Если нет, цикл повторяется снова, бесконечно проверяя уровень сигнала, пока условие не станет истинным.
- Если да, то генерируется случайное число от 1 до 6.
- В зависимости от сгенерированного числа, контроллер зажигает определенный цвет светодиодов.
- После задержки в 10 мс, программа продолжает свой цикл.
- Таким образом, всякий раз, когда звуковой сигнал превышает порог срабатывания, цвет светодиодной ленты меняется на случайный.
Вы можете изменить пороговое значение сигнала в цикле if(), а также изменить номера выводов, не забывая, однако, что все они должны работать в ШИМ-режиме. Вот код скетча:
Шаг 11: Финальные шаги – подключаем и любуемся
Итак, вы создали свою собственную цветомузыкальную установку! Теперь просто подключите к ней источник звука, включите хорошую музыку и любуйтесь как светящиеся в темноте огни меняют свой цвет в такт музыке. Ваши друзья наверняка будут завидовать вам. Светодиодные ленты можно приклеить практически в любом месте, сняв защитную пленку с задней стороны ленты.
Для настройки устройства понадобятся два кабеля AUX. Подключите один конец одного из кабелей к источнику звука (iPod, MP3-плеер, мобильный телефон, планшет, телевизор и т.д.), а другой конец – к разъему аудиовхода вашего устройства. Далее подключите выходной разъем к любым колонкам или наушникам (опционально). Включите музыку. Если светодиоды не загораются, увеличьте громкость. Если они загораются, но не гаснут, то уменьшите громкость.
Вот и все. Получайте удовольствия от своей цветомузыкальной установки.