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
@technotrasher , обратите внимание, что фильтры питаются от двухполярного питания, т.е., даже если остаёмся на 5В, то нужно плату инвертора питания всё же применять или сделать от ШИМ Ардуино.
так. понял. тогда пока питание отставляю в сторону. да. у нас получаются разные модули, которым нужно разное питание. ну с ШИМ пока не пойдет - пины кончаются. :) но это не точно. схема в процесс разводки. есть бп на 5В и на 12В. тогда буду использовать 12. и для разных модулей использовать инверторы. пару дней - я приведу ссылку на схему. и будем вместе проверять и устранять баги перед печаткой. И благодарю за поддержку. хорошо, что есть понимающие.
 
Изменено:

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
@poty, Посмотрел Вашу схему, скажите куда идёт AROUT? И ещё вопрос. Если ОУ питаются от двухполярного источника, то зачем напряжение смещения offset, которое нужно для однополярного подключения?
PC. Если я повторю Вашу схему, это не будет плагиатом?:)
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
AROUT - просто метка. Игнорируйте её.
offset - нужен для компенсации падения напряжения на диоде, входящем в состав выпрямителя/интегратора.
Схему повторяйте, в ней нет ничего оригинального.
 
  • Лойс +1
Реакции: VictorArx

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Ребята. Снова извините, что врываюсь со своим мнением, но...
Смотрите, есть программное решение и оно, в принципе, очень даже рабочее, применено в прошивке лампы jeeUI.
Работает приблизительно вот так
У этого решения есть несколько проблемных мест, не столько связанных с программной частью, сколько с упрощённой схемотехникой входных цепей, - нет входного фильтра для антиалиасинга, и применяется неплохой, но все же микрофонный модуль. Это все же лампа, и раздувать схемотехнику не особо хотелось. Повторяемость падает.

Имхо, стоит закладываться все таки на программную обработку + хорошие входные цепи, но на нормальном камне, а не атмега328. Так как дефицит особого выбора не оставляет, то либо есп, либо чино клоны атмега328, который раза в полтора быстрее считает, к тому же можно пулять на 32Мгц из коробки. Хотя тут stm какой-то прямо просится, но они сейчас как крыло от Боинг стоят.
 
Изменено:
  • Лойс +1
Реакции: novvel и technotrasher

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
2021-08-27_20-43-11.png

Посылки с железками ещё не получил с али, решил прогнать все частотные фильтры на симуляторе. Всё работает. Буду дальше изучать. Пришлось кое что подкорректировать методом проб и ошибок.
 

technotrasher

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

dvuxpolyarnoe-pitanie.gifНа схеме модуль - Блок питания - что это за часть? это после двуполярного питания нужно? или вместо? :)
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@technotrasher, зачем? Что делать с двухполярным питанием? Как оцифровывать потом? Чем однополярное со смещением на выходе ОУ не подходит? Не панятна. :unsure:

Тут чел уже все сделал, только адаптировать аналоговую часть https://www.instructables.com/Nixie-Tube-Music-Visualizer/
 
Изменено:
  • Лойс +1
Реакции: technotrasher

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
@kostyamat, Мне кстати тоже не понятно зачем питать ОУ двухполярным источником + - 15 вольт, когда можно питать 30 вольт однополярным, или меньшими значениями. В характеристиках допускается оба варианта.
смещением на выходе ОУ
Или на входе?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
@technotrasher, зачем? Что делать с двухполярным питанием? Как оцифровывать потом? Чем однополярное со смещением на выходе ОУ не подходит? Не панятна. :unsure:

