Красивая цветомузыка на адресной 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 – калибровка шума, * – вкл/выкл систему.

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

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

Дайте свою оценку данной инструкции


Поделитесь этой инструкцией со своими друзьями

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

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