ARDUINO Цветомузыка на Arduino. Обсуждение проекта

Lt_bit

✩✩✩✩✩✩✩
4 Ноя 2020
15
1
Приветствую, может кто подскажет, из-за чего могут быть периодические замирания эффекта в режиме "Шкала громкости"?
Сборка на базе Arduino Nano, схема от Technotrasher, прошивка от Slenk. Входной сигнал подается через 2х полосный эквалайзер и доп регулятор громкости т.е. с уровнем сигнала и полосой частот все ОК.

на прошивке от AlexGyver таких проблем нет.
Просто кто-то в скетче для экономии памяти поставил переменную в "коварном месте" byte нужна int 🙃. Какое у вас количество светодиодов?
Как вариант может быть незначительные помехи от БП.
 
Изменено:

anry1957

✩✩✩✩✩✩✩
12 Дек 2020
1
0
Собрал установочку по схеме на Nano и запустил. Работа вполне достойная и эффектная. За это автору большой, большой респект. Настроился на замену платы на Pro Micro по схеме со странице проекта https://alexgyver.ru/colormusic/ предложенной Евгением Зятьковым (ака Evg33). Для тех, кто попробовал этот вариант пара вопросов. Средняя точка конденсаторов в цепи выхода микрофонного усилителя на МАХ9814 притянута к земле вроде резистором 330 Ом не маловато будет? Ну и регулировка опорного напряжения для АЦП для этой платы не получается в "железе" поэтому вопрос - как ведет себя плата Pro Micro в этом проекте? Что есть смысл и необходимость корректировать в скетче? Какие еще подводные камушки встречаются при сборке и запуске?
 

yasilent

✩✩✩✩✩✩✩
11 Ноя 2020
10
0
Народ, прошу помощи. Может кто нибудь сделать, чтоб вместо стробоскопа в цветомузыке (вер.2), был эффект пламени и чтоб можно было кнопками на пульте (право-лево) менять его цветность. Попробовал сам разобраться, но боюсь старость настанет, пока разрулю че к чему в коде.
 

VanGliff

✩✩✩✩✩✩✩
12 Дек 2020
1
0
Всем здрасте) Представляю своё видение данного проекта.
Коротко:
Лента у меня 30 диодов на метр и длинной 102 диода. Приклеена под подоконником на балконе. Жрет в максимальном режиме (белый) 1.7А.
Изрядно переписал код (за основу взята прошивка от technotrasher, за что ему респект). Сделал более логичное меню (на мой взгляд), исправил несколько имеющихся и добавил пару десятков новых эффектов (часть из них на видео), добавил упрощенный вариант схемы без диодов, кнопок и транзистора, добавил индикацию на саму ленту, добавил сброс настроек без перепрошивки.
ПС. на фото модуль с Али, цена ~100 рублей, позволяет из высокоуровнего выхода (на колонки), сделать низкоуровневый (aux), а так же имеет независимую регулировку каналов. Аккуратно собран, на борту все необходимое и не надо ничего колхозить.
Добавил упрощенную схему без транзистора и диодов. У меня переключение с микрофона на линейный вход происходит обычным тумблером. Он же зажигает либо зеленый, либо красный светодиод и отключает питание микрофона аппаратно.

Добавил аппаратную кнопку выключения питания, мне кажется не гоже БП быть постоянно под напряжением.

В качестве корпуса использовал пластиковую белую (есть еще цвета под дерево, да и покрасить легка) распределительную коробку из Леруа размером 10х10х3. Вообще они есть разных размеров, в аналогичной коробке (только меньше) в свое время собирал мини лабораторник, так что возьмите на заметку.

Задействовал китайский модуль преобразования высокоуровневого сигнала.

Значительно изменил структуру кода, удалил лишние функции, переменные и тд., дописал нужные функции. Поменял вкладки и в целом попытался оптимизировать код. Теперь это больше похоже на единый проект, а не «Франкенштейн».

Добавил пару десятков эффектов и «пересобрал» управление всем этим хозяйством – на мой взгляд такое управление более интуитивное и логичное.

