ARDUINO Цветомузыка на MSGEQ7 и на фильтрах

Цветомузыка на MSGEQ7 и на фильтрах
ЦМУ на MSGEQ7. Также сюда добавляю второй проект ЦМУ на фильтрах.
ссылка на плату и схему https://oshwlab.com/technotrasher/colormusic
За год была проведена большая работа.
Итак ЦМУ на MSGEQ7.
1. Двухканальная схема. стерео.
2. Ручная регулировка шумов. предустановки шумов.
3. 7 режимов цму. в которых есть под-режимы.
4. 10 вариантов световых эффектов.
5. регулировки эффектов и режимов.
6. за "спектр" отвечают микросхемы MSGEQ7. достать рабочие сложно. (Купить более менее рабочие MSGEQ7 - по поиску на алиэкспресс "Модуль анализатора звука Aispark")
7. Аудио компрессор и система контроля клипинга взята тут - kompressor_SSM2167. прочтите обязательно, кто будет собирать.
8. описание режимов в начале скетча.
9. работа возможна с 300 светодиодами!
10. регулировка параметров с пульта и возможность сброса настроек "когда, что то нажал и все поломалось"
11. режим тишины с подсветкой (можно отключить), время срабатывания так же выставляется в скетче.
12 . Использованы статьи. тут для понимания работы MSGEQ7.
13. работа от микрофона. включается с пульта! на плате есть возможность отрегулировать чувствительность и время срабатывания микрофона.
14. режимы работы отображаются светодиодами на плате. на плате возможно механическое отсоединение сигнала с микрофона либо "байпас"
компрессора.
15. регулировка уровня входного сигнала линейным стерео потенциометром.
17. кнопки с платы убраны все, кроме переключения из ждущего режима. нужно для аварийного режима. если перестал работать пульт, а нужно включить хоть что то.
никаких энкодеров и т.д. скетч в первую очередь адаптировался под большую ленту. была битва за каждый байт и даже бит. и дорабатываться будет дальше.
18. Параметры сохраняются в память при отключении ЦМУ. в том числе режимы, шумы, настройки для режимов.
19. питание ленты обособлено от питания ардуино. вы не "сожжете" ардуино, забыв подключить внешний БП и программируя её через USB.
20.

Если вы нашли ошибку или знаете, как что то доработать - напишите об этом.

Особая благодарность Евгению (Slenk) - он находил на меня пару минут на ответ и подсказку. я же подглядывал в его скетч и брал самое лучшее.
так же благодарность - Sergo_ST без его подсказок и терпеливых ответов на мои глупые вопросы скетч был бы намного "толще и тупее". и не факт, что работал бы.


Этап второй ЦМУ на фильтрах. проект делается совместно с poty
проект сложен для сборки.
что сделано - плата. бетта версия. постоянно вносятся изменения. часть отлажена и уже работает.
модуль сбора данных. частично отлажен. работа продолжается.
ЦМУ на фильтрах можно повторять. работает! плату можно заказывать. недавно были изменены некоторые номиналы конденсаторов в фильтрах.
плата доступна тут .
скетч colorMusic_v8_filter.rar
эффектов очень много. все описано вначале скетча. могу сказать, что есть эффекты от Лумазоид ЦМУ. :)
 

Вложения

Изменено:

Комментарии

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@technotrasher, в моем случае будет ардуина + реализация, если настроение будет то ещё и описание добавлю :), фильтров не будет. Собственно весь код УЖЕ есть, работает, оттестирован, так что много времени это не займет ;)
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
229
ну все. началась битва Титанов. чистый код против код+схемотеника.
 

Дуче

✩✩✩✩✩✩✩
4 Авг 2020
9
2
А если бы активные полосовые фильтры... да с ESP скрестить... вообще чудо получилось бы. Но увы, не умею.
 

poty

★★★★★★✩
19 Фев 2020
3,271
950
Собственно, накидал несколько вариантов реализации:
Схема.png

Расчёты.png

Примечания. В расчётах обращайте внимание на столбцы, обозначенные "практические", если в строке дублируются одни и те же обозначения.

Самым простым вариантом использования является набор из 7 полосовых фильтров с выпрямителями и интеграторами с разными τ, линейного входного усилителя (версия 1) и АРУ. Расчёт приведён в разделе "Линейная передаточная функция". В этом случае АРУ управляется цифровыми пинами. Подача на эти пины импульса увеличивает или уменьшает опорное напряжение Ардуино AREF с τ=10мс, подстраивая его под амплитуду входного сигнала. Для работы АРУ нужно, чтобы максимальный сигнал по амплитуде после усиления никогда не превышал 5В. Во всей полосе частот сохраняется линейная АЧХ. Конденсатор разряжается с τ = 2с.

Первым усложнением является возможность подать на AREF амплитуду входного сигнала после усиления (АРУ сигнал версия 1.1). τ интегратора в этом случае увеличено до 2 секунд.
Вторым вариантом является автоматический выбор полосы с максимальной амплитудой (АРУ сигнал версия 1.2, в семи экземплярах). С тем же временем интегратора τ.
В обоих вариантах сохраняется возможность влияния на АРУ с помощью цифровых пинов.

