Красивая цветомузыка на адресной RGB ленте
Друзья, сегодня поговорим о том как сделать красивую цветомузыку на адресной RGB ленте в домашних условиях. Данная технология базируется на Arduino Uno или плате микроконтроллера Atmega328P с открытым исходным кодом. Сама прошивка была взята у Алекса Гайвера, но была немного доработана, т.к. периодически возникало самопроизвольное переключение световых эффектов. Данная цветомузыка подключается к правому каналу любого усилителя или домашнего кинотеатра. Управление световыми эффектами осуществляется с помощью ИК-пульта. Максимальное количество светодиодов для данной версии прошивки — 410 штук.
Что вам понадобится:
- Адресная RGB лента WS2812B – 2 метра
- Профиль для светодиодной ленты – 2 метра
- Плата микроконтроллера Arduino Uno – 1шт.
- Штекерные контакты для Arduino — 1 рейка
- Корпус для платы микроконтроллера – 1шт.
- Блок питания, 5 Вольт, 10 Ампер (~3 Ампера на каждые 60 LED) – 1шт.
- Корпус для блока питания – 1шт.
- Шнур с вилкой с заземлением – 1шт.
- ИК-приемник, TSOP31238, 38кГц – 1шт.
- Любой ИК-пульт – 1шт.
- Резистор, 100-500 Ом (мощность любая) – 1шт.
- Резистор, 2.2кОм, 1Вт – 1шт.
- Резистор, 4.7кОм, 1Вт – 1шт.
- Конденсатор, 10нФ (маркировка 103) – 1шт.
- Конденсатор, 1000мкФ, 6.3В – 1шт.
- Потенциометр, 20кОм – 1шт.
- Гнездо разъёма 5.5 x 2.1 мм , папа – 2шт.
- Гнездо разъёма 5.5 x 2.1 мм, под корпус, мама – 2шт.
- Гнездо разъёма 3.5 мм, 3 контакта, папа – 2шт.
- Гнездо разъёма 3.5 мм, 3 контакта, под корпус, мама – 1шт.
- Гнездо разъёма 3.5 мм, 3 контакта, мама – 1шт.
- Провод, трёхжильный, 2мм2 – 3 метра
- Акустический кабель, двухжильный – 3 метра
- Провод, двухжильный, 2мм2 – 2 метра
Шаг 1 : Считывание кодов кнопок ИК-пульта
Подключаем ИК-приёмник к Arduino Uno согласно схеме:
Если Вы на Windows, то устанавливаем программу Arduino IDE для данной операционной системы. Затем скачиваем данный архив с прошивками и библиотеками отсюда. Сохраняем архив на диске С. Распаковываем архив. Из папки С:/ColorMusic/libraries копируем все в папку C:/Documents and Settings/<Ваше имя пользователя>/Documents/Arduino/libraries
Далее, идём в папку С:/ColorMusic/firmware/IRtest_2.0 и запускаем файл IRtest_2.0.ino. Откроется Arduino IDE. Подключаем Arduino Uno к USB порту. Arduino IDE должна автоматически определить модель платы и порт для обмена данными. На всякий случай рекомендую проверить наименование платы в Tools -> Board, должно стоять Arduino Genuino/Uno, в Tools -> Port должен стоять соответствующий порт для обмена данными. Если Вы не знаете какой должен стоять порт, в Windows нужно зайти в “Диспетчер устройств” и открыть меню “Контроллеры USB”.
Далее, заливаем прошивку IRtest_2.0.ino на Arduino Uno. Для этого в Arduino IDE нажимаем Sketch -> Upload. Затем идём Tools -> Serial Monitor. Откроется окно мониторинга последовательного порта.
Считываем коды кнопок согласно рисунку:
Копируем их в текстовый файл, чтобы он выглядел так:
#if REMOTE_TYPE == 3 #define BUTT_UP 0xE51CA6AD // Кнопка вверх #define BUTT_DOWN 0xD22353AD // Кнопка вниз #define BUTT_LEFT 0x517068AD // Кнопка влево #define BUTT_RIGHT 0xAC2A56AD // Кнопка вправо #define BUTT_OK 0x1B92DDAD // Кнопка ОК #define BUTT_1 0x68E456AD // Кнопка в цифрой 1 #define BUTT_2 0xF08A26AD // Кнопка в цифрой 2 #define BUTT_3 0x151CD6AD // Кнопка в цифрой 3 #define BUTT_4 0x18319BAD // Кнопка в цифрой 4 #define BUTT_5 0xF39EEBAD // Кнопка в цифрой 5 #define BUTT_6 0x4AABDFAD // Кнопка в цифрой 6 #define BUTT_7 0xE25410AD // Кнопка в цифрой 7 #define BUTT_8 0x297C76AD // Кнопка в цифрой 8 #define BUTT_9 0x14CE54AD // Кнопка в цифрой 9 #define BUTT_0 0xC089F6AD // Кнопка в цифрой 0 #define BUTT_STAR 0xAF3F1BAD // Кнопка включения #define BUTT_HASH 0x38379AD // Кнопка смены подрежима #endif
Сохраняем файл.
Шаг 2 : Заливка прошивки цветомузыки
Заходим в папку С:/ColorMusic/firmware/colorMusic_v2.10 и открываем файл colorMusic_v2.10.ino
В нем изменяем следующие параметры:
#define NUM_LEDS 120 // Общее количество светодиодов адресной ленты. #define CURRENT_LIMIT 10000 // Ограничение по току 10А. Также будет автоматически управлять яркостью светодиодов, когда порог по току будет достигнут
После надписи // —— КНОПКИ СВОЕГО ПУЛЬТА —— стираем от #if REMOTE_TYPE == 3 до #endif. Затем вставляем блок с кнопками пульта, который мы сохранили раньше.
Сохраняем файл и заливаем скетч на Arduino Uno через Sketch -> Upload.
Шаг 3 : Собираем блок управления цветомузыкой
Собираем блок управления цветомузыкой согласно схеме:
Рекомендую взять хороший флюс (я использовал ТАГС) и припой. Для пайки к Arduino необходимо взять вот такие штекерные контакты, вставить их в Arduino и уже припаиваться к ним.
Дизайн корпуса у всех будет свой, но у меня в итоге получилось вот так:
Отверстия под гнезда разъёма лучше сверлить на станке, чтобы сверло не увело в сторону. Для гнезда разъёма 3.5мм мне пришлось истончить область стенке коробочки вокруг его отверстия с внутренней стороны, чтобы я смог закрутить ответную гайку с внешней стороны. Для этого я применил многофункциональный инструмент Dremel с абразивной насадкой.
Также припаиваем все гнезда к проводам и после этого прозванием мультиметром, чтобы сразу исключить ошибки пайки.
Шаг 4 : Укладываем светодиодную ленту в профиль
Аккуратно снимаем рассеиватель с профиля светодиодной ленты, снимаем защитный слой двухстороннего скотча и вклеиваем ленту в профиль. Обратите внимание на направление светодиодной ленты, оно будет указано маленькими стрелочками на самой ленте. В самом начале направления припаиваем три контакта трёхжильного кабеля и аккуратно выводим кабель из профиля, спаяв его с гнездом разъёма 3.5мм соответственно. После проделанной работы аккуратно ставим рассеиватель профиля на место.
После всех манипуляций, соединяем двухжильный кабель блока управления цветомузыкой с правой колонкой усилителя и включаем блок в сеть.
Шаг 5 : Настройка опорного напряжения
Потенциометр настройки опорного напряжения настраивается “методом тыка” пока не заработает. Подстройка нужна при смене источника аудио или изменении его потенциальной громкости.
Если во время работы в режиме VU метра (первые два режима) шкала всё время горит – слишком низкое опорное напряжение, Arduino получает слишком высокий сигнал. Если не горит – опорное слишком высокое, системе не удаётся распознать изменение громкости с достаточной для работы точностью.
Шаг 6 : Калибровка шумов
Включаем музыку и ставим среднюю громкость для повседневного прослушивания. Затем ставим музыку на паузу. Удерживаем кнопку 0 на ИК-пульте 1 секунду. В это время на плате Arduino загорится светодиод, а потом погаснет через ~1.5 секунды. Значения шумов будут записаны в память и будут сами загружаться при последующем запуске.
Снимает музыку с паузы и наслаждаемся цветомузыкальными эффектами!
Profit!
P/S
В заключении хочу привести режимы работы ИК-пульта для управления цветомузыкой.
Остальные кнопки: цифра 0 – калибровка шума, * – вкл/выкл систему.
Понравилась инструкция? Тогда поделитесь ей со своими друзьями или попробуйте написать свою собственную!