Как сделать спектроанализатор звука

Графический анализатор звука на Arduino

Как сделать спектроанализатор звука

Добрый вечер. Сегодня я поделюсь с вами инструкцией по изготовлению графического анализатора спектра ауди сигнала. Звучит заумно, но на практике очень крутая и красивая вещь. Этот анализатор станет отличным украшением любой вечеринки, комнаты геймера или простого человека. Я думаю вы много раз видели, как работает подобный графический анализатор. Подобные украшения есть во многих компьютерных проигрывателях, например, Winamp. Все они выглядят очень эффектно. Единственный минус – все они на экране монитора, яркости маловато и очень мелкие, тем более не будешь ведь вешать монитор на стену, подключенный к компьютеру, ради цветомузыки. Поэтому мы будем делать наш анализатор отдельным устройством. В качестве контролера, как всегда, Arduino. Сам графический анализатор будет сделан на основе ленты из адресных светодиодов WS2812. Из ленты WS2812 мы будем собирать матрицу 16х16 светодиодов. В принципе эту же матрицу можете использовать и по-другому назначения, например, для вывода текста или просто красивых эффектов, все будет зависеть от скетча, который вы зальете в Arduino.

Ну и по мелочам нам понадобится:

— Arduino (подойдет любая)
— Адресные светодиоды WS2812 256 шт. (9 метров ленты, можно купить на ledrus.org)
— Блок питания 5V минимум 3А
— Резистор 220 Ом 1шт.
— Резистор 10 кОм 3 шт.
— Переменный резистор 10 кОм 1 шт.
— Керамический конденсатор 10nF
— Лист фанеры толщиной 3 мм
— Лист светофильтра
— Матовый пластик
— Канцелярский двусторонний скотч, толщиной 9 мм.
— Штекер стереоджек 3,5 мм 1 шт.
— Тройник стереоджек
— Соединительные провода
— Стартовый профиль для ПВХ панелей толщиной 10 мм.
— Ножовка по металлу
— Термоклеевой пистолет
— Набор юного «пайщика» (паяльник, припой, канифоль)

Как сделать спектроанализатор звука

Теперь разлинуем нашу фанерку, чтобы приклеить ленту ровно. Отступаем от верха 17 мм и проводим первую линию. Затем проводим линии через каждые 33 мм. Вдоль этих линий будем клеить ленту. От левого и правого краев отступаем 19 мм и проводим перпендикулярные линии, эти линии будут указывать на положение первого и последнего в линии светодиода.

Как сделать спектроанализатор звука

Для этой матрицы нам будут нужны адресные светодиоды WS2812. Я не просто так каждый раз, когда речь идет о WS2812, уточняю что они адресные. Есть люди, желающие сэкономить, и покупающие обычную ленту с RGB светодиодами. На такой ленте матрицу не сделаешь. Лента бывает разной плотности. Плотности измеряется в количестве светодиодов на метр ленты. Они бывают 30, 60, 144 светодиодов на метр. Для этой матрицы нам нужна лента плотность 30 светодиодов на метр. Матрица будет размером 16 х 16, то есть 256 светодиодов всего. Ленты надо купить 9 м, это получится 270 светодиодов, немного останется, но сомневаюсь, что вам продадут ленту ровно 256 светодиодов. Разрезаем ленту на отрезки по 16 светодиодов. Обратите внимание, у ленты есть направление. Контакт Din указывает на вход сигнала, Do – соответственно выход. Клеим первый отрезок ровно по первой линии, край первого светодиода должен совпадать с перпендикулярной линией. Если с первого раза не получится приклеить ровно, ленту можно аккуратно отодрать. В таком случае для приклеивания во второй раз, необходимо наклеить на ленту канцелярский двусторонний скотч, толщиной 9 мм. Второй отрезок клеим в обратном направлении. И так далее. В конечном итоге, если идти по направлению сигнала (от Din к Do) у вас должен получиться зигзаг. Приклеив все 16 полос в зигзаге образном порядке, можно приступить к припаиванию проводов. Контакты питания соединяем параллельно.

Как сделать спектроанализатор звука

Лучше всего это делать в начала полос, но не с самого края, чтобы проще было припаивать сигнальный провод. Сигнальный провод припаиваем, соединяя полоски в одну ленту. То есть от Do первой полосы к Din второй, от Do второй к Din третьей и так далее.

Как сделать спектроанализатор звука

К первой полосе, со стороны контакта Din, припаиваем все три провода, лучше взять с запасов. Место пайки этих провод лучше зафиксировать термоклеем, чтобы не отодрать провода в случае неожиданностей.

