ARDUINO Цветомузыка на Arduino. FireEdition.

Что нужно сделать в первую очередь?

  • Оптимизировать/исправить баги в текущем варианте

  • Добавлять новых эффектов/функций

  • Улучшить обработку звука

  • Автору виднее, что лучше.


Результаты будут видны только после голосования.
Цветомузыка на Arduino. FireEdition.
Всем здрасте) Представляю своё видение данного проекта.

В общем собрал систему на основе прошивки от technotrasher (за что ему респект). Ленту 30 диодов на метр и длинной 102 диода приклеил под подоконником на балконе. Решил добавить «Огонь» на Пёрлине, а дальше всё как в тумане…

ВНИМАНИЕ! Данная прошивка УСЛОВНО совместима с оригиналом от Гайвера. Отличается БОЛЬШИМ количеством дополнительных функций/настроек/эффектов, все подробности под спойлерами.
Прошивка хоть и основана на Гайверовской, но ощутимо отличается как по функционалу, так и по управлению и программной части. Поэтому далее по тексту будет не сравнение с оригиналом, а просто описание основных возможностей. В связи с тем, что проще указать, что в них общего, нежели перечислять отличия.
В прошивке несколько десятков эффектов. Половина из них зависят от звука, а половина выступают в роли обычной Подсветки. В данной реализации они по возможности логично разделены на 9 групп (Режимов). И каждый Режим разделяется на Подрежимы (Эффекты).

Может работать от микрофона или от линейного входа. Либо одновременно с возможностью переключения.

Настройки для каждого Эффекта не зависят друг от друга и сохраняются отдельно.

Настроить можно скорость/яркость/плавность и т.д., в зависимости от Эффекта.

Функция «Демо», при которой Подрежимы в выбранном Режиме будут автоматически сменять друг друга.

Функция «Тишина». В случае, если на определенное время музыка останавливается, то система переключается на Подсветку. При появлении звука вновь возвращается к Режиму цветомузыки.

Возможно управлять с ик пульта или с двух физических кнопок.

Возможно настроить «плотность пикселей», чтобы на ленте 30 диод/метр и 144 диод/метр Эффекты выглядели более-менее одинаково.

Присутствует индикация (нажатие кнопок, дежурный режим и т.д.) либо на распаянных светодиодах, либо на самой ленте.

Можно изменить ориентацию направления Эффектов, где анимация идёт от краёв к центру или от центра к краям. Полезно, если лента разделена на две части (два вертикальных столба) и уже смонтирована.

Функция ДопКанал (ДК). Это возможность в дополнение к «адреске» подключить к системе обычную RGB ленту любой длинны или RGB прожектор’ы (да вообще любые RGB источники света). В зависимости от выбранного режима ДК будет либо жить «своей жизнью» и, например фигачить стробоскоп, либо дополнять основной Эффект.

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

Всё это по возможности максимально «модульное», то есть нужное можно подключить, а ненужное отключить.
Прежде чем задать вопрос в обязательном порядке необходимо ознакомиться с информацией под всеми спойлерами. В том числе там описано как именно нужно задавать вопрос. Не торопитесь писать мне в личку, тут ответят гораздо быстрее.
Активируется настройкой "IR_REMOTE"
Настройка "WAVGAT" - "1"
Использование пульта WAVGAT не рекомендуется. Особенно если планируется пользоваться всем функционалом прошивки. Управление будет сильно перегружено. И сам по себе WAVGAT плохого качества.
1645565730405.png
Настройка "WAVGAT" - "0"
Желательно использовать какой-нибудь пульт от старой техники. Они намного более качественные и на них больше кнопок.
Вот пример как можно настроить управление при наличии большего количества кнопок.
1647204883874.png
Активируется настройкой "BUTTONS"

Имеется Кнопка А и Кнопка В
1. Кнопка А листает режимы с 1 по 9 (и в обратную сторону при двойном клике).
2. Кнопка В листает подрежимы, то есть аналог "*" (и соответственно двойной клик - "#")
3. Длинный клик на А - аналог "0"
4. Длинный клик на В - аналог "Ок"
5. Зажать кнопку А и клацать на В - аналог вверх (двойной клик - вниз)
6. Зажать кнопку В и клацать на А - аналог вправо (двойной клик - влево)
7. Тройной клик на А - аналог повторного нажатия на цифру текущего режима.
8. Тройной клик на В - аналог 4/6-кратного нажатия "Ок"
Функция ДопКанал (ДК). Позволяет в дополнение к адреске подцепить обычную RGB ленту любой длинны (или прожектор например).
А - всё тоже самое, что и на первой кнопке,
В - тоже что и третья кнопка (стробоскоп),
С - "Авто" подстраивается под происходящее на адреске. Если на адреске стробоскоп - то и на ДопКанале стробоскоп, если на адреске зеленый цвет - то и на ДК зеленый цвет, если на адреске плавный огонь - то и ДК переливается в этих же оттенках и тд. Пока "Авто" не оптимизирована под все эффекты.
D - отключен.
Хз кому всё это нужно, но на мой взгляд прикольно. Можно зафигачить по периметру всей комнаты RGB, а допустим над окном адреску. Использовать как обычный свет/подсветку в обычной жизни, а в режиме вечеринки всё это дело будет вызывать эпилепсию. Либо при сборке какой-то переносной конструкции можно будет интересней обыграть проект. Либо использовать ДК вместо "яркость негорящих".

В общем у меня был чисто спортивный интерес к реализации.

Варианты подключения:
На контакты 9-11 через RGB Amplifier китайский или самодельный. Подробно об RGB лентах ТУТ. Поставить в настройках "SUB_CHAN". Так же в настройках можно указать общий катод или анод. При этом индикация на диодах самовыпилится.
Подцепить к последнему пикселу адрески еще один дополнительный адресный чип. И далее уже к нему подпаять RGB Amplifier.

Добыть этот чип можно разными способами:

1 - Купить адресную гирлянду на 50 пикселов ТАКУЮ. Отрезать последний пиксел. Расковырять. Припаять RGB Amplifier вместо/параллельно диоду. Оставшуюся гирлянду использовать по назначению. (я именно так и тестировал).

