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

Diman

★★✩✩✩✩✩
20 Апр 2019
313
72
Всем здрасте) Представляю своё видение данного проекта.
Сначала я написал целую простыню на два листа с подробным описанием, а потом решил, что оно никому не надо. Поэтому коротко.
Лента у меня 30 диодов на метр и длинной 102 диода. Жрет в максимальном режиме (белый) 1.7А. Скетч занимает 84% памяти. Приклеена под подоконником на балконе.
Изрядно переписал код (за основу взята прошивка от technotrasher, за что ему респект). Исправил ошибки, оптимизировал код, сделал более логичное меню (на мой взгляд), исправил несколько имеющихся и добавил с дюжину новых эффектов (все которые добавил - на видео), упростил схему (убрал диоды, кнопки и транзистор), добавил индикацию на саму ленту вместо диодов, добавил сброс настроек без перепрошивки. Если будет интерес, то распишу более подробно.
ПС. на фото модуль с Али, цена ~100 рублей, позволяет из высокоуровнего выхода (на колонки), сделать низкоуровневый (aux), а так же имеет независимую регулировку каналов. Аккуратно собран, на борту все необходимое и не надо ничего колхозить.

Дополнение:
Спасибо всем за проявлены интерес! Как обещал выкладываю подробности, а так же схему и скетч.
Убрал из схемы транзистор. У меня переключение с микрофона на линейный вход происходит обычным тумблером. Он же зажигает либо зеленый, либо красный светодиод и отключает питание микрофона аппаратно. Соответственно выпилил часть кода и освободил немного памяти. В итоге программно светодиодов и кнопок не задействовано.

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

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

Удалил дублирующийся эффекты – радуга и смена цвета.

Удалил лишние функции, переменные и тд. Дописал нужные функции. Некоторые исправил. В некоторых местах значительно изменил структуру кода. Поменял вкладки и в целом попытался оптимизировать код. Теперь это больше похоже на единый проект, а не «Франкенштейн». В результате высвободилось процентов 10-15 памяти без потери функционала.
Добавил с дюжину эффектов и «пересобрал» управление всем этим хозяйством – на мой взгляд такое управление более интуитивное и логичное.

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

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

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

Все одноцветные режимы собрал на кнопке «1».

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

Все «разноцветные» режимы на кнопке «2».

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

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

Кнопки «4» - «8» - цветомузыка по частотам. В эти режимы изменения вроде не вносил, только порядок поменял. По-хорошему первые три можно объединить в один и освободить кнопки на пульте.

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

Кнопка «0» - включить/выключить. Но включить теперь можно нажатием на любую из цифр.

Кнопка «ОК» включает режим «Настройки», как и раньше. Но теперь ручная настройка чувствительности производится «*/#» для всех режимов цветомузыки, скетч сам поймет, что настраивать.
У меня тут лаундж, а не дискотека, поэтому упор делал на эффекты и в цветомузыку особо не лез. Возможно при других вводных надо будет что-то корректировать.
Программист я тот еще, всю учебу прогулял и проплатил, а данный текст и скетч писал преимущественно под газом, поэтому получилось, как получилось)))
В Вашей схеме использован 12 пин как сигнальный, будет ли он корректно отрабатывать передачу данных? Обычно используют ШИМ выход.
 

Diman

★★✩✩✩✩✩
20 Апр 2019
313
72
@Diman, так ведь у всех лента на 12-ом сидит и изначально у Алекса тоже. Я тут ничего не менял, стандартизация)
Да, верно. Но в проекте лампы на 6 пине. Потом проверю будет ли разница в размерах прошивки при разных выходах.
 

Aleksandr1612

✩✩✩✩✩✩✩
24 Июн 2019
14
8
@Slenk, Доброе утро, скажите пожалуйста, на 300 диодов не компилируется, предел 212 диодов, можно как-то поднять до 300 диодов? У меня используются все 5 метров ленты 60 диодов на метр.
 
  • Лойс +1
Реакции: technotrasher

Slenk

★★★★★★✩
21 Янв 2020
382
588
34
Краснодар
@Aleksandr1612, добрый день) Из-за Вас прошерстил я в очередной раз код)) Спасибо, теперь я знаю больше (просто сам я с этой проблемой не сталкивался). И нашел я таки жор памяти.
В общем для начала попробуйте выпилить эффект "2.8 каждый светодиод – огонек", он все равно беспонтовый и почти тоже самое можно сделать на Перлине (подобрав параметры). Для этого закоментируйте на вкладке 03 строку 177 case 7: fireLine(); break; После этого должно скомпилироваться, заняв 98% памяти. За одно на той же вкладке в строке 12 #define NM 4 замените 4 на 8, после этого код похудеет до 94%.
Затем в первой вкладке в строке 204 #define FIRE_DIFFUS 30 увеличить значение примерно до 100, что бы "Лёд и Пламень" выглядел нормально, ну если Вам вообще этот режим нужен.
Отпишите потом по результату.
 
