Начнем с небольшого вступления … В прошлом году я работал над созданием системы подсветки из светодиодной RGB гирлянды и микросхемы фильтра частот MSGEQ7. Светодиоды изменяли цвет в зависимости от сигнала с MSGEQ7. Я написал несколько эффектов и возможность переключения эффектов нажатием кнопки.
Однажды я показал устройство одному своему другу. Посмотрев на устройство, он сказал, что было бы здорово иметь что-то подобное для своего музыкального центра. У меня случайно оказался набор деталей, поэтому я обещал сделать ему такой же комплект. Спустя 6 месяцев мы оба забыли об этом. Я стал думать над применением тех деталей что у меня имелись. Подумав над парой вариантов, я решил докупить 20 мм Digital RGB LED Pixels от Adafruit. Светодиодные пиксели очень яркие и так же их достаточно просто использовать, существует библиотека для управления. В дополнение к кнопке переключения эффектов я также добавил ИК-приемник и занес в память несколько неиспользуемых кнопок на пульте дистанционного управления стандартной FIOS, так что теперь вы можете переключать эффекты, не вставая с дивана!
При работе над проектом я также придумал несколько новых эффектов, некоторые из которых работают в такт музыке, а некоторые сами по себе. Эффекты эквалайзера работают за счет 3-х каналов от MSGEQ7 (низкий, средний, высокий). Каждому из каналов соответствуют красный, зеленый или синий светодиод в пикселе. Визуализация музыки получается достаточно красивой и теоретически та же песня всегда будет производить тот же эффект.
Для интересующихся, вот краткое описание всех эффектов:
Световые эффекты (не управляются звуком):
- Плавные переходы — Переходы 96 цветов в течение 45 минут. (Эффект по умолчанию)
- Светлячки — Случайные пиксели подсвечиваются на случайный промежуток времени — как светлячки ночью.
- Строб — обычный стробоскоп — все белым.
Эквалайзер — эффекты:
- Раздельный эквалайзер — Разделение полосы пикселей пополам, эквалайзер из центра к краям.
- Полный эквалайзер — Эквалайзер по всей длине полосы
- Цветной пиксель — Каждый пиксель обновляется в такт музыке
- Моно – только синие светодиоды.
- Рождество — красный и зеленый свет изменяет яркость от половины до полной в такт музыке.
Создание устройства
Для создания светомузыкальной установки «EQ pixels» вам понадобится:
- Светодиодные пиксели — 20мм на основе микросхемы LPD6803
- Arduino — любая с чипом ATmega328 (я использовал Boarduino)
- Блок питания — 5В, не менее 2A (2000mA)
- 7-ми полосный фильтр для графического эквалайзера — MSGEQ7
- Аудио разъем 3.5 и макетная плата
- ИК-приемник — TSOP38238, либо аналогичный на 38 кГц
- Подходящий по размерам алюминиевый уголок
Вам также необходимо немного резисторов, конденсаторов, пару кнопок и прочей мелочевки.
Поскольку этот проект достаточно прост, я решил не показывать изготовление шаг за шагом , а показать несколько ключевых фотографий вместе со схемой и скетчем для запуска на Arduino. Вы можете использовать устройство для создания LED подсветки, Ambilight и т.п, переписав код под нужную вам задачу.
Давайте начнем, взгляните на схему:
Левый и правый звуковые каналы соединены вместе и отправляются на вход MSGEQ7, который преобразует аудио и отправляет получившийся сигнал на аналоговый вход Arduino. Arduino считывает информацию из MSGEQ7 и изменяет свечение светодиодных пикселей в соответствии с выбранным в данный момент эффектом. Большой конденсатор на входе сглаживает пульсации на выходе источника питания 5В. Кнопка и ИК-датчик подключены к Arduino для управления. Теперь давайте взглянем на некоторые фотографии моей реализации проекта:
Две ленты по 20 светодиодных пикселей в каждой были соединены вместе, а затем укорочены до 32 пикселей. Затем они были приклеены на горячий клей к 2.4 метровому алюминиевому уголку. Совет: алюминий должен быть слегка шероховатый, чтобы клей хорошо держался.
Разъем RJ11 был закреплен на противоположной стороне алюминиевого профиля для соединения с блоком управления.
Профиль закреплен за домашним кинотеатром на L-образный крепеж. Это позволит снять устройство в случае необходимости.
Макетная плата установлена в корпус без Boarduino. На плате установлены 3 пары 2х пиновых разъемов для подключения разъема питания, выключателя питания и кнопки переключения эффектов.
Плата с установленным Boarduino. Примечание: разъем питания и стабилизатор на плате Boarduino не используются, так как я использовал блок питания на 5В, от которого сразу питаются микросхемы.
Другой вид с обратной стороны:
Верхняя часть корпуса с установленными кнопками и разъемом питания, а так же окошком под ИК-управление
Собранное устройство, вид спереди. Видны кнопки и окошко под ИК-приемник
На задней стороне RJ45 для подключения светодиодов, аудиоразъем и разъем питания
Прошивка
Скетч Arduino был создан мной из нескольких частей кода прошлого проекта «LED Pixels» с эффектами и кодом для обработки ИК и нажатия кнопки. Исполняемый эффект хранится в переменной eqmode, ее значение изменяется либо кнопкой либо с пульта. Программа получилась несложная, основной цикл выполняет следующие операции в цикле:
- Проверка кнопки, если она была нажата обновление eqmode
- Проверка ИК-приемника, если есть сигнал обновление eqmode
- Выполнение текущего эффекта согласно eqmode
- Чтение значений с микросхемы
- Обновление светодиодных пикселей
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
Светодиодные пиксели | LPD6803 | 1 | ||||
S1 | Кнопка | 1 | ||||
U2 | Arduino | Любая на ATMega328 | 1 | |||
IC1 | Микросхема | MSGEQ7 | 1 | |||
IR | Ик-приемник | TSOP38238 | 1 | |||
U1 | Разъем | Jack 3.5 | 1 | |||
C1 | Конденсатор | 10 нФ | 1 | |||
C2 | Конденсатор | 33 пф | 1 | |||
C3 | Конденсатор | 1000 мкФ | 1 | |||
C4 | Конденсатор | 1 мкФ | 1 | |||
C6 | Конденсатор | 100 нф | 1 | |||
C8 | Конденсатор | 100 нФ | 1 | |||
R1 | Резистор | 47 Ом | 1 | |||
R2 | Резистор | 200 кОм | 1 | |||
R3 | Резистор | 10 кОм | 1 | |||