2 - Купить минимальный отрезок устаревшей WS2811 у которой диоды объединены в группы по три. Отрезать одну такую группу. Припаять RGB Amplifier вместо/параллельно диоду. (планирую испытать, но проблем быть не должно).

3 - Умудриться купить чип отдельно (и тогда поделиться информацией где). Я находил только пачкой в 500 штук.

В настройках "SUB_LEDS" указать количество дополнительных пикселов от 1 до много. Поясняю:

У вас есть 100 пикселов адрески. И вы решили прицепить еще один пиксел с припаянным RGB Amplifier. Значит нужно оставить в основных "NUM_LEDS" 100, а в "SUB_LEDS" указать "1"

У вас есть 100 пикселов адрески. И еще остался обрезок на 20 пикселов и вы решили просто посмотреть как это вообще будет работать и надо ли оно. Цепляете этот обрезок в конец своей ленты. В "NUM_LEDS" оставить 100, а в "SUB_LEDS" указать "20"

Самые умные и ленивые уже поняли, что если впадлу суеиться, но интересно протестировать можно сделать так: В "NUM_LEDS" указать допустим 70, а в "SUB_LEDS" указать "30".
Свой пульт с большим количеством кнопок. Рекомендуется.
Необходимо забиндить дополнительные кнопки пульта на переключение Режимов и Подрежимов ДК.

Пульт WAGWAT. Не рекомендуется.
Два раза нажать "ОК"

Активируется режим настройки ДК. Первые 4 диода горят синим.

Цифры на пульте: 1 - Первый Режим, 2 - Авто, 3 - Стробоскоп, 4 - Выкл.
Кнопки */#: переключают Подрежимы, но не адрески, а ДК.

Нажать "ОК" что бы выйти из режима настроек ДК.

Умные задаются вопросом, а как же теперь с 4-кратным нажатием. Да, теперь при активации ДК оно стало 6-кратным.

У меня не работает. Что делать?
Очень жаль. Не знаю.

Не ну правда?
Правда не знаю.

Ардуина вообще работает? Накатите тестовый скетч «блинк» и проверьте. (в приложении)
Лента вообще работает? Накатите тестовый скетч для ленты и проверьте. (в приложении)
Пульт вообще работает? Накатите тестовый скетч для пульта и проверьте. (в приложении)
Микрофон вообще работает? Накатите любой тестовый скетч для микрофона и проверьте. Тестовые скетчи искать в интернетах, кто первый найдет и оптимизирует (под наши пины) весь комплект - присылайте, прикреплю (часть я уже сделал).

Если что-то из этого не работает по отдельности, то не нужно пытаться запустить всё в сборе и надеяться, что оно само починится. Не починится, разберитесь сначала со своими «железками». Не нужно сразу всё паять, собирайте на макетке иначе вообще никогда не поймете в чем проблема.

Если по отдельности всё работает (на тех же пинах, что и в схеме), значит хоть что-то и с прошивкой должно работать. Напишите конкретно какие режимы не работают или работают неправильно, какая версия прошивки, какая схема (что конкретно и к каким пинам подключено) и при каких настройках.


Хочу как на схеме, микрофон + стереовход!
Делай как на схеме, и настройку «MONO_STEREO» меняй на «0».

Хочу только микрофон!
Ставь только микрофон (как на схеме), и настройку «MONO_STEREO» меняй на «1».

Хочу только линейный стереовход!
Ставь только линейный вход (как на схеме), и настройку «MONO_STEREO» меняй на «2».

Хочу только линейный моновход!
Ставь линейный вход на пин для микрофона, и настройку «MONO_STEREO» меняй на «1».

Хочу три микрофона, один линейный моновход и два дополнительных стереовхода, но я уже всё припаял на первые попавшиеся пины!
Переписывай прошивку. Очень многое прокомментировано. Переназначить пины – элементарно если потратить 10 минут и разобраться.

Как мне откалибровать шум?
1. Включить нужный вход (MIC или LINE) - нажимать "0" в режиме настроек "ОК". Микрофон и линейный калибруются независимо друг от друга!
2. Включить нужный эффект 4-7 (частоты) или 8-9 (уровни). Эти две группы калибруются независимо друг от друга!
3. Нажать 4 раза "ОК"
4. НО!!! Если имеется переменный резистор (крутилка), то повторяйте пункт "3" в разных положениях резистора. По центру, в крайнем правом, в крайнем левом и т.д. Ищите оптимальное положение! Затем уже ПОСЛЕ калибровки ОПЯТЬ можно немного покрутить. Экспериментируйте.


У меня не очень хорошо работает реакция на звук и особенно на частоты.
У меня тоже, а особенно реакция на частоты. Но если все собрать даже на макетке, поставить прошивку, сбросить настройки и откалибровать шум – то худо-бедно работать должно, а дальше уже играться с настройками чувствительности и крутить резистор подгоняя под свою систему. На форуме есть разные решения. А я потихоньку буду ковырять код и сообщать об успехах.
Вот одно из решений.
Итак, первая партия тестовых скетчей. 3 штуки.
Первый - обычный "Blink", для проверки самой платы. Просто мигает встроенным светодиодом раз в секунду. Если у Вас даже это не работает, то стоит призадуматься.
Второй - проверка ленты и питания. Указываем количество светодиодов и лимит по току (если надо). Запускается простенькая анимация Радуги. Через пять секунд включается стробоскоп с довольно "агрессивными" настройками и через 5 секунд опять Радуга. Так до бесконечности.
Если первые 5 секунд всё работает нормально, а потом плата зависает на стробоскопе - я Вас поздравляю, что-то с питанием. На "вспышке" оно сильно проседает и плата зависает. Меняйте блок питания, меняйте провода на более толстые, ставьте конденсаторы, уменьшайте лимит по току в настройках и т.д.
Третий - проверка пульта. Накатываем скетч, открываем монитор порта (выставляем 9600). Жмакаем кнопочки. Названия кнопочек ("Звездочка", "Решетка" и т.д.) выводятся в порт. Помимо этого выводится еще код кнопки. Если кнопка не распознана, то выведет код кнопки и напишет "Нипанятна!". Если ничего этого не происходит - делаем очевидный вывод.

