ARDUINO Анализатор аудиоспектра

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
340
533
Ветка обсуждения проекта Анализатор аудио спектра.
Страница проекта на AlexGyver.ru: https://alexgyver.ru/fhtspectrumanalyzer/
Репозиторий на GitHub: https://github.com/AlexGyver/FHTSpectrumAnalyzer
Видео:

Делитесь своими вариантами изготовления, модификациями и улучшениями!
=================================================================
Внимание!
Эта ветка только для ваших реализаций данного проекта. Для проблем и опросов создана специальная тема. Здесь всё это считается оффтопом и молча удаляется, а авторы получают баллы предупреждений.
 
  • Лойс +1
Реакции: ЮриБас и acetilius

novvel

★★★✩✩✩✩
29 Сен 2018
526
179
Немного доработанная схема и прошивка, саму ленту сделал на МДФ панели, пока нет мыслей как сделать по другому. Использовал микрофон max9814 подключенный напрямую, для компенсации постоянного смещения на входе дописал код (не знаю работает оно на самом деле или нет, но работать стало четче и не реагирует практически на гармоники, без этого на десятках килогерц светились полосы на 100гц). Aref задал 2 резисторами по 10кОм между массой и VCC на ардуино про мини, итоговое получилось 2,03 у меня, его надо вписать в коде как и измеренное смещение на входе сигнала.
Добавлены функции регулировки цветов и длин полос в начале, исправлены перепутанные значения столбцов и строк, теперь можно задавать свою матрицу и будет корректно работать. (спасибо человеку в комментариях на странице проекта)
Отредактирован массив тонов под 10 полосный вариант с микрофоном, теперь работает до 9кгц, выше микрофон слабо берёт.
Добавлена возможность использовать внутренний источник опорного напряжения при использовании микрофона max9814 подключенного через конденсатор 10нФ.
Версия с новыми эффектами.
Схема:
ws2811.jpg
Версия с кнопкой:
ws2811 (1).jpg

IMG_20201206_202435.jpg
Прошивка:
08.12.2020
Добавлен более удобный реверс столбцов вверх/вниз.
Исправил баг с двойными пиками при их отображении.
Выбор схемы подключения в скетче.
20.12.2020
Исправлена грубая ошибка, допущенная в спешке, в выборе схемы в скетче, рекомендую всем, кто ставил билд от 8 числа перешиться (влияет на чувствительность и точность по частотам).

Вынес отдельно настройку таймера авторегулировки громкости и подправил массив тонов под 7кГц для микрофонной версии на 10 полос.
04.04.2021
Вынес настройку типа матрицы (зигзаг или змейка)


17.01.2022 Старая версия без изменений. Добавлена бета версия с новыми эффектами:
Добавил пока тестовый скетч от Олега Полякова отсюда: https://vk.com/im?sel=112091836&w=wall-97877471_765460 , пофиксил старые ошибки, новые частично исправлены, теперь работает с матрицами отличных от квадрата, есть баги и недоработки, пока лень править, смена направления матрицы работает скорее всего частично, проверить не могу. Обсуждение и описания ошибок писать тут: https://community.alexgyver.ru/threads/analizator-audiospektra-obsuzhdenie-proekta.728/page-5
Нужно будет добавить в Arduino IDE библиотеку GyverButton: https://alexgyver.ru/gyverbutton/
18.01.2022
Перезалил скетч, убрал недочеты с -1 пикселом в режимах без пиков.
Изменения в скетче.
1. К основному режиму индикации спектра добавлены ещё 7 новых, которые демонстрируются в прилагаемом видео.
2. Сделаны плавные переходы при смене режимов индикации типа fadeout/fadein.
3. Организованно управление анализатором через одну кнопку.
4. Для псевдо-стерео режимов отображения на центральной оси сделан индикатор громкости с пиковой точкой.
1-кратное нажатие - следующий режим.
2-кратное нажатие - автоматическая смена режима через каждые 30 секунд по кругу.
3-кратное нажатие - вкл./выкл. пиковых точек.
4-кратное нажатие - вкл./выкл. автоподстройки низких/высоких частот.
5-кратное нажатие - вкл./выкл. автоподстройки максимальной громкости.
Удержание кнопки регулирует яркость.
 

Вложения

Изменено:

Олег Поляков

★✩✩✩✩✩✩
18 Янв 2022
20
17
www.1812.ru
@novvel,
доработал ваш скетч.

1. Вынес все эффекты в функции и разместил отдельным файлов в проект.
2. Убрал багу с пиковой точкой в нечетных полосах, когда при падении в ноль точка пика перескакивала на соседний столбец.
3. Убрал багу с увеличением яркости и сам алгоритм изменения яркости переписал. Теперь изменяется плавней с шагом 10.
4. Сделал динамическую заставку при включении, которая проверяет все точки матрицы.
5. Сделал сохранение и загрузку настроек через EEPROM.
6. Сделал световую индикацию изменений параметров визуализации по двойному, тройному, четверному и пятерному нажатию на кнопку: красный - выключено, зелёный - включено.
7. Добавлено несколько дополнительных палитр в уже существующий набор режимов визуализации (кто-то на форуме просил - пользуйтесь!). Таким образом общее количество режимов достигло 12.

Сообщения об ошибках и разумные предложения по улучшению приветствуются.
 

Вложения

Изменено:
  • Лойс +1
Реакции: 00zzz00 и novvel

Олег Поляков

★✩✩✩✩✩✩
18 Янв 2022
20
17
www.1812.ru
Допилил скетч до следующего состояния:
1. Для некоторых режимов визуализации реализована возможность изменять цветовую схему отображения через параметры соответствующих функций в effects.ino. Смысл параметров прокомментирован в коде.
2. Добавлен новый режим визуализации "Зебра". Общее количество режимов - 16.
3. По 6-кратному нажатию на кнопку можно вкл./выкл. режим случайной смены режима визуализации.
4. Добавлена возможность перевода устройства в режим лампы. В этом режиме микрофонная часть не используется, а на светодиодной матрице отображаются разные динамические цветовые эффекты (в текущей версии их 5). Эффекты вынесены в отдельный файл проекта l_effects.ino. Для перехода в режим "Лампа" нужно включать спектроанализатор с нажатой кнопкой.
5. В основной файл проекта добавил памятку, как управлять устройством через кнопку.
 

Вложения

  • Лойс +1
Реакции: novvel и 00zzz00