Как сделать спектроанализатор звука

Как сделать спектроанализатор звука

А также из такой матрицы можно достать пластик, подходящий для нашей матрицы

Как сделать спектроанализатор звука

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

Как сделать спектроанализатор звука

Сверху накрываем вырезанным пластиком.

Как сделать спектроанализатор звука

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

Как сделать спектроанализатор звука

Шаг 2 Подготовка питания.
Светодиодная лента WS2812 очень прожорлива. Один такой светодиод при максимальной яркости и включенных всех трех цветах потребляет 0,06 А. Воспользуемся калькулятором. 256 х 0,06 = 15,36 А. Это по максимуму. В действительности максимальная яркость очень режет глаза, я в скетче ставлю яркость 15 (при диапазоне 0 – 255) и этого достаточно. Все три цвета вместе дают просто белое свечение. Поэтому тоже редко используется. Лента питается от 5 В. Я рекомендую блок питания не менее 3 А, на 5 вольт соответственно. Как минимум такой

Как сделать спектроанализатор звука

Если вы хотите использовать матрицу на максиму яркости или есть планы на изменение скетча, лучше взять блок питания с запасом. Я рекомендую использовать старый, но рабочий блок питания от стационарного компьютера. У него есть все необходимые напряжения, да и мощности хватит

Как сделать спектроанализатор звука

Нам надо лишь его немного переделать. Замыкаем зеленый провод (PC_ON) на землю GND (COM). Это нужно для включения блока питания. Можно вывести удобную кнопку, чтобы каждый раз не замыкать проводком. Фиолетовый провод- это дежурные 5 В (+5VSB), к нему нельзя подключаться, так сила тока там слишком мала. Подключаться надо к красным проводам (+5VDC). Если хотите получать и 12 B, подключайтесь к желтым проводам (+12VDC или 12V1 DC).

Как сделать спектроанализатор звука

Также лучше сразу вывести нужные провода в одну колодку, для быстрого подключения.

Как сделать спектроанализатор звука

Шаг 3 Подготовка Arduino и прочей электрики.
Берем нашу Arduino. Нам подойдет любая версия. Я буду все делать на Arduino Nano. Нам необходимо подавать на Arduino ауди сигнал. Для этого будем разделять источник сигнала на два. Допустим мы будем брать звук от компьютера. Чтобы была возможность и прослушивать звук через колонки и анализатор работал, купим в ближайшем радиомагазине тройник стереоджека.

Как сделать спектроанализатор звука

Тройник вставляем в компьютер, один конец подключаем к колонкам, второй к Arduino. Собираем все по схеме.

Как сделать спектроанализатор звука

В конечном итоге, вместе с матрицей и блоком питания, схема будет выглядеть так.

Как сделать спектроанализатор звука

Шаг 4 Подготовка и заливка скетча.
Для правки и заливки скетча вам понадобится Arduino IDE. Скачивайте ее с официального сайта.

Теперь собственно скачиваем скетч. Заливать мы будем слегка правленый мною скетч от гуру Arduino разработки – AlexaGyver. Именно он вдохновил меня на создании этого графического анализатора.
analiz_ws2812_16x16.rar

Для правильной работы скетча понадобятся библиотеки. Для удобства я добавил все необходимые библиотеки в один архив. Скачиваем их все одним архивом.
libraries.rar

В архиве находятся следующие библиотеки: Adafruit-GFX-Library-master, arduino-Max72xxPanel-master, FastLED-master, FHT, LedControl-master, LiquidCrystal, LiquidCrystal_I2C-master. Все их необходимо скопировать в папку «libraries», находящуюся в корне директории с установленной Arduino IDE. Распаковав архив, и добавив все библиотеки в Arduino IDE, можно переходить к компиляции и заливки скетч в Arduino.

Как сделать спектроанализатор звука

Источник

32-полосный анализатор-визуализатор спектра звуковых частот на Arduino

В этой статье мы рассмотрим создание 32-полосного анализатора-визуализатора спектра звуковых частот на основе платы Arduino. Надеемся, что этот проект вызовет интерес у аудио энтузиастов и любителей электроники, увлекающихся программированием Arduino. Компоненты, используемые в данном проекте, сравнительно дешево стоят, поэтому собрать его будет достаточно просто.

Как сделать спектроанализатор звука

Основные особенности данного анализатора спектра:

Необходимые компоненты

Значения сопротивлений резисторов не являются «строгими», вы можете варьировать их в небольших пределах по своему желанию. Но значения сопротивлений R1 и R2 (см. схему ниже) должны быть одинаковыми.