П.С. при тестировании Третьего скетча выяснилась интересная особенность и причина одного "бага". Пульт WAVGAT - редкостное говно.
При нажатии на одну и ту же кнопку может выдать сразу два-три кода (основной и паразитные). С первого раза может вообще не распознаться код. Если зажать кнопку и не отпускать - не распознается. В общем в том числе и поэтому ЦМ с первого нажатия далеко не всегда срабатывает.
П.П.С первый попавшийся пульт от телека отрабатывает как положено и таких глюков не имеет. Стабильно выдает один и тот же код на одну кнопку.

Скетч для проверки/настройки звука будет позже, там сложнее.
  • Дальнейшая оптимизация - теперь поддержка до 300 диодов. Благодарность за тестирование и наводку Aleksandr1612
  • Добавлена возможность изменять ориентацию режимов "Шкала громкости" и "Огонь" - от центра/к центру.
  • Эффекты на "Пёрлине" (Плавный огонь, Облака, Плазма и тд.) теперь реагируют на звук. Каждый немного по своему. Если 3 секунды звука нет, то они возвращаются к своему обычному состоянию.
  • Теперь прошивка совместима со схемой от tehnotraher и OlegAnadyr, в прошивку добавлена соответствующая настройка (протестировать возможности нет, буду рад отзывам)
  • Добавлена настройка отключения индикации на ленте и на диодах
  • Добавлена настройка отключения LINE
  • Добавил несколько цветовых эффектов - ничего особо примечательного, просто для массовки
  • Настройка яркости теперь реализована "правильно" и распространяется на все эффекты
  • Оптимизация - переназначил половину переменных, констант и дефайнов. Оптимизировал функции, дописал новые и тд.
  • Еще глубже оптимизирована структура кода (занятной памяти и строк в коде становится меньше, а функционал растёт), исправлены ошибки/баги. Добавлены комментарии.
  • Исправлено отключение MIC и LINE если используется что-то одно (настройка в прошивке - "MONO_STEREO").
  • Исправлена работа пульта (индикация и сохранение настроек теперь работает правильно).
  • Добавлена возможность переключения MIC/LINE с пульта для схемы без тумблера (в режиме настроек "ОК" нажать кнопку "0").
  • Добавлена возможность выбора цвета стробоскопа (повторное нажатие "3" меняет режимы белый/цветной, */# - выбор цвета).
  • Цветомузыка 3/5 полос теперь на одной кнопке - "6" (повторное нажатие "6" - выбор 3/5 полос, */# - перебор всех возможных комбинаций).
  • Анализатор спектра уехал на кнопку "7", а на "8" теперь с подачи tehnotraher и при его участии новый режим в тестовом варианте. (В зависимости от громкости с разной скоростью вылетают огоньки с краю/центра).
  • Исправлена досадная ошибка с фигурными скобками, о которой много раз отвечал в личке и на форуме.
  • Выпилил выбор схемы. Теперь одна простая универсальная модульная схема (во вложении). Не нужны диоды? Не паяем и отключаем в настройках (INDICATE_ LED 0). То же самое с кнопками (BUTTONS 0), микрофоном и аудиовходом. Микрофон питается напрямую от пина (по потреблению там всё ок), кому надо тот сам разберется куда вставить транзистор или вообще запитать на постоянный +. Не забываем про конденсаторы на питание, чем жирнее – тем лучше. Ну и подсказка: даже если используете один вход можно поставить в настройках два и тогда при переключении просто будет отключаться реакция на звук, мало ли может пригодится кому-то.
  • На кнопке «8» добавлены режимы и настройки. Повторное нажатие «8» - переключает способ «раскрашивания»: радуга/рандом/пара близких цветов. */# - перебор режимов, кнопки «верх/низ» - насыщенность, «лево/право» - цвет пары цветов.
  • Добавлена индикация на ленте режима MIC (первые 4 диода – зеленые), LINE (красные). Для переключения между MIC и LINE – нажать «ОК», а затем «0».
  • Почистил баги, добавил новые. Написал кучу комментариев и тд.
  • Исправил режим 8.2. Ломался если было больше 200 пикселей.
  • Добавил настройку отключения имитации стерео для режима «Уровень громкости». Теперь за это отвечает настройка: «PSEUDO», 1 – включено, 0 – отключено.
  • Добавил функцию отслеживания «тишины» и автоматического включения подсветки спустя n секунд. В настройках: «SILENCE», 1 – включено, 0 – отключено. «SILENCE_TIME» - через какое время включать подсветку.
Работает так:
1. Выбираешь подсветку какая больше нравится (из 1 или 2 режима) настраиваешь по душе.
2. Потом если нужна "цветомузыка", переключаешь на нужный режим пусть будет 9 (Уровни)
3. Если музыка не звучит более 3 секунд (можно настроить), то устройство переходит в режим, который был настроен в пункте 1.
4. Как только появляется звук, то переключается обратно в режим из пункта 2
и так далее до бесконечности.
  • Добавил настройку, отвечающую за «плотность ленты» (количество светодиодов на метр). Настройка: «STRIPE_DENSE», 1 – низкая плотность (30 диодов на метр), 2 – средняя плотность (60-90 диодов), 3 – высокая плотность (144 диода). Пока не очень оптимально, нужна обратная связь, пробуйте разные варианты – говорите, что подкрутить. В предыдущих прошивках настройки режимов соответствуют «низкой плотности».
  • Поправил режим 5 «Бегущие частоты», теперь приоритет на «высокие» (как в оригинале) и не должно заливать всё красным.
  • Опять «покрутил» режим «8», вроде немного получше стало, но еще не идеально.
  • Улучшил баги, добавил ошибки…
  • Выпилил и переписал кучу кода, отвечающего за "Уровни". Поправил баг с оранжевым на концах. За одно добавил туда палитру "Океан".
  • Обновил библиотеку FastLed. Не забудьте скачать новый архив с библиотеками.
  • Настройки подсветки "Тишины" теперь сохраняются 4-кратным нажатием "Ок"
  • Сделал возможным работу на малом количестве диодов (проверял на 10)
  • Добавил падающие точки в "Уровни", спасибо Fantazm. Отключаются через параметр "PEAKS". За одно добавил туда несколько стандартных палитр из библиотеки.
  • Добавил подрежим "Демо" на каждой "цифре". Если его включить, то все эффекты этой кнопки меняются по кругу через каждые 15 секунд (параметр "TOOGGLE_TIME"). Просто #/* листаем до него.
  • Много изменений под капотом, но это всё равно никому не интересно)
  • Изменен алгоритм для обработки уровней. Старый код вырезан вместо него используется код из библиотеки Гайвера.
  • Добавлено новое "полноценное" управление на 2 кнопках. И заменена кнопочная библиотека. Включение: настройка "BUTTONS".
  • Добавлена функция ДопКанал (ДК). Позволяет в дополнение к адреске подцепить обычную RGB ленту любой длинны (или прожектор например).
  • Полностью переписано хранение/сохранение настроек. Теперь для каждого эффекта свои уникальные настройки.
  • Добавлены настройки запуска системы после отключения питания.
  • Все настройки на первой страницы перегруппированы и разбиты на блоки для удобства.
14.03.2022 v3.1:
  • Исправлено огромное количество багов.
  • Добавлено более гармоничное управление пультами с большим количеством кнопок.
  • Переписан "Стробоскоп". Вырезана плавность старта и затухания. Добавлен двухцветный Подрежим.
1. Расширить функционал ДК:
  • оптимизировать режим "Авто" под все эффекты.
  • добавить "реакцию на звук".
  • добавить новых "комбо" режимов с изначально продуманной совместной работой ДК и Адрески.
2. Добавить поддержку 7-сегментного индикатора совместно с SeGAD.
3. Использовать библиотеку MicroLed.
4. Улучшить обработку звука.
Скачать: прошивка, библиотеки, тестовые скетчи.
Шпаргалка для пульта тут, не забудьте поставить лайк энтузиасту.

П.С. большая благодарность всем кто отписывает на форуме, это сильно помогает и вдохновляет.
1616446492224.pngaaf83d60-ac6c-415d-a03e-62069d61db0f.jpg
 

Вложения

Изменено:

Комментарии

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
Всем здрасте) Представляю своё видение данного проекта.

