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
эффектов очень много. все описано вначале скетча. могу сказать, что есть эффекты от Лумазоид ЦМУ. :)
 

Вложения

Изменено:

Комментарии

technotrasher

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

Diman

★★✩✩✩✩✩
20 Апр 2019
312
72
Что вам мешает заменить три микросхемы на одну нормальную АРУ с компрессией около 50дБ, и решив тем самым все вопросы?
 

technotrasher

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

bort707

★★★★★★✩
21 Сен 2020
3,046
909
переписал код считывания с MSGEQ7 на ассемблер. стало намного точнее
а моэно уточнить, что там могло стать "намного точнее"?
Ассемблер или Си - только инструменты, результат на выходе должен быть один...
Код код считывания с MSGEQ7 простейший, интересно узнать, зачем там АСМ
 
Изменено:

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
а моэно уточнить, что там могло стать "намного точнее"?
Ассемблер или Си - только инструменты, результат на выходе должен быть один...
Код код считывания с MSGEQ7 простейший, интересно узнать, зачем там АСМ
скорость работы и каждый байт памяти. стало реально лучше. скетч уменьшился на 20%. теперь можно больше светодиодов использовать. теперь уйти нужно от фаст лед. конечно если писать на stm. памяти вагон. то можно и не страдать. а тут я каждый байт подсчитываю. кроме того - было запаздывание при аналог рид. может субъективное мое мнение.

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

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
an7312 - это двухканальный УСИЛИТЕЛЬ!!!! зачем мне тут усилитель? может я не так понимаю что либо. как будет выглядеть схема? перерисуйте мою на свой вариант. закажем соберем. проверим. пока доделываю скетч для msgeq и писать буду для фильтров.
 

Diman

★★✩✩✩✩✩
20 Апр 2019
312
72
перерисуйте мою на свой вариант.
Я могу потратить своё время, но вопрос кому это нужно? Там наличие двух MSGEQ7 снижает повторяемость практически до нуля. И в применении двух каналов тоже нет никакого смысла. Да и не будете вы её собирать, кто-то скажет безосновательно "работать не будет" и вы поверите (в очередной раз...).
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Я могу потратить своё время, но вопрос кому это нужно? Там наличие двух MSGEQ7 снижает повторяемость практически до нуля. И в применении двух каналов тоже нет никакого смысла. Да и не будете вы её собирать, кто-то скажет безосновательно "работать не будет" и вы поверите (в очередной раз...).
пока что - работать не будет - поверил вам. о чем и пожалел. все работает.

Чем не угодил фастлед? Что взамен?
microLED. фаст лед очень тяжелый. мне в нем и половины не нужно. освободившееся используем под светодиоды. даже проект лумазоид основан на неопиксель.
 

Diman

★★✩✩✩✩✩
20 Апр 2019
312
72
@technotrasher, Если у вас что то мигает, это не означает что всё правильно работает. Изучите работу диф.каскада компаратора и ответьте куда будут идти базовые токи входов в вашей схеме.
 

bort707

★★★★★★✩
21 Сен 2020
3,046
909
фаст лед очень тяжелый. мне в нем и половины не нужно. освободившееся используем под светодиоды
Простите, но какая связь между "тяжестью" библиотеки и "местом под светодиоды"?
Первое это флеш, второе - ОЗУ, не пересекается вообще.
Вы, похоже, не вполне понимаете, чем определяется максимальное число светодиодов в гирлянде.
Вот и выше пишете - "скетч уменьшился на 20%, теперь можно больше светодиодов..."

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

Да, у microLED есть преимущество - в ней можно задать меньшую глубину цвета для светодиодов, и запихнуть больше светиков в ту же память. Но за это приходится расплачиваться замедлением работы и уменьшением числа режимов, поэтому в последних версиях микроЛЕД, кстати, работает через "тяжелую" FastLEd :)
 
Изменено:

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
отлично! не поможете ли поискать причину с некорректной работой радуги? помочь с анализатором сигнала? может что улучшить можно и упростить. нарисовать свою схему. потестить ее. предложить к сборке.
у меня мигает намного лучше, чем в проекте Алекса. ярче я бы сказал.
 

bort707

★★★★★★✩
21 Сен 2020
3,046
909
Схему нет, я в железе крайне мало понимаю. По коду могу посмотреть.
 
  • Лойс +1
Реакции: technotrasher

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Схему нет, я в железе крайне мало понимаю. По коду могу посмотреть.
Буду очень признателен! интересена обработка сигнала. код там примитивен. просто сама идея. посмотрите.
ну и ошибкой - все же не память. я отключал опрос инфр. приемника. памяти освобождалось очень много. но увы. я все же думаю на таймеры.
проверьте их. может есть лучше идея, где нужно что притормаживать или регулировать скорость. кстати в проекте лумозойда использовали опрос с пина в прерывании. но с MSGEQ там не сильно такое я понимаю как сделать.
 

Вложения

bort707

★★★★★★✩
21 Сен 2020
3,046
909
@technotrasher, уточните, что искать в коде? В чем проявляется ошибка?
И да, какая ардуино-то? :) - Уно?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
@technotrasher, уточните, что искать в коде? В чем проявляется ошибка?
И да, какая ардуино-то? :) - Уно?
arduino nano. ошибка - не работает радуга в 7 режиме. если светодиодов больше 100 или яркость выше 60. таймеры - может есть лучше вариант?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Есть вопрос по логике работы VU метра. для его работы нам нужна амплитуда сигнала. суть напряжение на канале. а частоты нас не интересуют. но. в наших платах у нас частотное разложение. сейчас я снимаю информацию для VU на канале 60 герц. посчитав, что низкая частота всегда есть и она более резкая. это и голос и ударные. есть три варианта обработки сигнала. кстати у Алекса самая заморочная. загляните в скетч. похоже на формулу некую. как считаете - оставлять частоту 60 или взять другую 160, например. есть ли смысл менять логику обработки, если и та, что есть рабочая. Я, конечно проверю. хочется взять лучший вариант.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
А не проще ориентироваться на сумму по каналам?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
как раз про взвешенную и читал. :)))o_O а вот просто суму. и привести ее к количеству светодиодов по каналу. хм. нужно проверить.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
Просто сумму. Изначально сигнал разбивается на части (полосы), в каждой полосе - амплитуда, пропорциональная мощности этой части. Если сложить - получится амплитуда целого сигнала. Ни к чему другому приводить это не требуется.