Тут чел уже все сделал, только адаптировать аналоговую часть https://www.instructables.com/Nixie-Tube-Music-Visualizer/
на входе. :) да. тоже полосовые фильтры. что лучше и что делать???
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
Удалил на всякий случай из схемы. Соглашусь, что это было нечётко, поскольку могло показаться, что нужно это всё соединить вместе.
@technotrasher, отвечу на все вопросы, но должен для начала узнать, что за "блок питания 12В" Вы имели в виду? Дело в том, что если у блоков питания 5В и 12В одинаковые земли (т.е., допустим, они питаются от одного первичного блока питания), то использовать напрямую приведённую схему невозможно.
Если это независимые блоки питания, то такую схему использовать можно, но для данного применения она слишком сложна. Я бы оставил два резистора (R1, R2 на Вашей схеме, средняя точка подключена к земле) и конденсаторы (C1, C2, С3 на Вашей схеме, увеличив их до 470-1000мкФ). Этого достаточно для того, чтобы сформировать среднюю точку (землю), так как через неё не протекает никакого тока (вернее - очень маленький). Кстати, есть специализированные микросхемы формирования средней точки (например, TLE2426).
Я бы предложил Вам использовать двуполярный DC/DC преобразователь (попробуйте поискать DD1718PA для примера) - это дёшево и полностью удовлетворит нужды питания для схемы. Этот преобразователь можно подключить к единому питанию 5В.
@kostyamat, предлагаю посмотреть на схему, она в этой же ветке и открыта.
@VictorArx, а чем это лучше? Нам всё равно потребуется DC/DC-преобразователь или блок питания с большим напряжением. Мы добавляем цепи смещения, кучу переходных конденсаторов, чтобы убрать постоянное смещение и ничего не получаем взамен.
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
@poty, Со схемотехникой разобрались(шкурный вопрос), а скетч будить?
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
Этим управляет @technotrasher, это его проект.
Мне цветомузыка не нужна, просто помогаю. В какой-то мере хочется помочь страждущим из-за брака микросхем MSGEQ. Одновременно разгрузить процессор для (возможно) улучшения картинки/увеличения эффектов. В целом скетч элементарный: читаем аналоговые порты и применяем полученные числа для отображения.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
@poty, Со схемотехникой разобрались(шкурный вопрос), а скетч будить?
ага. ещё схема не сделана а уже скетч. но. есть хорошая новость. по идее все что мы делаем это копия тех же MSGEQ. но легче по компонентам. скетч потребует небольших переделок.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Та не, таки на выходе. Я возможно неправильно выразился. При двухполярном питании получите на выходе синусоиду от плюса до минуса относительно земли. При однополярном - синусоида пляшет вокруг смещения в половину питания на выходе ОУ. Что более целесообразно для оцифррвки. Зачем вам негативная полуволна, что с ней делать? И зачем такие напряжения питания, что бы что? Вы сигнал собираетесь до какого уровня разгонять? Ардуина принимает на вход ADC максимум 5в, а камни по современнее вообще 3.3в.
Честно не совсем понятно.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Избыточное цитирование
Кстати, есть специализированные микросхемы формирования средней точки (например, TLE2426).
Я бы предложил Вам использовать двуполярный DC/DC преобразователь (попробуйте поискать DD1718PA для примера) - это дёшево и полностью удовлетворит нужды питания для схемы. Этот преобразователь можно подключить к единому питанию 5В.
решил использовать БП на 12В. однополярный. и из него уже получать двуполярное.
DD1718PA - плату нет смысла заказывать. если можно то мне бы схему. я просто добавлю это на плату. хотя могу заказать с али и перерисовать схему.
с TLE2426 не нашел ни одной схемы.
самая распространённая схема преобразователя.

Та не, таки на выходе. Я возможно неправильно выразился. При двухполярном питании получите на выходе синусоиду от плюса до минуса относительно земли. При однополярном - синусоида пляшет вокруг смещения в половину питания на выходе ОУ. Что более целесообразно для оцифррвки. Зачем вам негативная полуволна, что с ней делать? И зачем такие напряжения питания, что бы что? Вы сигнал собираетесь до какого уровня разгонять? Ардуина принимает на вход ADC максимум 5в, а камни по современнее вообще 3.3в.
Честно не совсем понятно.
понял!!! точно. это будет от -5 до +5? совсем не нужно...
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
Утро доброе , коллеги. Совершенно верно ,при двух полярном питании ОУ на выходе сигнал синусоида от плюса до минуса относительно земли. Для этого и ставим диод и накопительный кондёр. На выходе положительный сигнал. Это отображено на схемах .