Добавил сброс на стандартные параметры без перепрошивки (4 раза «ОК» в выключенном состоянии).

Добавил индикацию нажатия кнопок, а так же режима «Выключено» и режима «Настройки» на самой ленте (зачем паять и программировать дополнительные светодиоды если у нас и так есть +/- сотня диодов на ленте, да и наглядней так). «Выключено» - первый диод на ленте тускло мигает красным. «Настройки» - 8 первых диодов на ленте горят «радугой».

Подрежимы у меня переключаются «*» в одну сторону и «#» в другую.

Все одноцветные режимы собрал на кнопке «1».
Добавил туда просто белый с возможностью изменения температуры и яркости («ОК» - сбрасывает температуру). Затем идет один выбранный цвет. Затем плавная смена цвета. Добавил пульсацию случайным цветом и резкую смену на случайный цвет.

Все «разноцветные» режимы на кнопке «2».
Поменял очередность. Чуть доработал «Радугу». Переписал сомнительный симметричный огонь из центра на более плавные и независимые огни с краёв, перевел на другое цветовое пространство, что дало ряд плюшек. И теперь можно менять цвет этих огней с пульта. На основе этого добавил эффект: «Лёд и Пламень» - с одной стороны натуральный, а с другой синий огонь и они типо борются между собой. Добавил «пестрящий» огонь – цвет так же можно менять. Добавил огонь на шуме Перлина и на его основе еще несколько эффектов: «Облака», «Бассейн», «Плазма» и тд., можно еще поиграться с параметрами и хоть десяток добавить, в памяти они ничего не занимают, лишь разные вводные для функции задаются. Цвета этих эффектов так же можно менять с пульта и у них есть реакция на звук.

На кнопке «3» у меня стробоскоп, с возможностью изменения цвета пультом.

Кнопки «4» - «7» - цветомузыка по частотам.

На кнопке «8» - Тестовый эффект «Огоньки наперегонки»

На кнопке «9» собрал режимы цветомузыки которые зависят от громкости – «Градиент», «Радуга» и добавил к ним «Огонь», цвет которого так же можно менять с пульта.

Кнопка «0» - режим ожидания. Включить можно нажатием на любую из цифр.

Кнопка «ОК» включает режим «Настройки», как и раньше. Но теперь ручная настройка чувствительности производится «*/#» для всех режимов цветомузыки, скетч сам поймет, что настраивать.
Обновлено
  • Дальнейшая оптимизация - теперь поддержка до 300 диодов. Благодарность за тестирование и наводку Aleksandr1612
  • Добавлена возможность изменять ориентацию режимов "Шкала громкости" и "Огонь" - от центра/к центру.
  • Эффекты на "Пёрлине" (Плавный огонь, Облака, Плазма и тд.) теперь реагируют на звук. Каждый немного по своему. Если 3 секунды звука нет, то они возвращаются к своему обычному состоянию.
  • Теперь прошивка совместима со схемой от tehnotraher и OlegAnadyr, в прошивку добавлена соответствующая настройка (протестировать возможности нет, буду рад отзывам)
  • Добавлена настройка отключения индикации на ленте и на диодах
  • Добавлена настройка отключения LINE
  • Добавил несколько цветовых эффектов - ничего особо примечательного, просто для массовки
  • Настройка яркости теперь реализована "правильно" и распространяется на все эффекты
  • Оптимизация - переназначил половину переменных, констант и дефайнов. Оптимизировал функции, дописал новые и тд.