Более сложным вариантом является подстройка под спектральную кривую музыкального сигнала DIN. Полностью использовать DIN не стоит, потому что картинка будет неинтересная, но "помочь" АЦП в визуализации НЧ и ВЧ можно. Опять же привёл два из множества возможных способов это сделать. Первый - использование входного усилителя с режекторным фильтром низкой добротности - Входной усилитель с режекторным фильтром (версия 2). Второй - использование полосовых фильтров с скорректированным усилением (в расчётах - в разделе "Передаточная функция коррекции DIN").

Предполагается использование счетверённых ОУ. Сами ОУ - самые простые, с двухполярным питанием и частотой единичного усиления больше 2-3 МГц. Также возможна интеграция диодов (бывают по 2-3 и более в корпусе).

Питание сейчас не проблема: DC/DC преобразователи есть всех мастей, дешёвые, маленькие. Ток потребления - примерно 20мА. Можно сделать по принципу вер. 2 часов Гайвера, с управлением от Ардуино, обе половинки питания. Естественно, уровень питания можно повышать и понижать, 10В выбрано исключительно с целью получения некоторого запаса по уровню напряжения.
 
Изменено:

Дуче

✩✩✩✩✩✩✩
4 Авг 2020
9
2
OУ, что может быть проще? И не надо играть в лотерею при покупке.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@poty, смотрю есть подвижки, замечательно.
Значит для 8 каналов потребуется 8 аналоговых+1+2 пинов? При этом если, допустим за базовую взять 2400Гц из расчета, то какие пределы работы фильтра, без существенного завала частоты сверху/снизу?
Во всей полосе частот сохраняется линейная АЧХ.
Вопрос относительно данного момента ^^
А еще лучше - нарисуйте ориентировочный график АЧХ работы всех фильтров от 20Гц до 20кГц
 

poty

★★★★★★✩
19 Фев 2020
3,271
950
@technotrasher, я - сторонник разумной достаточности. Считаю, что версия 2 с режекторным фильтром и АРУ версии 1.2 будет самым оптимальным вариантом. Тем более, что параметры режекторного фильтра можно изменить, подстроив под реальность.
для 8 каналов потребуется 8 аналоговых+1+2 пинов?
У меня рассчитаны 7 каналов (7 аналоговых входов), + аналоговый референс (AREF), + опционально 1 или 2 цифровых пина.
АЧХ моделирования
Линейная
Линейная.png
Режекторный фильтр
Режекторный фильтр.png
Обратная IEC/DIN с уменьшенным диапазоном
DIN.png
Стоит заметить, что для моделирования (и в таблице в графах "практические значения" я округлял значения до ряда E24 (5%), применение деталей из рядов E48/96 значительно увеличит точность. Я считаю, что в таком применении точность никого не интересует, поэтому E24 - дёшево и сердито. Любители точности могут сами выбрать номиналы, теоретические значения оставлены в расчётах.
 
  • Лойс +1
Реакции: Yawdamper и kDn

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Стоит заметить, что для моделирования (и в таблице в графах "практические значения" я округлял значения до ряда E24 (5%), применение деталей из рядов E48/96 значительно увеличит точность. Я считаю, что в таком применении точность никого не интересует, поэтому E24 - дёшево и сердито. Любители точности могут сами выбрать номиналы, теоретические значения оставлены в расчётах.
Меня точность не интересовала вообще, приведенных графиков более чем достаточно. Я просто хотел прикинуть чего ожидать от подобного решения :) . Ну в общем буду ждать воплощения в железе, т.к. мой скепсис в силе - использование схемотехники где-то 30-40 летней давности (по своей идеологии, а не элементарной базе) во время цифровых решений видится несколько странным... Впрочем пока что обожду с выводами, чуть раскидаюсь с текущими задачами и перенесу обещанное на нану, так будет проще любому желающему потестировать, т.к. элементов потребуется нааааамного меньше и лишь один аналоговый пин. :)
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
229
а вот и нет. тут еще вопрос. хватит ли ресурсов нано для и обработки и для остальных эффектов. два контроллера? а вот фильтры на оу решение более овеществленное. и мне более понятное. :)
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
а вот и нет. тут еще вопрос. хватит ли ресурсов нано для и обработки и для остальных эффектов. два контроллера? а вот фильтры на оу решение более овеществленное. и мне более понятное. :)
Однозначно не хватит, я про это и говорил изначально. Т.е. в моей схеме предлагается - один контроллер для обработки сигналов, другой - ведущий. В качестве ведущего может быть как та же нано, так и другой контроллер. Обмен по SPI или RS232. Если речь идет о том, чтобы обойтись одним контроллером - то ИМХО и контроллер нужно брать подходящий))), более того, это уже реализовано.

* Хотя... если использовать динамические буферы и правильную организацию кода, то можно разнести выделение памяти под разложение гармоник и собственно вывод на ленту - таким образом уместив даже в одном контроллере... Но это не предполагается основным вариантом.

