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

novvel

★✩✩✩✩✩✩
29 Сен 2018
144
14
А вот подскажите пожалуйста что делать с 6 режимом(вспыхивание по частотам), раньше он у меня начинал моргать когда я отключал не светящиеся диоды, когда возвращал обратно было норм(хоть как-то работало, а не тупо моргало), сейчас же ничего не помогает, ни сброс настроек, ни калибровка какая ниибудь и не прошивка, и помогите еще пожалуйста с 4-6 режимами, с этим чертовым НЧ(заливает все красным)...
Я просто их не использую, они в основном не работают)) Иногда удается добиться работы подстройкой чувствительности, но потом опять они ломаются, вот сейчас на 4 более менее работает (вообще не использую его, ибо радость эпилептика), 5 льет красным в основном, но если выбирать почастотную версию, то все отрабатывает нормально, а вместе не очень, 6 работает почти нормально.

И тут задача для @Slenk, нарисовалась: когда я убавляю яркость фоновой подсветки в этом режиме (6), лента начинает моргать как на самовозбуждении, поднимаю яркость на пару пунктов и она нормально работает. Давно этот баг был, не понимал с чем он связан, наконец то нашел.
 
Последнее редактирование:

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
И тут задача для @Slenk, нарисовалась: когда я убавляю яркость фоновой подсветки в этом режиме (6), лента начинает моргать как на самовозбуждении, поднимаю яркость на пару пунктов и она нормально работает. Давно этот баг был, не понимал с чем он связан, наконец то нашел.
Ха)) Действительно при беглом взгляде на код похоже, что Гайвер нам очередную "пасхалочку" оставил)) Там при определенных сочетаниях "яркости негорящих" и "шага уменьшения яркости" эффект уходит в рекурсию)))
Если есть желание, можно попробовать поменять тип переменной "EMPTY_BRIGHT" на int и проверить. Но предупреждаю, что это не может быть решением - это костыль, который выскочит боком с противоположной стороны.

Что касается "частотных" режимов. Я знаю, что они работают так себе. Это во-первых из-за не самой удачной схемы, а во-вторых из-за не самого удачного кода. Но я ничего из этого не менял)) В частоты я толком не лазил, логику работы не менял изменения чисто "косметические". Только в настройках сборная солянка (где-то от Гайвера, где-то от Технотрешера, а где-то от меня), если у кого-то хорошо работало на прошивке Гайвера, но плохо на моей, то просто перенесите настройки оттуда (всякие LOW_PASS_FREQ_ADD и тд.).
Но теоретически я могу предложить кучу разных вариантов, которые могли бы помочь, просто у самого еще очередь до этого не дошла. Например можете "поиграться" срезом низких частот вот тут (вкладка 02, строка ~115):
// низкие частоты, выборка со 2 по 5 тон (0 и 1 зашумленные!)
for (byte i = 2; i < 6; i++) { //2-6
можно попробовать начинать цикл с 3 или 4, 5. Тогда самые низкие низы перестанут всё забивать.
Или можно наставить разных коэффициентов для разных частот (как в чип-дип), но тут я на пальцах не объясню. И так далее.
И по хорошему вообще сузить этот "эквалайзер" с 32 до 16 (а то и до 8 как в чип-дип) полос, не совсем понимаю зачем нам эта "невероятная точность" с таким шагом, все равно ведь нифига нормально не работает, да и усредняется в итоге до 3 полос (кроме анализатора спектра). Но может конечно в этом и был какой-то смысл, хз.
 
Последнее редактирование:
  • Лойс +1
Реакции: technotrasher

Skeptik

✩✩✩✩✩✩✩
14 Янв 2021
6
0
Загораются все 120, но половина зеленым горит, а другая половина красным и по одному красные переключаются на синие. На кнопку и потенциометр не реагирует. БП 5в 3А , лента 120 светодиодов, на конце ленты ( дальней от подключения) 5,1в. Прошивка 2.
 

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
@Skeptik, земли на ленте и ардуине соединены?

П.С.
Еще по поводу режима "Бегущие частоты". Там действительно в оригинале у Гайвера идет приоритет на высокие, потом средние, потом низкие. А я его почему-то "развернул". Поэтому верну всё в зад. И еще кой чего испробую: убрать приоритет и что бы все частоты сразу ползли, но каждая по своей "траектории", дабы не перекрывались.
 
Последнее редактирование:

novvel

★✩✩✩✩✩✩
29 Сен 2018
144
14
@Skeptik, лучше показать видео и настройки скетча, а то непонятно что то, ну и последние 10 страниц прочитать обязательно, тут много подобного обсуждалось.
 

novvel

★✩✩✩✩✩✩
29 Сен 2018
144
14
// низкие частоты, выборка со 2 по 5 тон (0 и 1 зашумленные!)
for (byte i = 2; i < 6; i++) { //2-6
можно попробовать начинать цикл с 3 или 4, 5. Тогда самые низкие низы перестанут всё забивать.
Или можно наставить разных коэффициентов для разных частот (как в чип-дип), но тут я на пальцах не объясню. И так далее.
И по хорошему вообще сузить этот "эквалайзер" с 32 до 16 (а то и до 8 как в чип-дип) полос, не совсем понимаю зачем нам эта "невероятная точность" с таким шагом, все равно ведь нифига нормально не работает, да и усредняется в итоге до 3 полос (кроме анализатора спектра). Но может конечно в этом и был какой-то смысл, хз.
Поигрался я короче с тонами, не дают они толку ни какого, все равно заливает красным) вот без музыки вроде все нормально, но как только сложный сигнал так все красное. даже тарелочки когда играют на фоне толпы, то загорается только красные, как будто считает фронты сигнала, а сам сигнал не учитывает или маскирует.

UPD^короче в 5 режиме все красное, а в 6 все отрабатывает более-менее нормально после редактирования тонов, т.е. все полоски горят и моргают как положено. А в 5 я так понимаю красный наезжает на остальные цвета почему то, как будто у него приоритет выше и он на верхнем слое.
 
Последнее редактирование:

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
@novvel, да там не "почему-то", там такой код:
C++:
        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]);
        else                                  leds[SPLIT_NUM_LEDS] = CHSV(EMPTY_COLOR,  255, EMPTY_BRIGHT);
