Code Monkey home page Code Monkey logo

colormusic's Introduction

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-кабель, по которому можно данные передавать

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

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

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

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

colormusic's People

Contributors

alexgyver avatar evg33 avatar gyverlibs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

colormusic's Issues

Пульт от Амперки

Предлагаю добавить настройки к пульту от Амперки

0xECCC87A9 Power
0xCE65B4A9 -
0xFE1762A9 +
0x7F0B0A9 RED
0x988829A9 GREEN
0x4DBEBA9 BLUE
0x592049A9 X
0x3AB976A9 Cube
0x9B9CEEA9 Triangle
0xEFE14CA9 LeftTop
0xD17A79A9 Top
0x12C27A9 RightTop
0x5C350EA9 Left
0xA35D74A9 Play/pause
0x6A6B24A9 Right
0x6D7FE9A9 Left Bottom
0xA048AFA9 Bottom
0x3DCE3BA9 RightBottom
0x921299A9 X
0x8EFDD4A9 Y
0x25BED7A9 Z

Как изменить точку начала?

На видео видно что лента зажигается с середины. Но как изменить это место? Хочу сделать квадрат и п-образное ответвление. И несколько точек зажигания. Две на квадрате и две на п-образном ответвление.Его планирую подключить через развитвитель. Кто может помочь советом?

Arduino Pro Micro

Думаю стоит включить поддержку Arduino Pro Micro

У промикры есть 2 недостатка:

  1. Она дороже рублей на 50 (0.7$).
  2. У неё не выведен на ноги платы AREF, потому потенциометр можно подключить только подпаиваясь под линзой к плате на 42й вывод МК или проще на С1 (на он плате между GND и RESET http://i.imgur.com/ufiWvdz.jpg ). Но с MAX9814 мне AREF и не потребовался.

Но зато есть и достоинства:

  1. Меньше размером.
  2. Больше оперативки, т.е. на 180 светодиодов больше держать может.
  3. Есть 2 варианта. С MicroUSB и с MiniUSB (на фотке с MicroUSB (чип без поворота), на схеме ниже MiniUSB (чип под углом 45 к кромке платы)).
    Оба варианта посмотреть можно тут: https://ru.aliexpress.com/item/1-TENSTAR-Pro-Micro-AT..

Компиляция colorMusic_v2.6.2_WAVGAT позволяет:
Nano: max 388 светодиодов;
ProMicro: max 569 светодиодов.

Компиляция colorMusic_v1.1.ino:
Nano: max 439 светодиодов;
Pro Micro: max 622 светодиодов.

Неправильные цвета? Есть решение

Столкнулся с проблемой "из коробки".
Моя лента использует порядок РГБ, то есть стандартные для цветного мира наборы байт.
Настраиваю под себя, прописываю высокие на фиолетовый цвет, средние на лимонный, а басы на бордовый. Проверяю - циановый, сопливо-зелёный и зелёный 0_о
СРазу понимаю, что порядок явно не тот.
Рою код и нахожу:
void setup() { Serial.begin(9600); FastLED.addLeds<WS2811, LED_PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); if (CURRENT_LIMIT > 0) FastLED.setMaxPowerInVoltsAndMilliamps(5, CURRENT_LIMIT); FastLED.setBrightness(BRIGHTNESS);

Само собой, решение очевидно, надо передавать либе правильный порядок.
Алекс, занеси это в настройки (строка с порядком как константа под дефайном).
Надеюсь, многих выручил.

Хорошая фигня, будет время - займусь перепилю на питоне для малины =)

Проблема со схемой с микрофоном.

Может быть я такой везучий, но при работе схемы с микрофоном нашел баг. При первом режиме работы, загорается и горит пол ленты. Когда крутишь резистор добавляешь или уменьшаешь количество светодиодов которые горят. Потом постепенно количество светящихся светодиодов приходит в норму. Калибровка шума не помогает. Лечится добавлением резистора, я ставил 10-30 кОм(Больше не было) все приходит в норму. Немного страдает чувствительность, но на 30 КОм она уже не значительная.
Проверьте и добавьте себе в проект это изменение. Если нужно могу видео предоставить с объяснениями.
PS: Используется Arduino UNO, все остальное как в проекте.

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

Привет. На стенке сверху заброшены 2 колонки от музыкального центра и bluetooth услилитель класса d. Питалние 12 вольт от компьютерного старого БП (заодно есть запас по мощности огромный например для светомузыки)
Соответственно линейного входа нету, можно брать с выхода усилителя через делитель на резисторах. Если максимальное напряжение на выходе = напряжение питания = 12 вольт какие параметры резисторов посоветуешь?

Добавление цветов

Здравствуйте, подскажите пожалуйста как добавить в проект цветов?
/*
Цвета для HSV
HUE_RED
HUE_ORANGE
HUE_YELLOW
HUE_GREEN
HUE_AQUA
HUE_BLUE
HUE_PURPLE
HUE_PINK
*/
Это весь список доступный в проекте

Не работает на LGT8F328P

"Из коробки" некорректно работает на LGT8F328P.
Изначально на частоте 32 МГц не заработало вообще (лента не светилась), на 16 заработало. Вроде бы проблема решилась после обновления библиотек.
Однако индикатор уровня работает некорректно из-за того что АЦП 12 бит вместо 10, следовательно диапазон значений отличается. Также есть несколько опорных напряжений. (Для себя это вручную исправил).

Переключение режима на ходу

К пулл реквесту #13
Почему бы не сделать фичу для переключения режима управления на ходу?
Не думаю, что хардкодить в прошивке - это удобно.

Как там дела с памятью устройства? Если хватает места в памяти, можно открыть по этой теме милстоун

Несколько пультов в одном коде.

Не удобнее будет, если все пульты будут находиться в одном коде ?
С помощью директив препроцессора переключать нужный код при компиляции.
Т.е. в бинарнике будет только нужный пульт.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.