Ручнаяя мастерская

Графический анализатор звука на 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 мм.
— Ножовка по металлу
— Термоклеевой пистолет
— Набор юного «пайщика» (паяльник, припой, канифоль)
Шаг 1 Собираем матрицу WS2812.
Итак, начнем. Для основы возьмем фанеру толщиной 3 мм, подойдёт и 4 мм. Шестимиллиметровая будет уже слишком тяжелая. Из этой фанеры вырезаем квадрат 540 х 540 мм.
Графический анализатор звука на Arduino
Теперь разлинуем нашу фанерку, чтобы приклеить ленту ровно. Отступаем от верха 17 мм и проводим первую линию. Затем проводим линии через каждые 33 мм. Вдоль этих линий будем клеить ленту. От левого и правого краев отступаем 19 мм и проводим перпендикулярные линии, эти линии будут указывать на положение первого и последнего в линии светодиода.
Графический анализатор звука на Arduino
Для этой матрицы нам будут нужны адресные светодиоды WS2812. Я не просто так каждый раз, когда речь идет о WS2812, уточняю что они адресные. Есть люди, желающие сэкономить, и покупающие обычную ленту с RGB светодиодами. На такой ленте матрицу не сделаешь. Лента бывает разной плотности. Плотности измеряется в количестве светодиодов на метр ленты. Они бывают 30, 60, 144 светодиодов на метр. Для этой матрицы нам нужна лента плотность 30 светодиодов на метр. Матрица будет размером 16 х 16, то есть 256 светодиодов всего. Ленты надо купить 9 м, это получится 270 светодиодов, немного останется, но сомневаюсь, что вам продадут ленту ровно 256 светодиодов. Разрезаем ленту на отрезки по 16 светодиодов. Обратите внимание, у ленты есть направление. Контакт Din указывает на вход сигнала, Do – соответственно выход. Клеим первый отрезок ровно по первой линии, край первого светодиода должен совпадать с перпендикулярной линией. Если с первого раза не получится приклеить ровно, ленту можно аккуратно отодрать. В таком случае для приклеивания во второй раз, необходимо наклеить на ленту канцелярский двусторонний скотч, толщиной 9 мм. Второй отрезок клеим в обратном направлении. И так далее. В конечном итоге, если идти по направлению сигнала (от Din к Do) у вас должен получиться зигзаг. Приклеив все 16 полос в зигзаге образном порядке, можно приступить к припаиванию проводов. Контакты питания соединяем параллельно.
Графический анализатор звука на Arduino
Лучше всего это делать в начала полос, но не с самого края, чтобы проще было припаивать сигнальный провод. Сигнальный провод припаиваем, соединяя полоски в одну ленту. То есть от Do первой полосы к Din второй, от Do второй к Din третьей и так далее.
Графический анализатор звука на Arduino
К первой полосе, со стороны контакта Din, припаиваем все три провода, лучше взять с запасов. Место пайки этих провод лучше зафиксировать термоклеем, чтобы не отодрать провода в случае неожиданностей.
Графический анализатор звука на Arduino
Переходим к самому интересному. Нам нужно накрыть светодиоды, чтобы получить нормальный внешний вид, и рассеивать яркий свет светодиодов. Здесь нам понадобится лист пластика размером 540 х 540 мм. Толщина пластика 2 — 5 мм. Пластик должен быть матовый или, как его иногда называют, «молочный». Такой пластик можно купить. А можно поступить как я. Найти не рабочий ЖК – телевизор или монитор. Разобрав матрицу одного из таких устройств, можно добыть из него рассеиватель или светофильтр
Графический анализатор звука на Arduino
А также из такой матрицы можно достать пластик, подходящий для нашей матрицы
Графический анализатор звука на Arduino
При резке пластика, не используйте электролобзик. Так как при резке электролобзик, пластик будет сильно греться и плавиться. И куски пластика, налипшего на полотно для резки, будут ломать заготовку. Резать надо аккуратно, медленно, ручной ножовкой по металлу, так как на такой ножовке, мелкие зубцы. Накрываем светодиоды, вначале светофильтром.
Графический анализатор звука на Arduino
Сверху накрываем вырезанным пластиком.
Графический анализатор звука на Arduino
По краям, нашей почти готовой матрицы, надеваем стартовый профиль для ПВХ панелей толщиной 10 мм. Такой профиль продается в строительных магазинах. Провода от матрицы выводим через ближайший к проводам угол.
Графический анализатор звука на Arduino
Шаг 2 Подготовка питания.
Светодиодная лента WS2812 очень прожорлива. Один такой светодиод при максимальной яркости и включенных всех трех цветах потребляет 0,06 А. Воспользуемся калькулятором. 256 х 0,06 = 15,36 А. Это по максимуму. В действительности максимальная яркость очень режет глаза, я в скетче ставлю яркость 15 (при диапазоне 0 – 255) и этого достаточно. Все три цвета вместе дают просто белое свечение. Поэтому тоже редко используется. Лента питается от 5 В. Я рекомендую блок питания не менее 3 А, на 5 вольт соответственно. Как минимум такой
Графический анализатор звука на Arduino
Если вы хотите использовать матрицу на максиму яркости или есть планы на изменение скетча, лучше взять блок питания с запасом. Я рекомендую использовать старый, но рабочий блок питания от стационарного компьютера. У него есть все необходимые напряжения, да и мощности хватит
Графический анализатор звука на Arduino
Нам надо лишь его немного переделать. Замыкаем зеленый провод (PC_ON) на землю GND (COM). Это нужно для включения блока питания. Можно вывести удобную кнопку, чтобы каждый раз не замыкать проводком. Фиолетовый провод- это дежурные 5 В (+5VSB), к нему нельзя подключаться, так сила тока там слишком мала. Подключаться надо к красным проводам (+5VDC). Если хотите получать и 12 B, подключайтесь к желтым проводам (+12VDC или 12V1 DC).
Графический анализатор звука на Arduino
Также лучше сразу вывести нужные провода в одну колодку, для быстрого подключения.
Графический анализатор звука на Arduino
Шаг 3 Подготовка Arduino и прочей электрики.
Берем нашу Arduino. Нам подойдет любая версия. Я буду все делать на Arduino Nano. Нам необходимо подавать на Arduino ауди сигнал. Для этого будем разделять источник сигнала на два. Допустим мы будем брать звук от компьютера. Чтобы была возможность и прослушивать звук через колонки и анализатор работал, купим в ближайшем радиомагазине тройник стереоджека.
Графический анализатор звука на Arduino
Тройник вставляем в компьютер, один конец подключаем к колонкам, второй к Arduino. Собираем все по схеме.
Графический анализатор звука на 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.

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

Присоединяйтесь!

Не стесняйся, общайся. Мы любим встречать интересных людей и заводить новых друзей.