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
@kDn, это - моя специальность, изученная ещё в 80-ые, так что не стоит ёрничать по этому поводу.
Для начала я вообще не в курсах про вашу специальность, но то что отпечаток 80х - заметно :), еще раз напоминаю о том, что текущая реальность по большей мере цифровая. Это не хорошо и не плохо, просто так получилось.
Расчёт приводить не буду - сразу написал, что считать и понимать формулы не учу, за этим - в школу.
Фигасе. Зачем вы тогда пишите? Напоминаю про ваше:
Остаётся около 16 уровней (4 бита). Вот и вся правда.
Или забыли???

----------------
Тут походу не школа, а детский садик, с яслями. Впрочем мне как бы пофиг, я могу и игнорировать ваши рассуждения, если у вас на то есть желание. Продолжайте писать про фазу луны и евреев в 18 году, ваши заблуждения - ваши проблемы, а не мои. Если вы про то, что малое число семплов не дает точной формы сигнала, то это и ежу понятно, но не в контексте цветомузыке - где это похрен от слова совсем.
 

poty

★★★★★★✩
19 Фев 2020
3,221
938
Приведённая фраза из моего ответа не подходит к вопросу, который Вы задавали. Подсчёт, про который был Ваш вопрос, был по поводу правдивости графика эффективных бит из ссылки, которую Вы же сами и привели. Моя фраза была про эффективное разрешение на ВЧ реального сигнала, оцифрованного с помощью Nano.
Можете и дальше заниматься демагогией, меня это не интересует.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@poty, еще раз. В первый раз вы понаписывали вообще фигню, в этот раз уже ближе к истине, и даже к 8.2 бита у меня не будет возражений, если вы приведете расчет. Вы же откуда-то взяли это значение, надеюсь не с потолка? Да, я в курсе, что вы отталкивались от расчетов по той ссылке, что я вам дал, даже цитаты оттуда. Но я прошу расчет. Тут демагогии нет совершенно, расчета я тоже не вижу.

Итак - вы можете подтвердить свои слова расчетом, если вдруг провалы в памяти, то можете повторить его, начиная отсюдова:
C++:
Bit-Depth Calculations

To calculate the effective number of bits (ENOB), we need to know 3 things: (1) the signal level, (2) the noise floor, and (3) the total bandwidth of the noise floor. This will allow us to calculate the signal to noise ratio (SNR), which is, as it sounds, the signal level divided by the total noise level. From there we use the following formula to calculate the ENOB:

ENOB = (SNR – 1.76dB)/6.02dB

Basically, for each additional data bit you double your range (2 bits gives 4 levels, 3 bits gives 8, and so on), giving you 20log(2) = 6.02dB more SNR per bit. The 1.76dB compensates for the fact that the noise floor is not a sine wave – it takes discrete steps for each bit. So its relative energy level is different from that of the input signal. For further reading on the derivation of this formula, check out this great app. note on ENOB from Analog Devices. They also have one explaining sigma-delta converters that is really good.
И еще раз - я написал с каким шагом будут идти гармоники после FFT, этого более чем достаточно. Но на всякий случай напоминаю, что далее 128 гармоник будут логарифмически приведены к кол-ву полос. Пример этого мапинга я уже тоже ранее давал, но не в этой теме.

* Кончайте клоунаду и покажите как посчитали 8.2 - мне это интересно, остальное - не очень.
 

poty

★★★★★★✩
19 Фев 2020
3,221
938
"Включите голову" - мне кажется это Ваше произведение? Второе утверждение, что все вокруг пишут фигню, но Вы не понимаете, откуда она взялась. Прочитайте ещё раз, на какую формулу я ссылался, это не та формула, которую Вы привели в повторном вопросе.
2021-08-23_23-44-15.png
Выделил на всякий случай то, что нужно исключить, чтобы получить нужное значение.

Чтобы понять, с чего вообще я оставил 4 бита на ВЧ в самом первом сообщении - прочитайте последовательно мои длинные пояснения. Вкратце: точность АЦП - минус 2 бита из десяти; пик-фактор (Вы же без компрессора это делаете) уменьшает разрешение в среднем на 1,5 бита; динамический диапазон пропускаем если будет АРУ; типичная кривая мощности на ВЧ в диапазоне, сравнимом с верхней частотой микросхемы - минус 2,2 бита. Примерно 1,5 бита из вышеперечисленного можно сэкономить, но в своих расчётах я не учитывал уменьшение разрешения АЦП из-за увеличенной частоты (1,8 бит).
 
Изменено:
  • Лойс +1
Реакции: technotrasher

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@poty, ну точно клоунада. Вместо того чтобы дать формулу и подставить в нее значения - куча словесного мусора.

Вопрос следующего плана - я генератором подаю идеальный синусоидальный сигнал с размахом 2В на вход АЦП для частоты 200Гц, 2000Гц, 20000Гц, при этом допустим что 0В соответствует 0 результирующего значения АЦП, 1023 соответствует 2В сигнала. Вопрос - я получу разные значения в контроллер или одинаковое в зависимости от частоты? Вопрос номер два - смогу ли я увидеть главную гармонику в 200Гц, 2000Гц и 20000Гц при условии того что число семплов достаточное чтобы захватывать эти гармоники + частота дискретизации не менее 40кГц. Вопрос номер три - если я уменьшаю размах сигнала вдвое, то изменится ли что-то для всех трех случаев в плане измерения частоты?