20.06.2020 v2.4:
  • Еще глубже оптимизирована структура кода (занятной памяти и строк в коде становится меньше, а функционал растёт), исправлены ошибки/баги. Добавлены комментарии.
  • Исправлено отключение MIC и LINE если используется что-то одно (настройка в прошивке - "MONO_STEREO").
  • Исправлена работа пульта (индикация и сохранение настроек теперь работает правильно).
  • Добавлена возможность переключения MIC/LINE с пульта для схемы без тумблера (в режиме настроек "ОК" нажать кнопку "0").
  • Добавлена возможность выбора цвета стробоскопа (повторное нажатие "3" меняет режимы белый/цветной, */# - выбор цвета).
  • Цветомузыка 3/5 полос теперь на одной кнопке - "6" (повторное нажатие "6" - выбор 3/5 полос, */# - перебор всех возможных комбинаций).
  • Анализатор спектра уехал на кнопку "7", а на "8" теперь с подачи tehnotraher и при его участии новый режим в тестовом варианте. (В зависимости от громкости с разной скоростью вылетают огоньки с краю/центра).
П.С. код для схемы без тумблера пишу на ощупь, проверять пока не на чем (запчасти уже в пути).

Здравствуйте! Попробовал и я повторить проект)
Не уверен была ли затронута эта тема, но т.к. в указанной версии скетча это без изменений, то напишу.
В основном речь о замечании в коде и режиме "бегущие частоты" когда в основном видно лишь низкие частоты.
Сначала залил оригинальный скетч, это было шикарно, но (наверное частая проблема) не работали 1 и 2 режим (зависают горящие светодиоды на середине ленты и не реагирует на звук) при использовании потенциометра, а без его использования (в настройках 0) вообще ничего не горит, в попытках решить (так и не решил спустя 3 дня, потихонечку сдаюсь..) наткнулся на эту прошивку, за что автору доработавшему её огромное спасибо) проблему VU режимов это конечно не решило, но при использовании я наткнулся на интересную особенность режима бегущих частот, кажется он отрабатывает не корректно в версии прошивки v2.4. Если есть низкие частоты то бегут ТОЛЬКО они и больше ничего, долго тыкался в настройки коэфициентов но к успеху это не привело. Затем попросту заметил что при выводе сигнала на ленту проверяется пик сначала низкой частоты, а потом уже все остальные. В следствии чего изменил порядок и всё заработало как надо и стало радовать глаз)
Вкладка 05_Animation в этом месте:

// 5 режим: бегущие частоты ======================================================================================================
case 5:
spektr_level();
if (freq_strobe_mode == 3) {
if (running_flag[0]) leds[SPLIT_NUM_LEDS] = CHSV(color_arr[0], 255, thisBright[0]);
else if (running_flag[1]) leds[SPLIT_NUM_LEDS] = CHSV(color_arr[1], 255, thisBright[1]);
else if (running_flag[2]) leds[SPLIT_NUM_LEDS] = CHSV(color_arr[2], 255, thisBright[2]);

Потребовалось изменить порядок что бы изначально проверялся 3й элемент массива, т.е высокие частоты, например "running_flag[2]", а уже в конце "running_flag[0]" и так со всеми, чтоб вышло:

if (running_flag[2]) leds[SPLIT_NUM_LEDS] = CHSV(color_arr[2], 255, thisBright[2]);
else if (running_flag[1]) leds[SPLIT_NUM_LEDS] = CHSV(color_arr[1], 255, thisBright[1]);
else if (running_flag[0]) leds[SPLIT_NUM_LEDS] = CHSV(color_arr[0], 255, thisBright[0]);

Таким образом можете определять какие частоты хотите видеть на бегущей полосе чаще)
 

vatero

✩✩✩✩✩✩✩
1 Июл 2020
10
1
Просто кто-то в скетче для экономии памяти поставил переменную в "коварном месте" byte нужна int 🙃. Какое у вас количество светодиодов?
Как вариант может быть незначительные помехи от БП.
Светодиодов 2 отрезка по 120шт. БП 5А, менять пробовал. Что за "коварное место"?
 
  • Лойс +1
Реакции: technotrasher

paHAn

✩✩✩✩✩✩✩
10 Дек 2020
10
0
Всем привет, возник такой затык, все собрал по схеме, заливаю последнюю версию прошивки, суть проблемы в том, что лента не реагирует на музыку, не могу понять в че проблема, единственное что у меня не коннектор под аукс, а провод напрямую подключен. ПАМАГИТИ!!!!
1607856508372.png
 