То есть если БАСС присутствует в сигнале, то он его "рисует" на ленте и дальше уже ничего не проверяет. Если БАСС отсутствует, то код переходит к проверке средних и тд.
Если поменять очерёдность: вместо 0-1-2 поставить 2-1-0, то соответственно проверка будет начинаться с высоких, как было в оригинале.
Но это как бы тоже не очень правильно. По хорошему надо допилить режим 8 и на его основе имитировать эти "бегущие частоты"
 

novvel

★✩✩✩✩✩✩
29 Сен 2018
144
14
@novvel, да там не "почему-то", там такой код:
C++:
        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]);
        else                                  leds[SPLIT_NUM_LEDS] = CHSV(EMPTY_COLOR,  255, EMPTY_BRIGHT);
То есть если БАСС присутствует в сигнале, то он его "рисует" на ленте и дальше уже ничего не проверяет. Если БАСС отсутствует, то код переходит к проверке средних и тд.
Если поменять очерёдность: вместо 0-1-2 поставить 2-1-0, то соответственно проверка будет начинаться с высоких, как было в оригинале.
Но это как бы тоже не очень правильно. По хорошему надо допилить режим 8 и на его основе имитировать эти "бегущие частоты"
а, теперь дошло, оно так и работает значит)) получается ждем когда будет 8 (я так понимаю точки который) и на основе его перепиливаем в 5? А может можно как то сделать что бы не перекрывало, а просто выводило то, что есть или все равно придется переделать весь код? Вообще во всех этих ЦМУ самое крутое это на основе перлина тот случайный 2.20 эффект нравится(который не должен был выйти в свет из теста :D ), 5, 8 и 9, остальное я не использую лично, в основном как подсветка юзается или вечерний свет.
 
  • Лойс +1
Реакции: vatero

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
а, теперь дошло, оно так и работает значит)) получается ждем когда будет 8 (я так понимаю точки который) и на основе его перепиливаем в 5? А может можно как то сделать что бы не перекрывало, а просто выводило то, что есть или все равно придется переделать весь код?
Можно по минимуму переделать. Выводить бас условно в 1-ом пикселе, средние во 2-ом, высокие в 3-ем. А в следующем такте сдвигать их не на один пиксел в сторону края, а через два. Таким образом каждая частота поедет по своей "полосе". Ну еще скорость отрисовски надо уменьшить в три раза, что бы компенсировать этот скачек. Это если по быстрому на костылях.
 
  • Лойс +1
Реакции: fastdron

novvel

★✩✩✩✩✩✩
29 Сен 2018
144
14
еще баг нашел, палитра с артефактами почему то в режиме VU от зеленого к красному, раньше не замечал. Они там в нескольких местах так артафачат, пиксели не туда залезли)
IMG_20210116_121450.jpg
 

SeverTV

✩✩✩✩✩✩✩
4 Дек 2020
13
0
Здравствуйте,подскажите может что изменилось как переключать между MIC и LINE прошивка 2.5.1- как по пунктам?
1.Система включена.
2.Нажимаем ОК.первые 8 диодов - радуга
3.Нажимаем 0(ноль)
что то не переключается.
сигнал подаю со смартфона вых. наушники.
 

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
@SeverTV, все верно, алгоритм такой. Если "моно-стерео" = 0, то там помимо 8 диодов радугой, будут еще первые 4 диода гореть либо красным (лайн), либо зеленым (микрофон)
 