Что же касается того, что на самом верхнем значении частоты придется только 2 семпла - то это и ежу ясно, при этом они вполне могут и не приходится на пик. Только это вообще не значит нихрена. Вы даже если просто будете захватывать сигнал с достаточным числом семплов, то увидите периодическую смену оцифрованных значений. Но взять-то максимум по модулю никто не мешает, а??? :)
Это и будет амплитуда главной гармоники, у всех других амплитуда будет меньше или равна данной.

Читать написанное выше до просветления. На вопросы можете не отвечать, это вам на то, чтобы головой подумать и не писать чушь.

* Не, ну я конечно могу завтра подключить осциллограф подать ЗЧ, тыкнуть вас носом в замеры и значения. Оно вам надо? Если очень надо - сделаю. Попросите вежливо, я не откажу. :)
 

kDn

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

poty

★★★★★★✩
19 Фев 2020
3,221
938

@kDn, я не общаюсь с людьми, которые не могут цифры подставить в формулу. Давно. Удачи в начинаниях и особенно - в окончаниях. Считаю спор исчерпанным.
Особенно после "идеальный синусоидальный сигнал с размахом 2В на вход АЦП ..., при этом допустим что 0В соответствует 0 результирующего значения АЦП, 1023 соответствует 2В сигнала". :-D
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@poty, а что вы делаете? Вы себя выставляете в весьма глупом виде. Поскольку я как раз могу свои слова наглядно подтвердить. :)

* Но дело хозяйское, хотя бы почитали полезную информацию и то хорошо. Я честно говоря на это не особо рассчитывал, когда ссылки давал.
** Но мне как-то вообще пофигу, я просто неспешно делаю свое дело, как только момент выдается, можете ничуть не сомневаться - сделано оно будет))), как только так и сразу. Вот вам скриншот и фото:
1629753760232.png
IMG_20210824_001911.jpg
 
  • Лойс +1
Реакции: novvel

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
Тема не только набрала обороты , тута впору замахнуться на диссертацию по теме цветомузыки. Неужели всё так сложно? Мне сдаётся структурная схема выглядит следующим образом. Сигнал с линейного выхода амплитудой 250 мв , частотного диапазона, различаемого человеческим ухом в пределах 20 гц- 20 кгц подаётся на АЦП для оцифровки, чтобы избавить Arduino от Фурье, Котельникова и лишней гай гармоники. Таким образом скетч будет не 1000 строчек, а значительно меньше и понятнее многим. У наших китайских друзей наверняка есть готовые микрухи АЦП.
PC. В мои студенческие годы была всего одна цифра 3.62 и она учавствовала во всех проектах.
 
  • Лойс +1
Реакции: Yawdamper

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
@poty, Буду изучать, что это всё значит.
Если я правильно понял изложенный материал, нужно сначала аудио сигнал разложить на частоты с помощью операционных усилителей и лишь затем подавать на arduino? Типа анализатора спектра.
На самом деле все очень сильно усложнили. чтобы во всем разобраться нужно иметь диплом физика, быть математиком и желательно инженером-радиоэлектронщиком. но это не нужно. идеала не будет. звук дело тонкое. :) и часто - творческое. да и сами композиции сами по себе не эталоны. и представляют собой и шумы и "левые" гармоники и наложения частот... и все это будет отлично отрабатываться лампами. по моему мнению интересный вариант именно цму на фильтрах. но это мое мнение.
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
@technotrasher,
Цветомузыка на MSGEQ7
Учитывая много брака данной микрухи не проще ли сделать анализатор спектра на самой arduino, а вторую arduino использовать, как управляющую светодиодной лентой.
PC. Скоро Новый год, у нас ничего не сделано и не пришли к консенсусу.
 
  • Лойс +1
Реакции: Allkor

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Избыточное цитирование
@technotrasher,
Цветомузыка на MSGEQ7
Учитывая много брака данной микрухи не проще ли сделать анализатор спектра на самой arduino, а вторую arduino использовать, как управляющую светодиодной лентой.
PC. Скоро Новый год, у нас ничего не сделано и не пришли к консенсусу.
не проще. далеко не проще. и микросхемы есть где купить. я смог. но они тоже не идеал. так как частоты имеют пересечения. но не все 7 нам нужны на самом деле. 4 хватит вполне.
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
Избыточное цитирование
не проще. далеко не проще. и микросхемы есть где купить. я смог. но они тоже не идеал. так как частоты имеют пересечения. но не все 7 нам нужны на самом деле. 4 хватит вполне.
Например какие 4 частоты?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
например НЧ, СЧ, ВЧ. и например 12000. выше нет смысла. откройте скетч и посмотрите.
 

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
Друзья, я присоединяюсь. Спаял для отца цветомузыку 4 канала. Фильтр на операционниках затем оптосемисторы и выходные семисторы. Отец(он всю свою молодость паял цветомузыки на фарах и толк в них знает)доволен по уши.Я думаю надо выходы операционников посадить на аналоговые ардуино и далее прокидывать нужный эффект на ws2812