Общие принципы работы проекта

Главная цель проекта – показать спектр музыкального аудио сигнала. Для этого левый и правый каналы аудио сигнала смешиваются вместе и подаются на аналоговый контакт A0 платы Arduino. При необходимости вы можете использовать сплиттер чтобы подавать аудио сигнал одновременно и на анализатор спектра, и в другое какое-нибудь устройство, например, усилитель.

АЦП в данном проекте конфигурируются на использование внешнего опорного напряжения (reference voltage). В этом проекте в качестве опорного напряжения для АЦП используется стабилизированное напряжение 3.3v с платы Arduino. Поскольку аналоговый сигнал колеблется как выше, так и ниже нуля, мы должны использовать положительное напряжение смещения на входе АЦП – это необходимо для того чтобы АЦП не обрезал отрицательные циклы сигнала. То же самое стабилизированное напряжение разделяется с помощью двух резисторов R1 и R2 и затем подается на вход АЦП для формирования положительного напряжения смещения. С таким напряжением смещения на выходе АЦП будет значение 512 при отсутствии аудио сигнала на входе. В дальнейшем в коде программы это значение 512 вычитается чтобы получить реальные изменения входного сигнала.

«Сердцем» кода программы является библиотека ArduinoFFT – именно она выполняет быстрое преобразование Фурье (БПФ) и вычисляет спектр входного сигнала. Опытный образец данного проекта был сконфигурирован для формирования 64 отсчетов (сэмплов, samples) и выполнения быстрого преобразования Фурье над этими отсчетами. Библиотека ArduinoFFT может выполнять БПФ над числом отсчетов от 16 до 128 – это можно сконфигурировать в программе. Но для 128 отсчетов БПФ выполняется достаточно медленно, поэтому в нашем проекте мы решили ограничиться 128 отсчетами.

Как сделать спектроанализатор звука

В качестве средства отображения спектра в нашем проекте используется светодиодная матрица 32 столбца х 8 строк. Управлять подобной матрицей сравнительно просто с помощью библиотеки MD_MAX72xx, которую мы будем использовать в нашем проекте. С помощью этой библиотеки можно включить/выключить любое число светодиодов в столбце, который в данный момент времени используется в программе. Амплитуда каждого частотного канала (полосы) конвертируется в диапазон от 0 до 8 и в зависимости от этой амплитуды зажигается необходимое количество светодиодов в столбце, то есть чем больше амплитуда, тем больше светодиодов в столбце будут гореть.

В проекте доступны 5 режимов дисплея, которые заключаются в различных вариантах включения светодиодов в столбцах. Каждый из этих режимов вы при необходимости можете перепрограммировать самостоятельно. Для переключения режимов используется кнопка. С каждым нажатием кнопки происходит переход к следующему режиму, при нажатии кнопки на 5-м режиме снова происходит переход к 1-му режиму. Эта кнопка подключена к цифровому контакту платы Arduino и после каждого обновления экрана дисплея производится проверка ее нажатия.

Частотная характеристика

Частотная характеристика проектируемого анализатора спектра была проверена с помощью подачи на вход анализатора синусоидального колебания, сформированной генератором сигналов на одном из веб-сайтов. Было установлено, что частотная характеристика анализатора достигает частоты 18,6 кГц.

Как сделать спектроанализатор звука

Дополнительные детали

Подача входного сигнала на анализатор спектра

Существует несколько способов подачи аудио сигнала на рассматриваемый нами анализатор спектра. Первый способ – взять аудио сигнал с выхода LINE out вашей музыкальной системы/усилителя. Второй способ – взять аудио сигнал с выхода наушников или мобильного телефона.

На следующем рисунке показан пример соединения выхода LINE out усилителя/музыкальной системы с анализатором спектра.

Как сделать спектроанализатор звука

Далее на рисунке показан пример соединения выхода наушников/мобильной системы с анализатором спектра. Когда вы соедините кабель к выходу наушников вы уже не сможете услышать звук с них, поэтому в этом случае, если вы хотите и анализировать спектр сигнала, и слышать сам звук, вам необходимо будет использовать специальный разделитель.

Как сделать спектроанализатор звука

Работа схемы

Схема устройства представлена на следующем рисунке.

Источник

Анализатор-визуализатор спектра аудио сигнала на базе Arduino

Как сделать спектроанализатор звука