Изменено:
  • Лойс +1
Реакции: Aleksandr1612

Diman

★★✩✩✩✩✩
20 Апр 2019
313
72
@Slenk, Доброе утро, скажите пожалуйста, на 300 диодов не компилируется, предел 212 диодов, можно как-то поднять до 300 диодов? У меня используются все 5 метров ленты 60 диодов на метр.
Если Нано или мини, перепрошей загрузчик от Уно, освободится немного памяти. Ещё лучше прошить без загрузчика.
 

Aleksandr1612

✩✩✩✩✩✩✩
24 Июн 2019
14
8
@Slenk, Благодарю, закомментировал 177-ую строку и 98%:), попробовал изменить 12-ую строку, да теперь 94%, отлично! Все компилируется с 300-ми диодами!
 
  • Лойс +1
Реакции: Slenk

Slenk

★★★★★★✩
21 Янв 2020
382
588
34
Краснодар
@Aleksandr1612, спасибо Вам за тестирование. Я тогда в ближайшее время чуть адаптирую код, что бы все эти параметры автоматом подгонялись под количество диодов и гордо напишу о поддержке до 300 диодов) А у Вас если получится, то запишите видос, а то 5 метров - это ппц)) Да еще и с такой плотностью) Интересно посмотреть как оно, особенно "Лёд и Пламень".
 
  • Лойс +1
Реакции: Aleksandr1612

Aleksandr1612

✩✩✩✩✩✩✩
24 Июн 2019
14
8
@Slenk, я не профи по видосам, постараюсь записать видео, но увы не раньше следующих выходных, много работы, да еще дача, сезон :) ;)
 
  • Лойс +1
Реакции: Slenk

technotrasher

★★★★✩✩✩
14 Ноя 2019
501
223
НЧ и СЧ определяют тип музыки, в них информации более чем достаточно для создания соответствующих музыке эффектов. Я не программист к сожалению.
а вот в такой вот установке Lichtorgel автор утверждает, что частот хватит и на 8 каналов. я проверял генератором частоты - 8 - уже слишком. а вот на 6 на базе FHT очень даже реально.
 

waw555

✩✩✩✩✩✩✩
13 Май 2020
8
0
Здравствуйте! Подскажите пожалуйста, где на данной плате REF и 3,3V
 

Вложения

  • 55.6 KB Просмотры: 22

technotrasher

★★★★✩✩✩
14 Ноя 2019
501
223
вот только жаль что от идеи цветомузыкальной установки мы уехали в подсветки и эффекты. я все же бы очень ждал идеи по обработке сигнала. сделать режим 6 полос. на ленте по каждой частоте. грамотного распределения по частотам. так сказать возвращение проекта к "истокам". хотелось бы все же цвето-музыку, а не подсветку для кафе и бара. Хотя это все игрушки... но не все могут себе позволить купить промышленные варианты исполнения. Паяем дальше! И это интересно!
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
501
223
@technotrasher, у меня собрано в таком светильнике :) Посмотреть вложение 13404
а вот это как раз то что я и хочу сделать. и сей девайс у меня в очереди на исполнение! реально круто! так как ленту развешивать ну вот совсем не очень. а свернуть её так - то что нужно!
 

Slenk

★★★★★★✩
21 Янв 2020
382
588
34
Краснодар
сделать режим 6 полос. на ленте по каждой частоте. грамотного распределения по частотам.
А можно поподробней? Что конкретно надо сделать, что это даст и как будет выглядеть? А то у меня с фантазией туго. Мне что-то сделать проще, чем что-то придумать. По этой причине в своё время фотографию забросил.

@technotrasher, у меня собрано в таком светильнике :)
А вот это интересно, возможно тоже повторю.
 

Diman

★★✩✩✩✩✩
20 Апр 2019
313
72
а вот в такой вот установке Lichtorgel автор утверждает, что частот хватит и на 8 каналов. я проверял генератором частоты - 8 - уже слишком. а вот на 6 на базе FHT очень даже реально.
Имеющиеся 5 полос чем не устраивают? В принципе без разницы, всё равно начнёт раздражать.
 

waw555

✩✩✩✩✩✩✩
13 Май 2020
8
0
отличный производитель! а пины искать в документации. что это за "малютка"?
Я смотрел документацию, в ней указано, что REF подтянут конденсатором на массу. Думал вдруг я ошибаюсь и есть еще пин REF или можно переназначить какой-то другой пин. Судя по всему он 1.
 

Вложения

viktor001

★✩✩✩✩✩✩
14 Окт 2019
113
36
Почему важно важно уделить внимание на частоты, подаваемые на устройство "цму" с использованием fft и в чём проблема fft? Проблема в том, что происходит наложение частот которые за границей преобразования на частоты преобразованные fft. Преобразование производиться ведь не всего спектра, а только определённого участка. Вот при наложении и происходит каша на ленте.