Светомузыка на Arduino и WS2812b
- Описание проекта
- Папки проекта
- Схемы подключения
- Материалы и компоненты
- Как скачать и прошить
- FAQ
- Полезная информация
Версии прошивки
- 15.03.2018, colorMusic_v1.1:
- Добавлена плавность режиму цветомузыки по частотам! Настройка SMOOTH_STEP
- Добавлен режим стробоскопа с целой кучей настроек!
- 16.03.2018 colorMusic_v2.0:
- Добавлено управление с ИК пульта! Купить пульт можно по этой ссылке, цена вопроса 50р
- 7 режим - Режим подсветки
- 8 режим - Режим бегущих частот
- 9 режим - Анализатор спектра (Версия 2.1)
- У некоторых режимов появились подрежимы
- Возможна работа БЕЗ потенциометра. Читайте ниже в инструкции по эксплуатации
- 18.03.2018 colorMusic_v2.2:
- Настройки сохраняются в память (энергонезависимую)
- 19.03.2018 colorMusic_v2.3:
- Улучшена производительность, почищен мусор
- В 7 режиме радугу можно остановить и пустить вспять
- 15.05.2018 colorMusic_v2.6:
- Изменена библиотека ИК пульта, пульт работает без глюков
- 28.09.2018 colorMusic_v2.7 (by Евгений Зятьков):
- Настройка пульта внесена в скетч, тип пульта настраивается в IR_RCT
- Добавлена поддержка Arduino Mega и Pro Micro
- Исправлены мелкие баги
Описание проекта
Крутейшая свето- цветомузыка на Arduino и адресной светодиодной ленте WS2812b
Управление:
- Однократное нажатие кнопки: смена режима
- Удержание кнопки: калибровка нижнего порога шума
Режимы работы (переключаются кнопкой):
- VU meter (столбик громкости): от зелёного к красному
- VU meter (столбик громкости): плавно бегущая радуга
- Светомузыка по частотам: 5 полос симметрично
- Светомузыка по частотам: 3 полосы
- Светомузыка по частотам: 1 полоса
- Стробоскоп (Версия 2.0)
- Подсветка (Версия 2.0)
- Бегущие частоты (Версия 2.0)
- Анализатор спектра (Версия 2.1)
Особенности:
- Плавная анимация (можно настроить)
- Автонастройка по громкости (можно настроить)
- Фильтр нижнего шума (можно настроить)
- Автокалибровка шума при запуске (можно настроить)
- Поддержка стерео и моно звука (можно настроить)
- Поддержка ИК пульта (Версия 2.0)
- Лента не гаснет полностью (Версия 2.0)
- Настройки сохраняются в памяти (Версия 2.2)
- Подробности в видео: https://youtu.be/nu31By9Phdc
Папки
ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию
- libraries - библиотеки проекта. Заменить имеющиеся версии
- firmware - прошивка для Arduino, нужный в папке открыть в Arduino IDE (инструкция)
- schemes - схемы подключения
Схемы
Обычная
С микрофоном
Материалы и компоненты
Ссылки оставлены на магазины, с которых я закупаюсь уже не один год
- Arduino NANO 328p – искать
- https://ali.ski/eAdng
- https://ali.ski/Aq5JZ
- https://ali.ski/WvSDW
- https://ali.ski/bO6pHg
- Giant4 (Россия)
- Адресная лента
- https://ali.ski/IgNcl_
- https://ali.ski/AYJct
- Купить в РФ, 60 свет/метр, 30 свет/метр
- Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
- 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
- 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
- IP30 лента без влагозащиты (как на видео)
- IP65 лента покрыта силиконом
- IP67 лента полностью в силиконовом коробе
- Постфикс ECO – лента чуть более низкого качества, меньше меди, на длинной ленте будет сильно проседать яркость
- Лента как на видео: Black PCB 5m 60 IP30
- Понижайка для автомобиля https://ali.ski/zBsqQj
- БП 5V Али искать (минимум 3A на каждые 100 LED)
- https://ali.ski/PcYeh
- https://ali.ski/d2G7lX
- Адаптер питания 5.5х2.1 https://ali.ski/qh5RD
- Аудио гнездо https://ali.ski/v07LH
- Разветвитель наушников https://ali.ski/WLlZB1
- ИК пульт (для версии 2.0 WAVGAT) https://ali.ski/YW784-
- Звук через микрофон
- Микрофон модуль https://ali.ski/0fOA8
- Звук по FM радио
- Передатчик FM https://ali.ski/07dNER https://ali.ski/UUuC9
- Передатчик “сделай сам” https://ali.ski/3JctlM https://ali.ski/gNQoX_
- Приёмник FM из видео https://ali.ski/ODzKil https://ali.ski/n0BpSM
- Понижайка 3.3V https://ali.ski/5oTbO https://ali.ski/8GnmM
- Приёмник “сделай сам” https://ali.ski/y-jn1D
- Звук по Bluetooth
- Передатчик Bluetooth https://ali.ski/P5Ii01
- Приёмник “свисток” https://ali.ski/uVQZuS
- Ещё приёмник https://ali.ski/jaQP4
- Кнопки, конденсаторы и крутилки ищите в любых магазинах для радиолюбителей, так как у китайцев можно купить только мешок 50 штук!
- Алик
- Куча резисторов https://ali.ski/f5Bcb
- Куча кнопок https://ali.ski/uzE6Q
- Куча конденсаторов https://ali.ski/VHlIV
- Куча потенциометров (можно обойтись без него! Читайте инструкцию) https://ali.ski/eBIFQ
- Куча конденсаторов для микрофона https://ali.ski/CuNfG
- ЧипДип (Россия)
- Резистор https://www.chipdip.ru/product0/27226
- Кнопка https://www.chipdip.ru/product/tyco-2-1825910-7-fsm14jh
- Конденсатор 10нф https://www.chipdip.ru/product0/42179
- Конденсатор для микрофона https://www.chipdip.ru/product0/9000261766
- Потенциометр (можно обойтись без него! Читайте инструкцию) https://www.chipdip.ru/product/r-0901n-b20k
Вам скорее всего пригодится
- Всё для пайки (паяльники и примочки)
- Недорогие инструменты
- Все существующие модули и сенсоры Arduino
- Электронные компоненты
- Аккумуляторы и зарядные модули
Как скачать и прошить
- Первые шаги с Arduino - ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
- Скачать архив с проектом
На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
- Установить библиотеки в
C:\Program Files (x86)\Arduino\libraries\
(Windows x64)
C:\Program Files\Arduino\libraries\
(Windows x86) - Подключить Ардуино к компьютеру
- Запустить файл прошивки (который имеет расширение .ino)
- Настроить IDE (COM порт, модель Arduino, как в статье выше)
- Настроить что нужно по проекту
- Нажать загрузить
- Пользоваться
Управление с ИК пульта:
- Цифры (1 - 9) активируют режимы
- Цифра 0: калибровка шума
- Звёздочка (*): включить/выключить систему
- Решётка (#): смена подрежима
- Кнопка ОК: переключение между локальными и глобальными настройками)
- Глобальные настройки (горит светодиод на плате):
- Влево/вправо: яркость
- Локальные настройки (у каждого режима свои):
- 1 - Шкала громкости (градиент)
- Стрелки ← →: плавность анимации
- 2 - Шкала громкости (радуга)
- Стрелки ← →: плавность анимации
- Стрелки ↑ ↓: скорость радуги
- 3 - Цветомузыка (5 полос)
- Стрелки ← →: плавность анимации
- Стрелки ↑ ↓: чувствительность
- 4 - Цветомузыка (3 полосы)
- Стрелки ← →: плавность анимации
- Стрелки ↑ ↓: чувствительность
- 5 - Цветомузыка (1 полоса)
- Стрелки ← →: плавность анимации
- Стрелки ↑ ↓: чувствительность
- Подрежимы #: 3 частоты / низкие / средние / высокие
- 6 - Стробоскоп
- Стрелки ← →: плавность вспышек
- Стрелки ↑ ↓: частота вспышек
- 7 - Цветная подсветка
- Стрелки ← →: цвет
- Стрелки ↑ ↓: насыщенность
- 8 - “Бегущие частоты”
- Стрелки ← →: скорость
- Стрелки ↑ ↓: чувствительность
- Подрежимы #: 3 частоты / низкие / средние / высокие
- 9 - Анализатор спектра
- Стрелки ← →: шаг цвета
- Стрелки ↑ ↓: цвет
- 1 - Шкала громкости (градиент)
НАСТРОЙКА НИЖНЕГО ПОРОГА ШУМА (строки 65-71)
- Ручная: выключаем AUTO_LOW_PASS и EEPROM_LOW_PASS, настраиваем LOW_PASS и SPEKTR_LOW_PASS вручную
- При запуске: включаем AUTO_LOW_PASS. При подаче питания музыка должна стоять на паузе!
- По кнопке: при удерживании кнопки 1 секунду настраивается нижний порог шума (музыку на паузу!)
- Из памяти (ЛУЧШИЙ ВАРИАНТ): выключаем AUTO_LOW_PASS и включаем EEPROM_LOW_PASS
- Включаем систему
- Ставим музыку на паузу
- Удерживаем кнопку 1 секунду
- Значения шумов будут записаны в память и САМИ загружаться при последующем запуске! Всё!
Настройки в коде
// лента
#define NUM_LEDS 120 // количество светодиодов
#define BRIGHTNESS 230 // яркость (0 - 255)
// пины
#define SOUND_R A2 // аналоговый пин вход аудио, правый канал
#define SOUND_L A1 // аналоговый пин вход аудио, левый канал
#define SOUND_R_FREQ A3 // аналоговый пин вход аудио для режима с частотами (через кондер)
#define BTN_PIN 3 // кнопка переключения режимов (PIN --- КНОПКА --- GND)
#define LED_PIN 12 // пин DI светодиодной ленты
#define POT_GND A0 // пин земля для потенциометра
// настройки радуги
#define RAINBOW_SPEED 6 // скорость движения радуги (чем меньше число, тем быстрее радуга)
#define RAINBOW_STEP 6 // шаг изменения цвета радуги
// отрисовка
#define MODE 0 // режим при запуске
#define MAIN_LOOP 5 // период основного цикла отрисовки (по умолчанию 5)
#define SMOOTH 0.5 // коэффициент плавности анимации VU (по умолчанию 0.5)
#define SMOOTH_FREQ 0.8 // коэффициент плавности анимации частот (по умолчанию 0.8)
#define MAX_COEF 1.8 // коэффициент громкости (максимальное равно срднему * этот коэф) (по умолчанию 1.8)
#define MAX_COEF_FREQ 1.2 // коэффициент порога для "вспышки" цветомузыки (по умолчанию 1.5)
// сигнал
#define MONO 1 // 1 - только один канал (ПРАВЫЙ!!!!! SOUND_R!!!!!), 0 - два канала
#define EXP 1.4 // степень усиления сигнала (для более "резкой" работы) (по умолчанию 1.4)
// нижний порог шумов
int LOW_PASS = 100; // нижний порог шумов режим VU, ручная настройка
int SPEKTR_LOW_PASS = 40; // нижний порог шумов режим спектра, ручная настройка
#define AUTO_LOW_PASS 0 // разрешить настройку нижнего порога шумов при запуске (по умолч. 0)
#define EEPROM_LOW_PASS 1 // порог шумов хранится в энергонезависимой памяти (по умолч. 1)
#define LOW_PASS_ADD 13 // "добавочная" величина к нижнему порогу, для надёжности (режим VU)
#define LOW_PASS_FREQ_ADD 3 // "добавочная" величина к нижнему порогу, для надёжности (режим частот)
// режим цветомузыки
#define LOW_COLOR RED // цвет низких частот
#define MID_COLOR GREEN // цвет средних
#define HIGH_COLOR YELLOW // цвет высоких
FAQ
Основные вопросы
В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.
В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/
В: Компьютер никак не реагирует на подключение Ардуины!
О: Возможно у тебя зарядный USB кабель, а нужен именно data-кабель, по которому можно данные передавать
В: Ошибка! Скетч не компилируется!
О: Путь к скетчу не должен содержать кириллицу. Положи его в корень диска.
В: Сколько стоит?
О: Ничего не продаю.