Aleksandr1612

✩✩✩✩✩✩✩
24 Июн 2019
14
8
Всем привет, возник такой затык, все собрал по схеме, заливаю последнюю версию прошивки, суть проблемы в том, что лента не реагирует на музыку, не могу понять в че проблема, единственное что у меня не коннектор под аукс, а провод напрямую подключен. ПАМАГИТИ!!!!
Ищи конденсатор и проверь блок питания, типа другой попробуй, еще резистор примерно на середину поставь и важно откуда сигнал подаешь на устройство, примерно так.
 

Lt_bit

✩✩✩✩✩✩✩
4 Ноя 2020
15
1
Светодиодов 2 отрезка по 120шт. БП 5А, менять пробовал. Что за "коварное место"?
Кондеры стоят по питанию?
К вашему количеству светодиодов не относится это "коварное место". Суть этого места в разделе Animation большенство переменных byte нужно заменить на int относится к тем людям у кого светодиодов больше 255, как у byte диапазон значения от 0 до 255, хоть и прошивка рассчитанна на 300+ светодиодов, но ловит глюки и зависания на режимах.
 

kellax

✩✩✩✩✩✩✩
13 Дек 2020
6
1
Мой варик реализации, рисунок исполнен на лазерном станке.
ПОМОГИТЕ ЧАЙНИКУ. При подключении через разделитель 3,5 на колонках появляется минимальный пердеж на низких частотах, как ето исправить? IMG_20201213_130959.jpg
 

paHAn

✩✩✩✩✩✩✩
10 Дек 2020
10
0
Ищи конденсатор и проверь блок питания, типа другой попробуй, еще резистор примерно на середину поставь и важно откуда сигнал подаешь на устройство, примерно так.
блок от телефона на 2.5А 5v, а насчет резистора не уверен что поможет, конденсатор проверю, сигнал с компа
 

Aleksandr1612

✩✩✩✩✩✩✩
24 Июн 2019
14
8
блок от телефона на 2.5А 5v, а насчет резистора не уверен что поможет, конденсатор проверю, сигнал с компа
Всё же кондер на А3 поставь, БП от бп отличаются, с компа нормально. И с переменным резисторлм надо поиграться с регулировкой. Надо все по схеме сделать и в скетче указать используемое количество диодов.
 

yasilent

✩✩✩✩✩✩✩
11 Ноя 2020
10
0
Народ, какая то непонятная проблема. Лента с обоих концов запитана, но почему то мигает всеми цветами очень быстро, а должна просто гореть красным. Но если дотронуться рукой до ленты, то начинает гореть как положено ... ??? В чем проблема ?

Причем если отсоединить + и - с одного конца, то так же горит как и положено, но проседает напряжение к концу ленты
 

Вложения

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
@paHAn, проверь номера пинов в прошивке и на своей плате, проверь/замени конденсаторы, как вариант повесить между GND и входами обоими резистор на 47-100кОм.
@kellax, смотри как подключил землю и не забыл ли поставить конденсаторы. Либо варант что у тебя один БП на все и мостовой выход на колонки, а ты его проводом на GND замкнул.
@yasilent, поставь конденсаторы на концах ленты на 1000-2200мкф на 6,3в и провода не менее 1 квадратного мм. по сечению.
 
  • Лойс +1
Реакции: kellax

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Народ, прошу помощи. Может кто нибудь сделать, чтоб вместо стробоскопа в цветомузыке (вер.2), был эффект пламени и чтоб можно было кнопками на пульте (право-лево) менять его цветность. Попробовал сам разобраться, но боюсь старость настанет, пока разрулю че к чему в коде.
Это сделано в прошивке от сленка)))
 

kellax

