/ColorMusic

Цветомузыка на Arduino и WS2812b

Primary LanguageC++MIT LicenseMIT

PROJECT_PHOTO

Светомузыка на Arduino и WS2812b

Версии прошивки

  • 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 - схемы подключения

Схемы

Обычная

SCHEME

С микрофоном

SCHEME

Материалы и компоненты

Ссылки оставлены на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится

Как скачать и прошить

  • Первые шаги с 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 - Анализатор спектра
      • Стрелки ← →: шаг цвета
      • Стрелки ↑ ↓: цвет

НАСТРОЙКА НИЖНЕГО ПОРОГА ШУМА (строки 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-кабель, по которому можно данные передавать

В: Ошибка! Скетч не компилируется!
О: Путь к скетчу не должен содержать кириллицу. Положи его в корень диска.

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

Полезная информация