Как вы думаете, что делают девушки, когда собираются вместе? Идут по магазинам, фотографируются, ходят по салонам красоты? Да, так и есть, но так делают далеко не все. В данной статье пойдёт речь о том, как две девушки решили собрать радиоэлектронное устройство своими руками.

Почему именно анализатор-визуализатор спектра?

Разработка устройства

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

В качестве дисплея выбрали светодиодную матрицу 8х32. Можно было использоваться готовые led-матрицы 8х8 и собирать из них, но мы решили не отказывать себе в удовольствии посидеть вечерком с паяльником, и поэтому собирали дисплей сами из светодиодов.

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

Включение той или иной строки в столбце осуществляется с помощью открытия соответствующего ключа. Для уменьшения количества выходных пинов контроллера, выбор столбца происходит через дешифраторы (таким образом, мы можем сократить количество управляющих линий до 5).

В качестве интерфейса подключения к компьютеру (или другому устройству, способному передавать аудио сигнал) был выбран разъём TRS (mini-jack 3.5 mm).

Сборка устройства

Сборку устройства начинаем с того, что делаем макет лицевой панели устройства.

Как сделать спектроанализатор звука

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

Как сделать спектроанализатор звука

Как сделать спектроанализатор звука

Таким образом получаем готовую лицевую панель, на которой можно уже собирать дисплей.

Как сделать спектроанализатор звука

В качестве светодиодов для матрицы были использованы двухцветные (красный-зелёный) с общим катодом GNL-5019UEUGC. Перед началом сборки матрицы, руководствуясь правилом “лишний контроль не повредит” все светодиоды, а именно 270 шт. (брали с запасом на всякий случай), были проверены на работоспособность (для этого было собрано тестирующее устройство, включающее в себя разъём, резистор 200Ом и источник питания на 5В).

Как сделать спектроанализатор звука

Дальше разгибаем светодиоды следующим образом. Аноды красного и зеленого диодов отгибаем в одну сторону (вправо), катод отгибаем в другую сторону, при этом следим, чтобы катод был ниже чем аноды. И затем под 90° загибаем катод вниз.

Как сделать спектроанализатор звука

Сборку матрицы начинаем с правого нижнего угла, сборку производим по столбцам.

Как сделать спектроанализатор звука

Как сделать спектроанализатор звука

Вспоминая про правило “лишний контроль не повредит”, после одного-двух спаянных столбцов, проверяем работоспособность.

Как сделать спектроанализатор звука

Готовая матрица выглядит следующим образом.

Как сделать спектроанализатор звука

Как сделать спектроанализатор звука

По разработанной схеме паяем схему управления строками и столбцами, распаиваем шлейфы и место под Arduino.

Как сделать спектроанализатор звука

Было решено так же выводить не только амплитудно-частотны, но и фазо-частотный спектр, а также выбирать количества отсчетов для отображения (32,16,8,4). Для этого были добавлены 4 переключателя: один на выбор типа спектра, два на выбор количества отсчётов, и один на включение и выключение устройства.

Написание программы

В очередной раз руководствуемся нашим правилом и убеждаемся, что наш дисплей полностью в рабочем состоянии. Для этого пишем простую программу, которая полностью зажигает все светодиоды на дисплее. Естественно, по закону Мёрфи, нескольким светодиодам не хватало тока, и их необходимо было заменить.

Как сделать спектроанализатор звука

Удостоверившись, что всё работает, мы приступили к написанию основного программного кода. Он состоит из трёх частей: инициализация необходимых переменных и считывание данных, получение спектра сигнала при помощи быстрого преобразования Фурье, вывод полученного спектра с необходимым форматированием на дисплей.

Сборка конечного устройства

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

Как сделать спектроанализатор звука

Дело оставалось за малым, разметить отверстия под разъёмы, кабели и переключатели, а также вырезать две боковые панели из пластика.

Как сделать спектроанализатор звука

В итоге, собрав всё воедино, подключив устройство к компьютеру мы получили следующее:

Амплитудно-частотный спектр (32 отсчёта):

Как сделать спектроанализатор звука

Амплитудно-частотный спектр (16 отсчётов):

Как сделать спектроанализатор звука

Амплитудно-частотный спектр (8 отсчётов):

Как сделать спектроанализатор звука

Амплитудно-частотный спектр (4 отсчёта):

Как сделать спектроанализатор звука

Как сделать спектроанализатор звука

Как сделать спектроанализатор звука

Видео работы устройства

Для большей наглядности видео снималось в темноте. На видео устройство выводит амплитудно-частотный спектр, а затем на 7 секунде переключаем его в режим фазо-частотного спектра.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *