Как сделать светомузыку своими руками? Закатите новогоднюю вечеринку и поразите своих друзей удивительными музыкальными цветными огнями, которые зажигаются и меняют цвет в такт музыке. Эти огни – не что иное, как простые светодиодные 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(), а также изменить номера выводов, не забывая, однако, что все они должны работать в ШИМ-режиме. Вот код скетча:
/* Music Reactive Color Changing Lights Source code Made by- Saiyam Agrawal */ int threshold = 20; void setup() { pinMode(9, OUTPUT); // set all the pins as output pinMode(10, OUTPUT); pinMode(11, OUTPUT); } void loop() { // enter the loop if(analogRead(A0) > threshold) // check if audio signal goes above threshold { int a = random(1, 6); // store a random number if(a == 1) // glow red { digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); } if(a == 2) // glow green { digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 0); } if(a == 3) // glow orange { analogWrite(9, random(100, 255)); analogWrite(10, random(100, 255)); digitalWrite(11, 0); } if(a == 4) // glow cyan { digitalWrite(9, 0); analogWrite(10, random(100, 255)); analogWrite(11, random(100, 255)); } if(a == 5) // glow purple { analogWrite(9, random(100, 255)); digitalWrite(10, 0); analogWrite(11, random(100, 255)); } if(a == 6) // glow blue { digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 1); } delay(20); // wait for 20ms } else digitalWrite(9, LOW); // if audio signal is less than 20, set all the pins low digitalWrite(10, LOW); digitalWrite(11, LOW); // again reach the top and start } Project_code.ino
Файлы
Шаг 11: Финальные шаги – подключаем и любуемся
Итак, вы создали свою собственную цветомузыкальную установку! Теперь просто подключите к ней источник звука, включите хорошую музыку и любуйтесь как светящиеся в темноте огни меняют свой цвет в такт музыке. Ваши друзья наверняка будут завидовать вам. Светодиодные ленты можно приклеить практически в любом месте, сняв защитную пленку с задней стороны ленты.
Для настройки устройства понадобятся два кабеля AUX. Подключите один конец одного из кабелей к источнику звука (iPod, MP3-плеер, мобильный телефон, планшет, телевизор и т.д.), а другой конец – к разъему аудиовхода вашего устройства. Далее подключите выходной разъем к любым колонкам или наушникам (опционально). Включите музыку. Если светодиоды не загораются, увеличьте громкость. Если они загораются, но не гаснут, то уменьшите громкость.
Вот и все. Получайте удовольствия от своей цветомузыкальной установки.