Вы сигнал собираетесь до какого уровня разгонять?
При подаче входного сигнала амплитудой 250 mv(линейный выход) и коэфф. усиления ОУ 2.5 получим сигнал на выходе около 700 mv. Даже если питание ОУ 30 вольт. Что касается arduino , его аналоговых входов, за счёт входного линейного усилителя, усиливаем сигнал с линейного выхода до нужной амплитуды + коэффициент усиления ОУ и подаём на аналоговые входы МК, не более 5 вольт. Примерно так.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
@kostyamat, схема предназначена для того, чтобы полностью убрать обработку сигнала внутри МК. Т.е. выделение полос, амплитуды сигнала и первичное интегрирование производится до МК. АЦП МК должен лишь прочитать 7 цифр и использовать их далее для отображения. Делать это лучше раз в 10мс. Если стерео, то получается опрос раз в 20 мс каждого канала со смещением (20мс/2=10мс опроса). Здесь не нужно сохранять форму сигнала, @VictorArx это уже Вам подсказал.
По поводу питания (прочитайте до конца, пожалуйста). Я ориентировался на 10В (ранее написал, что на 12, ошибочно). Объясню почему. Амплитудное напряжение на выходе усилителя/режекторного фильтра предполагал не менее 5В. Из-за невозможности контролировать процесс выбора ОУ предполагал, что возьмут первый попавшийся, у которого вход или выход, как правило, не является rail-to-rail, т.е. есть прямая опасность, что нужно будет добавлять до 1,5В к питанию с каждой стороны (для обозначенного LM324 - ограничение со стороны положительного питания по входу и по выходу не более 1,5В до напряжения питания). Но даже rail-to-rail у дешёвых ОУ - это, как правило, 0,2-0,5В, которые требуется добавить в каждое плечо питания.
После этого идёт интегратор на диоде+конденсаторе. Простые диоды имеют прямое падение напряжения 0,7-1В, что требует смещения выходного сигнала на это самое напряжение. Таким образом напряжение питания становится 5+1,5+1=7,5В как максимум или 5+0,2+0,7В=5,9В как минимум (при правильном выборе компонентов).
описано, например, здесь. Но проще и дешевле, как мне кажется, купить модуль. Впрочем, по этому поводу советовать не могу - конструкция полностью Ваша!
Посмотрите, как включено, например, здесь. Но ещё раз повторяю, смысла в этом для данного применения особенного нет. Нам нужно получить виртуальную сигнальную землю, а не землю питания, поэтому токи там будут микроамперные. Поэтому предлагаю схему (см. первоначальную схему на второй странице, я её изменил). Простой конструкции вполне достаточно!
 
Изменено:

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
делаю по обновленной схеме. теперь вопрос нужен БП на 20В? как же мне запитывать Arduino и остальное оборудование? на светодиодные ленты тоже +5 нужно. да ещё и ток до 5А.
и помогите переделать "переключатель" для микрофона. он сейчас отключает "землю". ну вот совсем не нужно так. нужно питание прерывать.mc.jpg
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
Нет, 20В и 10В выбраны исходя из первоначальных прикидок. 12В тоже подойдёт, немного уменьшим напряжение на выходе (но лучше, по возможности, выбрать rail-to-rail). Ещё раз обращаю внимание, что БП 12В должен быть независимым!
5В, вроде, есть же? Или я что-то упустил?
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Для этого и ставим диод и накопительный кондёр.
И в результате это работать не будет вообще. Положительная полуволна будет заряжать конденсатор, а отрицательная разряжать. Двухполярное питание в этом применении неоправдано ничем.

Таким образом напряжение питания становится 5+1,5+1=7,5В как максимум или 5+0,2+0,7В=5,9В как минимум (при правильном выборе компонентов).
Красиво считаете, согласен. Но это имеет смысл, если очень хочется привести уровень сигнала к максимальному для ADC МК. Но, этого ведь делать не нужно, для этого ведь и существует AREF, которым можно выставить нужный диапазон. Имхо, питать ОУ от +5, и не усложнять себе жизнь и схему.