В общем собрал систему на основе прошивки от technotrasher (за что ему респект). Ленту 30 диодов на метр и длинной 102 диода приклеил под подоконником на балконе. Решил добавить «Огонь» на Пёрлине, а дальше всё как в тумане…

ВНИМАНИЕ! Данная прошивка УСЛОВНО совместима с оригиналом от Гайвера. Отличается БОЛЬШИМ количеством дополнительных функций/настроек/эффектов, все подробности под спойлерами.
Прошивка хоть и основана на Гайверовской, но ощутимо отличается как по функционалу, так и по управлению и программной части. Поэтому далее по тексту будет не сравнение с оригиналом, а просто описание основных возможностей. В связи с тем, что проще указать, что в них общего, нежели перечислять отличия.
В прошивке несколько десятков эффектов. Половина из них зависят от звука, а половина выступают в роли обычной Подсветки. В данной реализации они по возможности логично разделены на 9 групп (Режимов). И каждый Режим разделяется на Подрежимы (Эффекты).

Может работать от микрофона или от линейного входа. Либо одновременно с возможностью переключения.

Настройки для каждого Эффекта не зависят друг от друга и сохраняются отдельно.

Настроить можно скорость/яркость/плавность и т.д., в зависимости от Эффекта.

Функция «Демо», при которой Подрежимы в выбранном Режиме будут автоматически сменять друг друга.

Функция «Тишина». В случае, если на определенное время музыка останавливается, то система переключается на Подсветку. При появлении звука вновь возвращается к Режиму цветомузыки.

Возможно управлять с ик пульта или с двух физических кнопок.

Возможно настроить «плотность пикселей», чтобы на ленте 30 диод/метр и 144 диод/метр Эффекты выглядели более-менее одинаково.

Присутствует индикация (нажатие кнопок, дежурный режим и т.д.) либо на распаянных светодиодах, либо на самой ленте.

Можно изменить ориентацию направления Эффектов, где анимация идёт от краёв к центру или от центра к краям. Полезно, если лента разделена на две части (два вертикальных столба) и уже смонтирована.

Функция ДопКанал (ДК). Это возможность в дополнение к «адреске» подключить к системе обычную RGB ленту любой длинны или RGB прожектор’ы (да вообще любые RGB источники света). В зависимости от выбранного режима ДК будет либо жить «своей жизнью» и, например фигачить стробоскоп, либо дополнять основной Эффект.

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

Всё это по возможности максимально «модульное», то есть нужное можно подключить, а ненужное отключить.
Прежде чем задать вопрос в обязательном порядке необходимо ознакомиться с информацией под всеми спойлерами. В том числе там описано как именно нужно задавать вопрос. Не торопитесь писать мне в личку, тут ответят гораздо быстрее.
Активируется настройкой "IR_REMOTE"
Настройка "WAVGAT" - "1"
Использование пульта WAVGAT не рекомендуется. Особенно если планируется пользоваться всем функционалом прошивки. Управление будет сильно перегружено. И сам по себе WAVGAT плохого качества.
1645565730405.png
Настройка "WAVGAT" - "0"
Желательно использовать какой-нибудь пульт от старой техники. Они намного более качественные и на них больше кнопок.
Вот пример как можно настроить управление при наличии большего количества кнопок.
1647204883874.png
Активируется настройкой "BUTTONS"