SeverTV

✩✩✩✩✩✩✩
4 Дек 2020
13
0
@SeverTV, все верно, алгоритм такой. Если "моно-стерео" = 0, то там помимо 8 диодов радугой, будут еще первые 4 диода гореть либо красным (лайн), либо зеленым (микрофон)
делаю так ничего не происходит,радуга горит,а лайн и микрофон нет.Хотя работает он микрофона.в настройках 1 - Моно (микрофон или одноканальный линейный)

1.Выключена- мигает красный светодиод.
2.Включаю (например 4).
3.Нажимаю ОК. ничего не происходит,ещё раз ничего,с четвёртого раза радуга включилась.
4.Ноль нажимаю-светодиоды как были радугой так радугой и горят.(первые 4 диода гореть либо красным (лайн), либо зеленым (микрофон) -не горят.
косяк какой то рядом -а я его не вижу.магия
 

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
@SeverTV, дак если в настройках 1-Моно эта индикация и не будет гореть))
Точно надо переписывать инструкцию)

0 - это задействованы оба входа микрофон и линейный и между ними можно переключаться
1 - задействован только микрофон (но вместо него можно припаять моно провод)
2 - задействован только стерео линейный
 
  • Лойс +1
Реакции: SeverTV

SeverTV

✩✩✩✩✩✩✩
4 Дек 2020
13
0
Всё заработало.Как вы написали 0 - задействованы оба входа микрофон и линейный и между ними можно переключаться - у меня стояла -1 .После того как поставил -0 ,пульт что ли косячил странно - под определённым углом срабатывает только по диодам и ориентируешься,с нескольких раз переключается.
Спасибо!!!
 
Последнее редактирование:

SeverTV

✩✩✩✩✩✩✩
4 Дек 2020
13
0
сейчас смотрел в прошивке 2.5.1 инструкцию-там походу ошибка (кнопка 6)
6 | Стробоскоп | Кнопки * / # - Смена цвета |
| повторное нажатие - белый/цветной | Плавность вспышек | Частота вспышек
у нас же стробоскоп на кнопке 3.
 

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
когда я убавляю яркость фоновой подсветки в этом режиме (6), лента начинает моргать как на самовозбуждении, поднимаю яркость на пару пунктов и она нормально работает. Давно этот баг был, не понимал с чем он связан, наконец то нашел.
Вкладка 02, строка ~138
кусок кода:
C++:
    if (thisBright[i] >= 0) thisBright[i] -= SMOOTH_STEP;
    if (thisBright[i] < EMPTY_BRIGHT) {
      thisBright[i] = EMPTY_BRIGHT;
      running_flag[i] = false;
    }
поменять на:
C++:
    if (thisBright[i] > (EMPTY_BRIGHT + SMOOTH_STEP)) thisBright[i] -= SMOOTH_STEP;
    else {
      thisBright[i] = EMPTY_BRIGHT;
      running_flag[i] = false;
    }
@SeverTV, да, там куча ошибок) исправлю)
 
  • Лойс +1
Реакции: novvel и SeverTV

novvel

★✩✩✩✩✩✩
29 Сен 2018
144
14
@Slenk, попробую позже, пока некогда и лень)) спасибо

UPD: залил, работает вроде как
 
Последнее редактирование:

Skeptik

✩✩✩✩✩✩✩
14 Янв 2021
6
0
Доброго времени. Спасибо за участие в моем вопросе.
Да, земли соединены, поскольку питаются от одного источника.
С удовольствием прочитал последние 10 страниц, поделил участников этой ветки на очень умных ( которые уже давно работают с Arduino ) и начинающих ( таких как я ).

Что то видео никак. Говорит слишком большой. Хотя всего 12м

Кто подскажет, что здесь не так?
 

Вложения

Последнее редактирование:

galgalg

★✩✩✩✩✩✩
11 Янв 2020
43
16
Подскажите:
#define CURRENT_LIMIT 0+ // Лимит по току в МИЛЛИАМПЕРАХ, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит
Если надо ограничение в 2 Ампера, то вместо 0+ надо подставить 2000?
 

Slenk

★★★✩✩✩✩
21 Янв 2020
133
107
@galgalg, да, 2000, только не "0+", а "0", перекачайте прошивку, эту опечатку исправил уже.
 
  • Лойс +1
Реакции: galgalg

Норильский

✩✩✩✩✩✩✩
12 Янв 2021
1
0
34
так не стоит делать, делай все как на рисунках у гайвера или в схемах других участников)) и еще я так понимаю слово "делитель" ничего не говорит? Нужно сигнал подавать не более 5в на вход, а у вас я так понимаю напрямую с акустики? Если это так, то надо сделать делитель хотя бы какой то на входе...
на видео у Александра (гайвера) именно так и сделано, припаяно прямо на ардуине