*** Имхо не стоит АРУ строить на управлении AREF. Лучше на входе применить готовый усилитель с АРУ.
 
Изменено:
  • Лойс +1
Реакции: technotrasher

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Интересно будет получить расчет себестоимости и оценить экономическую целесообразность. :)

А то я чем дальше читаю, тем больше офигиваю.
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
Положительная полуволна будет заряжать конденсатор, а отрицательная разряжать
Откуда возьмётся отрицательная волна, если диод пропускает только в одну сторону. Может сейчас уже изобрели другие и я не в курсах?

Для однополярного питания нужно рассчитать цепочку из резисторов для напряжения смещения, вроде несколько мв.
 
Изменено:

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Нет, 20В и 10В выбраны исходя из первоначальных прикидок. 12В тоже подойдёт, немного уменьшим напряжение на выходе (но лучше, по возможности, выбрать rail-to-rail). Ещё раз обращаю внимание, что БП 12В должен быть независимым!
5В, вроде, есть же? Или я что-то упустил?
есть только 5В. схему с ДВУМЯ бп никто собирать не будет... там и так уже такое мостроозное вычерчивается. :))) я то соберу. я просто куплю двуполярный. но воспроизводимость проекта... может как то обойдемся одним бп?

Интересно будет получить расчет себестоимости и оценить экономическую целесообразность. :)

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

poty

★★★★★★✩
19 Фев 2020
3,220
938
Положительная полуволна будет заряжать конденсатор, а отрицательная разряжать.
А Вы не знаете, как работает диод? Он в одну сторону ток пропускает, а в другую - нет.
не стоит АРУ строить на управлении AREF. Лучше на входе применить готовый усилитель с АРУ.
Значит и в этом случае идею не уловили.
Вообще, странно слушать критику от человека, который в схемотехнике, похоже, совсем не разбирается.

@technotrasher, формально - почему нет? Допустим, используем те же самые ОУ. Имеем ограничение сверху в 1,5В. Остаётся 3,5В. Т.о., offset должен быть увеличен на 3,5/2 + прямое падение на диоде. На амплитуду сигнала остаётся около 1В, поставить на каждый выход конденсатор. АРУ убрать.

экономически там все мрачно
Почему же мрачно-то? Пара корпусов ОУ на 20 рублей, горстка резисторов рублей на 20, горстка конденсаторов примерно на столько же, ну транзисторы/диоды рублей на 50. Итого = 110 рублей. Если брать китайские DC/DC - пусть 300 рублей в +. Итого - 410 рублей. Всего делов-то.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
А Вы не знаете, как работает диод? Он в одну сторону ток пропускает, а в другую - нет.
Да ну нафиг? Вот это поворот! С полуволной я конечно тупанул, не та картинка в голове сформировалась. Спал мало, и встал поздно.
Но так или иначе, отрицательная волна будет отсекаться, тогда зачем она, какая польза? Нам то, по большему счету, нижняя часть синусоиды вообще не нужна. Нам бы верхнюю усилить, мы ж ее накапливать собрались на кондюке.

Поэтому предлагаю смещение ОУ делать на величину потерь диода, можно на таком же диоде. Иначе, если смещать на половину питания, на кондюке всегда будет половина питания (минус потери на диоде), даже при отсутствии сигнала. При подаче этого на ADC контроллера - теряем половину диапазона измерений.


Значит и в этом случае идею не уловили.
Вообще, странно слушать критику от человека, который в схемотехнике, похоже, совсем не разбирается.
ну ок. С kDn вы уже письками померялись, давайте еще со мной. Если, что я пасс.
И да идею понял, но не оценил.
Я вам показывал схему компрессора с АРУ. Вот ее на вход, возможно с пересчетом, под текущую задачу. AREF трогать не стоит, имхо.
 
  • Лойс +1
Реакции: technotrasher