✩✩✩✩✩✩✩
13 Дек 2020
6
1
@kellax, смотри как подключил землю и не забыл ли поставить конденсаторы. Либо варант что у тебя один БП на все и мостовой выход на колонки, а ты его проводом на GND замкнул.
Колонки начинают пердеть сразу как только подключаю 3.5. ДАЖЕ не влючаю БП от цветомузыки в сеть. Да и БП разные. Конденсатор есть 10v 2200mF. Спасибо, но все не то... Получается что пердеж идет от ардуино? Надо матчасть учить, так дальше не пойдет...
Скажите мне что я не полный лох что припаял кондер одной ножкой к А3 а второй на А2 ( тот что идет к джеку). На схеме он идет к джеку паралельно А2. Но мой мозг мне говорит что так тоже можно.
 

Вложения

Изменено:

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Колонки начинают пердеть сразу как только подключаю 3.5. ДАЖЕ не влючаю БП от цветомузыки в сеть. Да и БП разные. Конденсатор есть 10v 2200mF. Спасибо, но все не то... Получается что пердеж идет от ардуино? Надо матчасть учить, так дальше не пойдет...
Скажите мне что я не полный лох что припаял кондер одной ножкой к А3 а второй на А2 ( тот что идет к джеку). На схеме он идет к джеку паралельно А2. Но мой мозг мне говорит что так тоже можно.
так не стоит делать, делай все как на рисунках у гайвера или в схемах других участников)) и еще я так понимаю слово "делитель" ничего не говорит? Нужно сигнал подавать не более 5в на вход, а у вас я так понимаю напрямую с акустики? Если это так, то надо сделать делитель хотя бы какой то на входе...
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Кондеры стоят, провод 2 квадрата по 2.5 метра, блок питания 5в10а
Тогда не знаю что за косяк, по симптомам это наводки на сигнальную жилу, попробуй экранировать ее или послать отдельно от питания витой парой (один провод на GND дуни, второй на сигнальный) у меня больше 2м до ленты и провод просто 2,5х3 из электромага, центральная жила должна быть сигнальной в таком варианте, а питающие по краям, кондеры по 1000мкф.
 

Lt_bit

✩✩✩✩✩✩✩
4 Ноя 2020
15
1
Кондеры стоят, провод 2 квадрата по 2.5 метра, блок питания 5в10а
Замени 2м кусок кабеля на телевизионный ЭКРАНИРОВАННЫЙ одножильный, похоже очень на водки, экран в воздухе оставь. Была такая же фигня только на 4м
 
  • Лойс +1
Реакции: yasilent

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
Замени 2м кусок кабеля на телевизионный ЭКРАНИРОВАННЫЙ одножильный, похоже очень на водки, экран в воздухе оставь. Была такая же фигня только на 4м
Тогда уж лучше вот такой:
1607959884386.png
Гуглить по слову "КВК" или "Мини КВК". Для адрески и всяких датчиков/модулей - это идеальный кабель. Изначально предназначен для видеонаблюдения. Экранированная сигналка + 2*0,75 (2*0,5) в одном флаконе. Вообще удивлен, что Гайвер его не советует, надо наверно подсказать, может не знает.
 
  • Лойс +1
Реакции: yasilent

Lt_bit

✩✩✩✩✩✩✩
4 Ноя 2020
15
1
@Lt_bit, а можно подробней? Я код пересмотрел и не увидел где бы это могло стать проблемой.
Код:
// 2 Режим: цветомузыка убежавшая вспышка
    case 1: {
        this_color++;
        byte magnitude = 0;
        [U]byte[/U] vally = max(Llenght, Rlenght);
        if (vally > 25) {
          if (timer_func(80)) { //100
            magnitude =  map(vally, 26, SPLIT_NUM_LEDS, 1, 255);
            if (magnitude > 0) {
              for ([U]byte[/U] i = 0; i < N_PEAKS; i++) {

  // 9 режим: анализатор спектра
    case 8: {
        byte HUEindex = HUE_START;
        for ([U]byte[/U] i = 0; i < SPLIT_NUM_LEDS; i++) {
          this_bright = map(freq_f[(int)floor((SPLIT_NUM_LEDS - i) / freq_to_stripe)], 0, freq_max_f, 0, 255);
byte заменил на int полет нормальный 770диодов.
 
Изменено: