Красивая цветомузыка на адресной 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 согласно схеме:

irda1

Если Вы на 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. Откроется окно мониторинга последовательного порта.

Считываем коды кнопок согласно рисунку:

remote-map

Рисунок взят с сайта alexgyver.ru

Копируем их в текстовый файл, чтобы он выглядел так:

#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 : Собираем блок управления цветомузыкой

Собираем блок управления цветомузыкой согласно схеме:

color_music_schematic1

Рекомендую взять хороший флюс (я использовал ТАГС) и припой. Для пайки к Arduino необходимо взять вот такие штекерные контакты, вставить их в Arduino и уже припаиваться к ним.

arduino_male_pin_connectors

Дизайн корпуса у всех будет свой, но у меня в итоге получилось вот так:

Отверстия под гнезда разъёма лучше сверлить на станке, чтобы сверло не увело в сторону. Для гнезда разъёма 3.5мм мне пришлось истончить область стенке коробочки вокруг его отверстия с внутренней стороны, чтобы я смог закрутить ответную гайку с внешней стороны. Для этого я применил многофункциональный инструмент Dremel с абразивной насадкой.

Также припаиваем все гнезда к проводам и после этого прозванием мультиметром, чтобы сразу исключить ошибки пайки.

Шаг 4 : Укладываем светодиодную ленту в профиль

Аккуратно снимаем рассеиватель с профиля светодиодной ленты, снимаем защитный слой двухстороннего скотча и вклеиваем ленту в профиль. Обратите внимание на направление светодиодной ленты, оно будет указано маленькими стрелочками на самой ленте. В самом начале направления припаиваем три контакта трёхжильного кабеля и аккуратно выводим кабель из профиля, спаяв его с гнездом разъёма 3.5мм соответственно. После проделанной работы аккуратно ставим рассеиватель профиля на место.

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

Шаг 5 : Настройка опорного напряжения

Потенциометр настройки опорного напряжения настраивается “методом тыка” пока не заработает. Подстройка нужна при смене источника аудио или изменении его потенциальной громкости.

Если во время работы в режиме VU метра (первые два режима) шкала всё время горит – слишком низкое опорное напряжение, Arduino получает слишком высокий сигнал. Если не горит – опорное слишком высокое, системе не удаётся распознать изменение громкости с достаточной для работы точностью.

Шаг 6 : Калибровка шумов

Включаем музыку и ставим среднюю громкость для повседневного прослушивания. Затем ставим музыку на паузу. Удерживаем кнопку 0 на ИК-пульте 1 секунду. В это время на плате Arduino загорится светодиод, а потом погаснет через ~1.5 секунды. Значения шумов будут записаны в память и будут сами загружаться при последующем запуске.

Снимает музыку с паузы и наслаждаемся цветомузыкальными эффектами!

Profit!

P/S

В заключении хочу привести режимы работы ИК-пульта для управления цветомузыкой.

color_music_modes

Остальные кнопки: цифра 0 – калибровка шума, * – вкл/выкл систему.

Понравилась инструкция? Тогда поделитесь ей со своими друзьями или попробуйте написать свою собственную!

Регистрация на сайте

Оставьте свой отзыв

Вы должны Войти, чтобы оставлять отзывы.