Аналоговая цветомузыка это как пластинки слушать.
 
  • Лойс +1
Реакции: Yawdamper и technotrasher

poty

★★★★★★✩
19 Фев 2020
3,221
938
@VictorArx, что-то я не пойму слова "у нас"? По-моему, в этой ветке как раз все что-то делают, понимая что-то в этом или по наитию - тут уж как пойдёт. Если для Вас проще тот путь, который Вы выбрали - возьмитесь и сделайте! @technotrasher уже сделал один вариант, сейчас, насколько я понимаю, делает второй, возможно, даже использует то, что я посчитал. Или сделает по своему - здесь, как говорится, кто главный конструктор, того и тапки!
 
  • Лойс +1
Реакции: technotrasher

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@technotrasher, встряну немного, если позволите.
Три, или сколько там полос нужно, полосовых фильтра на ОУ, сигнал с которых стоит имхо несколько апроксимизировать, - например выпрямить и накопить на небольшом конденсаторе , подаете на ADC пины ардуино. Далее поочередно меряете напряжение на конденсаторе, переводите вывод в режим дигитал и кратковременно прижимаете его к массе, чтобы разрядить конденсатор, возвращаете вывод снова в режии ADC. Переходите к вычитке следующего полосового фильтра, на следующем пине ADC. Все это в цикле, со строго заданной периодичностью. Из полученных значений строите картинку.
Предполагаю, что микросхема что-то подобное и делает.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,221
938
@kostyamat, примерно это и делается в той версии, что я привёл, только для 7 каналов. 7 каналов удобнее, так как можно использовать цвета из разных частей спектра, хоть и "радужные" для отображения полос.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Избыточное цитирование
@VictorArx, что-то я не пойму слова "у нас"? По-моему, в этой ветке как раз все что-то делают, понимая что-то в этом или по наитию - тут уж как пойдёт. Если для Вас проще тот путь, который Вы выбрали - возьмитесь и сделайте! @technotrasher уже сделал один вариант, сейчас, насколько я понимаю, делает второй, возможно, даже использует то, что я посчитал. Или сделает по своему - здесь, как говорится, кто главный конструктор, того и тапки!
пока черчу в EasyEDA. и собираю основные компоненты на макетку. да скетч прикидываю.

@technotrasher, встряну немного, если позволите.
Три полосовых фильтра на ОУ, сигнал с которых стоит имхо несколько апроксимизировать, - например выпрямить и накопить на небольшом конденсаторе , подаете на три ADC ардуино. Далее меряете напряжение на конденсаторе, переводите вывод в режим дигитал и кратковременно прижимаете его к массе, чтобы разрядить конденсатор, возвращаете вывод снова в режии ADC. Переходите к вычитке следующего полосового фильтра. Все это в строго заданные периоды времени. Из полученных значений строите картинку.
Предполагаю, что микросхема что-то подобное и делает.
четко описали работу MSGEQ7. :)))))
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@kach-99, а схемой не поделитесь? Интересно глянуть как теперь такие вещи строят.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Избыточное цитирование
@kach-99, а схемой не поделитесь? Интересно глянуть как теперь такие вещи строят.
если как раньше - то точно так же, я думаю. на деталях СССР. все также. разве, что плату в китае можно заказать. :)))
 

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
@kostyamat, схему где то в интернете нашел. Работает очень четко. Динамично. Попробую похожую отыскать. Плата лут делается за секунды.

Фильтр я собирал по первой схеме на lm324 силовую часть по второй схеме. Было пять лет назад. Актуально до сих пор. Пока в отпуске. Через неделю на работе займусь. Спаяю часть с фильтрами подключу к ардуино. Дальше надо думать как эффекты прикрутить. Вообще в цветомузыке схемотехника не самое главное(но важное) нужны хорошие световые установки. Пара семисторы и лампы накаливания дают отличный динамический диапазон. Буду пробовать на светодиодных лампах(скорее всего придется на 12вольт делать,так как в 220 драйвера либо кондеры стоят),так как цветные лампы накаливания в дефиците стали.Screenshot_2021-08-25-14-20-52.jpg

если как раньше - то точно так же, я думаю. на деталях СССР. все также. разве, что плату в китае можно заказать. :)))
Почему на деталях ссср
 

Вложения

  • Лойс +1
Реакции: charr33 и kostyamat

technotrasher

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

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

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
Избыточное цитирование
к семисторам светодиоды цеплять... лампы накаливания имеют инерционность. и это красиво смотрится. плавность затухания. а вот резкая работа светодиодов может не понравится. хотя это дело вкуса. лично мне не нравится.
Полностью согласен, поэтому хочу на 12 вольт лампочки светодиодные делать и транзисторы оставлять. Поэтому и надо использовать ws2812 и играться с эффектами

для антуража! и коробочку подобрать такую на барахолке... будет и выглядеть красиво и под старину.
Ясно. С этим согласен.