Так может быть все-таки на ESP8266? Там ресурсов всяко больше.
Предлагаю проснуться. Этот вариант уже давно есть и не обсуждается в данной теме.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,271
950
Жалко, что никто так и не удосужился проанализировать основную причину преимущества внешней обработки - крайне низкую информативность оцифровки полного аналогового сигнала, независимо от пред и постобработки. В этом - основное преимущество. Всё остальное - лишь прилагательное.
 
  • Лойс +1
Реакции: technotrasher

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Жалко, что никто так и не удосужился проанализировать основную причину преимущества внешней обработки - крайне низкую информативность оцифровки полного аналогового сигнала, независимо от пред и постобработки. В этом - основное преимущество. Всё остальное - лишь прилагательное.
Фраза непонятная. При 256 выборках будут 256 гармоник, т.е. потенциально 256 полосы, естественно столько не нужно, хотя можно и все отобразить, но для той же лампы я сворачиваю 256 в 16 или 8 полос. :)

Если же вы о низкой информативности варианта с фильтрами - то это как бы да, но он и предполагался изначально как чисто аналоговое решение - лампочками посветить, во времена когда процессоры были большими, с полкомнаты :)
 

poty

★★★★★★✩
19 Фев 2020
3,271
950
@kDn, да, похоже, Вы так и не разобрались. Какие значения у Вас будут в "выборках"? Сколько бит в теоретическом пределе и сколько - с учётом реально разного динамического диапазона? Каков шум квантования и будет ли он меньше полезного сигнала или больше? Вы зациклились на обработке идеального сигнала, а Вам приходит дерьмо.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, да, похоже, Вы так и не разобрались. Какие значения у Вас будут в "выборках"? Сколько бит в теоретическом пределе и сколько - с учётом реально разного динамического диапазона? Каков шум квантования и будет ли он меньше полезного сигнала или больше? Вы зациклились на обработке идеального сигнала, а Вам приходит дерьмо.
Вы говорите бред. У меня есть готовая реализация, которую я прогонял через генератор по всему диапазону и лично писал мапинг полос. При этом в имеющейся реализации можно выбирать как разное семплирование, так и разные диапазоны частот. Вот когда вы осилите понять что сделано и как - тогда поговорим. Если у вас из того что вы делаете выходит дерьмо - то ищите проблему у себя, я же сделал ровно то, что хотел.
:)

Повторяю еще раз - цветомузыка сделано уже крайне давно и прекрасно работает и не только лишь по пиковым значениями, но и тот же частотный анализатор в нескольких исполнениях есть, при этом он еще и масштабируется под размер матрицы.
 
  • Лойс +1
Реакции: Олег Поляков

poty

★★★★★★✩
19 Фев 2020
3,271
950
@kDn, Вы не можете ответить ни на один вопрос. Соответственно, изучите сначала матчасть. Иначе разговаривать не о чем.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, Вы не можете ответить ни на один вопрос. Соответственно, изучите сначала матчасть. Иначе разговаривать не о чем.
Ну да, ну да)))
На всякую чушь, которую вы писали я отвечать и не собирался. Вы это... давайте паяйте фильтры - затем сравним. :)
 

poty

★★★★★★✩
19 Фев 2020
3,271
950
Невежество ещё никогда не соглашалось на то, что оно невежество. :) А паять фильтры я не собирался, тем более - не собирался соревноваться с Вами. Я помогал конкретному человеку в конкретном запросе. Обосновал свою позицию не нахрапистым пренебрежением, а конкретными аргументами. Поэтому - гоняйте свою цветомузыку на генераторах и смотрите, как хорошо "маппируются" полосы в лампочки.
 
  • Лойс +1
Реакции: Старик Похабыч

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
А паять фильтры я не собирался
Вот это то, что отличает балабола от того, кто делает. Я-то как раз собираюсь сделать объявленное ранее))). А вы продолжайте картинки рисовать и теоретически рассуждать. :)
 

poty

★★★★★★✩
19 Фев 2020
3,271
950
@kDn, Вы рассуждаете, как Старик Хоттабыч: сделаю красивый корпус телефона, который не работает. Зато ведь не балабол, делаю!
Я ни Вам, ни кому другому ничего не обещал сделать. Не надо мне приписывать свои фантазии.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
229
так. паять и тестить я буду. :) сначала именно вариант на фильтрах. по счетчу я потом спрашивать буду. может и сам одолею. у нас семь амплитуд будет. с пинов.
 
  • Лойс +1
Реакции: Allkor

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, Вы рассуждаете, как Старик Хоттабыч: сделаю красивый корпус телефона, который не работает. Зато ведь не балабол, делаю!
Предлагаю успокоиться и выдохнуть. Ваш вариант проверят, рисуйте шура, рисуйте.

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

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
229
так. выдохните. к цели есть несколько дорог. проверим разные. и кстати скажу - когда тестирую с частотным генератором все идеально. только подаю звук - все сразу не так становится. но это на микросхемах. интересно как сделано в приборах, что работают на концертах. что в них.