Имеется Кнопка А и Кнопка В
1. Кнопка А листает режимы с 1 по 9 (и в обратную сторону при двойном клике).
2. Кнопка В листает подрежимы, то есть аналог "*" (и соответственно двойной клик - "#")
3. Длинный клик на А - аналог "0"
4. Длинный клик на В - аналог "Ок"
5. Зажать кнопку А и клацать на В - аналог вверх (двойной клик - вниз)
6. Зажать кнопку В и клацать на А - аналог вправо (двойной клик - влево)
7. Тройной клик на А - аналог повторного нажатия на цифру текущего режима.
8. Тройной клик на В - аналог 4/6-кратного нажатия "Ок"
Функция ДопКанал (ДК). Позволяет в дополнение к адреске подцепить обычную RGB ленту любой длинны (или прожектор например).
А - всё тоже самое, что и на первой кнопке,
В - тоже что и третья кнопка (стробоскоп),
С - "Авто" подстраивается под происходящее на адреске. Если на адреске стробоскоп - то и на ДопКанале стробоскоп, если на адреске зеленый цвет - то и на ДК зеленый цвет, если на адреске плавный огонь - то и ДК переливается в этих же оттенках и тд. Пока "Авто" не оптимизирована под все эффекты.
D - отключен.
Хз кому всё это нужно, но на мой взгляд прикольно. Можно зафигачить по периметру всей комнаты RGB, а допустим над окном адреску. Использовать как обычный свет/подсветку в обычной жизни, а в режиме вечеринки всё это дело будет вызывать эпилепсию. Либо при сборке какой-то переносной конструкции можно будет интересней обыграть проект. Либо использовать ДК вместо "яркость негорящих".

В общем у меня был чисто спортивный интерес к реализации.

Варианты подключения:
На контакты 9-11 через RGB Amplifier китайский или самодельный. Подробно об RGB лентах ТУТ. Поставить в настройках "SUB_CHAN". Так же в настройках можно указать общий катод или анод. При этом индикация на диодах самовыпилится.
Подцепить к последнему пикселу адрески еще один дополнительный адресный чип. И далее уже к нему подпаять RGB Amplifier.

Добыть этот чип можно разными способами:

1 - Купить адресную гирлянду на 50 пикселов ТАКУЮ. Отрезать последний пиксел. Расковырять. Припаять RGB Amplifier вместо/параллельно диоду. Оставшуюся гирлянду использовать по назначению. (я именно так и тестировал).

2 - Купить минимальный отрезок устаревшей WS2811 у которой диоды объединены в группы по три. Отрезать одну такую группу. Припаять RGB Amplifier вместо/параллельно диоду. (планирую испытать, но проблем быть не должно).

3 - Умудриться купить чип отдельно (и тогда поделиться информацией где). Я находил только пачкой в 500 штук.

В настройках "SUB_LEDS" указать количество дополнительных пикселов от 1 до много. Поясняю:

У вас есть 100 пикселов адрески. И вы решили прицепить еще один пиксел с припаянным RGB Amplifier. Значит нужно оставить в основных "NUM_LEDS" 100, а в "SUB_LEDS" указать "1"

У вас есть 100 пикселов адрески. И еще остался обрезок на 20 пикселов и вы решили просто посмотреть как это вообще будет работать и надо ли оно. Цепляете этот обрезок в конец своей ленты. В "NUM_LEDS" оставить 100, а в "SUB_LEDS" указать "20"

Самые умные и ленивые уже поняли, что если впадлу суеиться, но интересно протестировать можно сделать так: В "NUM_LEDS" указать допустим 70, а в "SUB_LEDS" указать "30".
Свой пульт с большим количеством кнопок. Рекомендуется.
Необходимо забиндить дополнительные кнопки пульта на переключение Режимов и Подрежимов ДК.

Пульт WAGWAT. Не рекомендуется.
Два раза нажать "ОК"

Активируется режим настройки ДК. Первые 4 диода горят синим.

Цифры на пульте: 1 - Первый Режим, 2 - Авто, 3 - Стробоскоп, 4 - Выкл.
Кнопки */#: переключают Подрежимы, но не адрески, а ДК.

Нажать "ОК" что бы выйти из режима настроек ДК.

Умные задаются вопросом, а как же теперь с 4-кратным нажатием. Да, теперь при активации ДК оно стало 6-кратным.

У меня не работает. Что делать?
Очень жаль. Не знаю.

Не ну правда?
Правда не знаю.

Ардуина вообще работает? Накатите тестовый скетч «блинк» и проверьте. (в приложении)
Лента вообще работает? Накатите тестовый скетч для ленты и проверьте. (в приложении)
Пульт вообще работает? Накатите тестовый скетч для пульта и проверьте. (в приложении)
Микрофон вообще работает? Накатите любой тестовый скетч для микрофона и проверьте. Тестовые скетчи искать в интернетах, кто первый найдет и оптимизирует (под наши пины) весь комплект - присылайте, прикреплю (часть я уже сделал).

Если что-то из этого не работает по отдельности, то не нужно пытаться запустить всё в сборе и надеяться, что оно само починится. Не починится, разберитесь сначала со своими «железками». Не нужно сразу всё паять, собирайте на макетке иначе вообще никогда не поймете в чем проблема.

Если по отдельности всё работает (на тех же пинах, что и в схеме), значит хоть что-то и с прошивкой должно работать. Напишите конкретно какие режимы не работают или работают неправильно, какая версия прошивки, какая схема (что конкретно и к каким пинам подключено) и при каких настройках.


Хочу как на схеме, микрофон + стереовход!
Делай как на схеме, и настройку «MONO_STEREO» меняй на «0».

Хочу только микрофон!
Ставь только микрофон (как на схеме), и настройку «MONO_STEREO» меняй на «1».

Хочу только линейный стереовход!
Ставь только линейный вход (как на схеме), и настройку «MONO_STEREO» меняй на «2».

Хочу только линейный моновход!
Ставь линейный вход на пин для микрофона, и настройку «MONO_STEREO» меняй на «1».

Хочу три микрофона, один линейный моновход и два дополнительных стереовхода, но я уже всё припаял на первые попавшиеся пины!
Переписывай прошивку. Очень многое прокомментировано. Переназначить пины – элементарно если потратить 10 минут и разобраться.

Как мне откалибровать шум?
1. Включить нужный вход (MIC или LINE) - нажимать "0" в режиме настроек "ОК". Микрофон и линейный калибруются независимо друг от друга!
2. Включить нужный эффект 4-7 (частоты) или 8-9 (уровни). Эти две группы калибруются независимо друг от друга!
3. Нажать 4 раза "ОК"
4. НО!!! Если имеется переменный резистор (крутилка), то повторяйте пункт "3" в разных положениях резистора. По центру, в крайнем правом, в крайнем левом и т.д. Ищите оптимальное положение! Затем уже ПОСЛЕ калибровки ОПЯТЬ можно немного покрутить. Экспериментируйте.


У меня не очень хорошо работает реакция на звук и особенно на частоты.
У меня тоже, а особенно реакция на частоты. Но если все собрать даже на макетке, поставить прошивку, сбросить настройки и откалибровать шум – то худо-бедно работать должно, а дальше уже играться с настройками чувствительности и крутить резистор подгоняя под свою систему. На форуме есть разные решения. А я потихоньку буду ковырять код и сообщать об успехах.
Вот одно из решений.
Итак, первая партия тестовых скетчей. 3 штуки.
Первый - обычный "Blink", для проверки самой платы. Просто мигает встроенным светодиодом раз в секунду. Если у Вас даже это не работает, то стоит призадуматься.
Второй - проверка ленты и питания. Указываем количество светодиодов и лимит по току (если надо). Запускается простенькая анимация Радуги. Через пять секунд включается стробоскоп с довольно "агрессивными" настройками и через 5 секунд опять Радуга. Так до бесконечности.
Если первые 5 секунд всё работает нормально, а потом плата зависает на стробоскопе - я Вас поздравляю, что-то с питанием. На "вспышке" оно сильно проседает и плата зависает. Меняйте блок питания, меняйте провода на более толстые, ставьте конденсаторы, уменьшайте лимит по току в настройках и т.д.
Третий - проверка пульта. Накатываем скетч, открываем монитор порта (выставляем 9600). Жмакаем кнопочки. Названия кнопочек ("Звездочка", "Решетка" и т.д.) выводятся в порт. Помимо этого выводится еще код кнопки. Если кнопка не распознана, то выведет код кнопки и напишет "Нипанятна!". Если ничего этого не происходит - делаем очевидный вывод.

П.С. при тестировании Третьего скетча выяснилась интересная особенность и причина одного "бага". Пульт WAVGAT - редкостное говно.
При нажатии на одну и ту же кнопку может выдать сразу два-три кода (основной и паразитные). С первого раза может вообще не распознаться код. Если зажать кнопку и не отпускать - не распознается. В общем в том числе и поэтому ЦМ с первого нажатия далеко не всегда срабатывает.
П.П.С первый попавшийся пульт от телека отрабатывает как положено и таких глюков не имеет. Стабильно выдает один и тот же код на одну кнопку.

Скетч для проверки/настройки звука будет позже, там сложнее.
  • Дальнейшая оптимизация - теперь поддержка до 300 диодов. Благодарность за тестирование и наводку Aleksandr1612
  • Добавлена возможность изменять ориентацию режимов "Шкала громкости" и "Огонь" - от центра/к центру.
  • Эффекты на "Пёрлине" (Плавный огонь, Облака, Плазма и тд.) теперь реагируют на звук. Каждый немного по своему. Если 3 секунды звука нет, то они возвращаются к своему обычному состоянию.
  • Теперь прошивка совместима со схемой от tehnotraher и OlegAnadyr, в прошивку добавлена соответствующая настройка (протестировать возможности нет, буду рад отзывам)
  • Добавлена настройка отключения индикации на ленте и на диодах
  • Добавлена настройка отключения LINE
  • Добавил несколько цветовых эффектов - ничего особо примечательного, просто для массовки
  • Настройка яркости теперь реализована "правильно" и распространяется на все эффекты
  • Оптимизация - переназначил половину переменных, констант и дефайнов. Оптимизировал функции, дописал новые и тд.
  • Еще глубже оптимизирована структура кода (занятной памяти и строк в коде становится меньше, а функционал растёт), исправлены ошибки/баги. Добавлены комментарии.
  • Исправлено отключение MIC и LINE если используется что-то одно (настройка в прошивке - "MONO_STEREO").
  • Исправлена работа пульта (индикация и сохранение настроек теперь работает правильно).
  • Добавлена возможность переключения MIC/LINE с пульта для схемы без тумблера (в режиме настроек "ОК" нажать кнопку "0").
  • Добавлена возможность выбора цвета стробоскопа (повторное нажатие "3" меняет режимы белый/цветной, */# - выбор цвета).
  • Цветомузыка 3/5 полос теперь на одной кнопке - "6" (повторное нажатие "6" - выбор 3/5 полос, */# - перебор всех возможных комбинаций).
  • Анализатор спектра уехал на кнопку "7", а на "8" теперь с подачи tehnotraher и при его участии новый режим в тестовом варианте. (В зависимости от громкости с разной скоростью вылетают огоньки с краю/центра).
  • Исправлена досадная ошибка с фигурными скобками, о которой много раз отвечал в личке и на форуме.
  • Выпилил выбор схемы. Теперь одна простая универсальная модульная схема (во вложении). Не нужны диоды? Не паяем и отключаем в настройках (INDICATE_ LED 0). То же самое с кнопками (BUTTONS 0), микрофоном и аудиовходом. Микрофон питается напрямую от пина (по потреблению там всё ок), кому надо тот сам разберется куда вставить транзистор или вообще запитать на постоянный +. Не забываем про конденсаторы на питание, чем жирнее – тем лучше. Ну и подсказка: даже если используете один вход можно поставить в настройках два и тогда при переключении просто будет отключаться реакция на звук, мало ли может пригодится кому-то.
  • На кнопке «8» добавлены режимы и настройки. Повторное нажатие «8» - переключает способ «раскрашивания»: радуга/рандом/пара близких цветов. */# - перебор режимов, кнопки «верх/низ» - насыщенность, «лево/право» - цвет пары цветов.
  • Добавлена индикация на ленте режима MIC (первые 4 диода – зеленые), LINE (красные). Для переключения между MIC и LINE – нажать «ОК», а затем «0».
  • Почистил баги, добавил новые. Написал кучу комментариев и тд.
  • Исправил режим 8.2. Ломался если было больше 200 пикселей.
  • Добавил настройку отключения имитации стерео для режима «Уровень громкости». Теперь за это отвечает настройка: «PSEUDO», 1 – включено, 0 – отключено.
  • Добавил функцию отслеживания «тишины» и автоматического включения подсветки спустя n секунд. В настройках: «SILENCE», 1 – включено, 0 – отключено. «SILENCE_TIME» - через какое время включать подсветку.
Работает так:
1. Выбираешь подсветку какая больше нравится (из 1 или 2 режима) настраиваешь по душе.
2. Потом если нужна "цветомузыка", переключаешь на нужный режим пусть будет 9 (Уровни)
3. Если музыка не звучит более 3 секунд (можно настроить), то устройство переходит в режим, который был настроен в пункте 1.
4. Как только появляется звук, то переключается обратно в режим из пункта 2
и так далее до бесконечности.
  • Добавил настройку, отвечающую за «плотность ленты» (количество светодиодов на метр). Настройка: «STRIPE_DENSE», 1 – низкая плотность (30 диодов на метр), 2 – средняя плотность (60-90 диодов), 3 – высокая плотность (144 диода). Пока не очень оптимально, нужна обратная связь, пробуйте разные варианты – говорите, что подкрутить. В предыдущих прошивках настройки режимов соответствуют «низкой плотности».
  • Поправил режим 5 «Бегущие частоты», теперь приоритет на «высокие» (как в оригинале) и не должно заливать всё красным.
  • Опять «покрутил» режим «8», вроде немного получше стало, но еще не идеально.
  • Улучшил баги, добавил ошибки…
  • Выпилил и переписал кучу кода, отвечающего за "Уровни". Поправил баг с оранжевым на концах. За одно добавил туда палитру "Океан".
  • Обновил библиотеку FastLed. Не забудьте скачать новый архив с библиотеками.
  • Настройки подсветки "Тишины" теперь сохраняются 4-кратным нажатием "Ок"
  • Сделал возможным работу на малом количестве диодов (проверял на 10)
  • Добавил падающие точки в "Уровни", спасибо Fantazm. Отключаются через параметр "PEAKS". За одно добавил туда несколько стандартных палитр из библиотеки.
  • Добавил подрежим "Демо" на каждой "цифре". Если его включить, то все эффекты этой кнопки меняются по кругу через каждые 15 секунд (параметр "TOOGGLE_TIME"). Просто #/* листаем до него.
  • Много изменений под капотом, но это всё равно никому не интересно)
  • Изменен алгоритм для обработки уровней. Старый код вырезан вместо него используется код из библиотеки Гайвера.
  • Добавлено новое "полноценное" управление на 2 кнопках. И заменена кнопочная библиотека. Включение: настройка "BUTTONS".
  • Добавлена функция ДопКанал (ДК). Позволяет в дополнение к адреске подцепить обычную RGB ленту любой длинны (или прожектор например).
  • Полностью переписано хранение/сохранение настроек. Теперь для каждого эффекта свои уникальные настройки.
  • Добавлены настройки запуска системы после отключения питания.
  • Все настройки на первой страницы перегруппированы и разбиты на блоки для удобства.
14.03.2022 v3.1:
  • Исправлено огромное количество багов.
  • Добавлено более гармоничное управление пультами с большим количеством кнопок.
  • Переписан "Стробоскоп". Вырезана плавность старта и затухания. Добавлен двухцветный Подрежим.
1. Расширить функционал ДК:
  • оптимизировать режим "Авто" под все эффекты.
  • добавить "реакцию на звук".
  • добавить новых "комбо" режимов с изначально продуманной совместной работой ДК и Адрески.
2. Добавить поддержку 7-сегментного индикатора совместно с SeGAD.
3. Использовать библиотеку MicroLed.
4. Улучшить обработку звука.
Скачать: прошивка, библиотеки, тестовые скетчи.
Шпаргалка для пульта тут, не забудьте поставить лайк энтузиасту.

П.С. большая благодарность всем кто отписывает на форуме, это сильно помогает и вдохновляет.
1616446492224.pngaaf83d60-ac6c-415d-a03e-62069d61db0f.jpg
 

Вложения

Изменено:

dmvlvo

✩✩✩✩✩✩✩
3 Дек 2022
9
6
@BigDog
Не только не проще, но и невозможно.
Если передавать аудиосигнал по блютусу, то использовать кабель для передачи аудиосигнала не даст ни виндоус, ни андроид.
 

BigDog

★★✩✩✩✩✩
30 Июн 2020
116
51
Не только не проще, но и невозможно.
Не вводите людей в заблуждение. За андроид не скажу, не интересовался как-то, а винда справляется с этим без проблем. Ну, или у меня прямо сейчас на компе установлена невозможная винда 😂
 

Vladimirt

✩✩✩✩✩✩✩
20 Сен 2020
9
3
Товарищи, подскажите советом, или ткните носом в решение проблемы.
Суть: на низкой и средней громкости режим цветомузыки 3/5 полос отрабатывает хорошо. Но при большой громкости почти все время горят только низкие частоты(даже не мигают а горят постоянно). На средние и высокие частоты не реагирует. Как э
 

zheka.

✩✩✩✩✩✩✩
3 Янв 2023
9
1
MAX_COEF_FREQ_1[3] = {0.7, 1.3, 1.5};
Я доигрался пока до таких, при очень похожей проблеме. Вам надо увеличивать 0.7 до рабочих пределов. При этом возможно корректировать и другие. Но у меня система пока с резистором 50 ком. И он где-то в среднем положении.
 
  • Лойс +1
Реакции: Vladimirt

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
@Vladimirt, к совету выше могу еще посоветовать использовать внутренний источник опорного напряжения вместо резистора, если там резистор юзается до сих пор, с внутренним намного меньше проблем как то, чем этот резистор постоянно крутить.
 

Diman

★★✩✩✩✩✩
20 Апр 2019
312
72
Тут человек скинул интересную схему. Там используется ару микрофона для линейного входа и для самого микрофона.
Там автор не учёл структуру внутренних узлов микросхемы. Надо немного изменить его схему и тогда можно получить АРУ с заявленной компрессией 20дБ. Такой компрессии конечно мало для линейного входа, и переключатель какой угодно не подойдёт для коммутации слабых сигналов.
 

zheka.

✩✩✩✩✩✩✩
3 Янв 2023
9
1
Уважаемые друзья, подскажите, почему не работают по два крайних диода в седьмом режиме(спектр). Так и было задумано?
 

Vladimirt

✩✩✩✩✩✩✩
20 Сен 2020
9
3
@zheka., Поигрался с настройками и в итоге все получилось, теперь светомузыка3/5 полос работает как положено, частоты не пропадают.
Добился хороших результатов на этих настройках:
MAX_COEF_FREQ_1[3] = {0.8, 0.8, 0.8};
 

pbofpb01

✩✩✩✩✩✩✩
10 Фев 2023
9
1
@Vladimirt, я просто с пульта настроил шумы в ручную, на тех режимах которые косячные, и всё стало более менее смотрибильно
 

sim28rus

✩✩✩✩✩✩✩
18 Апр 2023
6
2
FireEdition - как бы ни крутил, чтобы ни настраивал: частоты живут своей жизнью. Единственный плюс в этой редакции - наличие большого количества независимых от музыки эффектов
У Гайвера лучше работают частоты, без особых танцев. Залил и все работает. Динамично, все в тему

Описание предыдущих версий есть, но где их скачать?
 
Изменено:

sim28rus

✩✩✩✩✩✩✩
18 Апр 2023
6
2
@sim28rus, я вас разочарую. У fire edition тот же код для обработки звука (для частот) там только для режима vu meter другой обработчик.
вполне может быть

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

собрал аналогичную вторую схему на другой ардуинке со своей лентой 120 диодов. результат тот же один в один. Ни один зависящий от музыки режим не работает
 
Изменено:

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
@sim28rus, потенциометр выкинуть надо если юзается микрофон и включить внутренний опорник. И резисторы же стоят на входах по 10кОм или что то около того?
 

zheka.

✩✩✩✩✩✩✩
3 Янв 2023
9
1
Не очень понятны резисторы по входам,особенно после микрофона. Функция чуть ослабить сигнал или что? Я бы ещё понял, если бы после конденсатора 0.01 поставить ещё конденсатор на минус, конечно меньшей емкости.
И какая разница, схема "с" или "без" резистора. Резистором регулируем то же опорное напряжение, можно поставить любое.
 

sim28rus

✩✩✩✩✩✩✩
18 Апр 2023
6
2
@novvel, установлен потенциометр 10кОм. примерно в среднем положении (наилучшее). под него соответственно все подстроено. шумы, звук

эффект такой же примерно как у автора на видео. т.е. низы отрабатываются не чисто. есть какие то мусорные всплески (9 режим)
в версии гайвера (1 режим) динамика картинки лучше соответствует музыке
 

zheka.

✩✩✩✩✩✩✩
3 Янв 2023
9
1
Выгнали меня из зала) с нормальной акустикой, перешел в кухню с компьютерной акустикой "креатив"
Сильных различий особо нет. Остановился на настройках с микрофоном на такие.
float SMOOTH_FREQ = 1.0;
float MAX_COEF_FREQ = 1.3;
float MAX_COEF_FREQ_1[3] = {0.8, 1.5, 1.8};

// низкие частоты, выборка со 2 по 5 тон (0 и 1 зашумленные!)
for (byte i = 1; i < 3; i++) { //2-6
if (fht_log_out > colorMusic[0]) colorMusic[0] = fht_log_out;
}
// средние частоты, выборка с 6 по 10 тон
for (byte i = 10; i < 15; i++) {
if (fht_log_out > colorMusic[1]) colorMusic[1] = fht_log_out;
}
// высокие частоты, выборка с 11 по 31 тон
for (byte i = 25; i < 31; i++) {
if (fht_log_out > colorMusic[2]) colorMusic[2] = fht_log_out;
}
Резистор 50ком где-то тоже посередине, и по тестеру 1.2 вольта.
У Гайвера, при таких же настройках частот, система работает всё таки четче.
Другого микрофона у меня нет, может будут и другие цифры.
 

Nerpiks

★✩✩✩✩✩✩
27 Апр 2023
14
11
Прошу сильно не пинать, это мой первый опыт. У Алекса выложена готовая прошивка одним файлом, залил и свободен. Здесь файлов несколько. Мне нужен скетч с линейным входом и микрофоном под выложенную схему. Есть у кого готовый, или нужно все эти файлы, последовательно по цифрам в названии соединить в один? Правки общего файла под себя здесь опИсаны, думаю я разберусь. Спасибо.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@Nerpiks, ничего не нужно никуда соединять. Просто открываете любой файл и они все подгружаются АрдуиноИДЕ. Делаете необходимые правки/настройки на второй вкладке и шьете как обычно. Это разделение по файлам - условно и ни на что не влияет кроме удобства (каждый блок отображается на отдельной вкладке в программе)
 

Nerpiks

★✩✩✩✩✩✩
27 Апр 2023
14
11
...Просто открываете любой файл и они все подгружаются АрдуиноИДЕ...
Спасибо! (y) Почитал букварей, в пути к файлам были русские буквы, кинул всё в корень диска, теперь все файлы подхватываются. Ардуино ИДЕ просит обновить кучу библиотек, нужно обновлять, или лучше пользоваться версиями, приложенными к проекту? Спасибо за проект, буду повторять ✌
 
Изменено:

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
Появилась не большая проблемка. Лента начала выключаться (переходить в ждущий режим.) Собираю две напольных лампы. Количество диодов два куска по 90 шт. параллельно. Прошивка 3.1 На прошивку не грешу, так как эта же прошивка у самого работает давно. Что не совпадает со старым проектом: Ардуинки новые с Алика. Обновились библиотеки в Arduino IDE. Не знаю, связанно ли это с библиотеками или сами платы с браком. Симптомы: Включаю, работает несколько секунд, зависает и сбрасывается на дежурный режим. БП исключаю, так как проверяю на лабораторнике. Монтаж проверил уже раз 15-20. (не одна собрана уже) Народ, кто что посоветует? Куда копать? К стати иногда включится и работает нормально. Прям полтергейст какой то.