Оглавление:

Аудиовизуализатор со светодиодной лентой в стиле ретро: 4 шага (с изображениями)
Аудиовизуализатор со светодиодной лентой в стиле ретро: 4 шага (с изображениями)

Видео: Аудиовизуализатор со светодиодной лентой в стиле ретро: 4 шага (с изображениями)

Видео: Аудиовизуализатор со светодиодной лентой в стиле ретро: 4 шага (с изображениями)
Видео: RGB светодиодный аудио-визуализатор с дисплеем спектра музыки из набора «сделай сам» 2024, Июль
Anonim
Image
Image
Список деталей
Список деталей

Как музыкант и студент-электрик, я люблю любой проект, который пересекает эти две области. Я видел несколько самодельных аудиовизуализаторов (здесь, здесь, здесь и здесь), но каждый из них упустил по крайней мере одну из двух целей, которые я поставил перед собой: профессиональное качество сборки и относительно большой дисплей (слабый 8 * 8). Светодиодной матрицы тут бы не хватило!). Этот аудиовизуализатор с некоторым винтажным чутьем и размером 40 "x 20" выполняет обе эти цели.

Заранее извиняюсь за вертикальные фото. Многие из них были взяты для соцсетей.

Шаг 1: Список деталей

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

Электроника

  1. WS2811 60 светодиодов / м на расстоянии 5 м, IP30 (непромокаемый), адресный - в то время они были дешевле, чем WS2812. У вас есть некоторая свобода действий, но убедитесь, что размеры правильные и что вы действительно можете разговаривать со светодиодами. Также обратите внимание, что WS2811 на 12 В, а WS2812 на 5 В.
  2. 9 x 3-контактных разъемов JST + розетки
  3. Источник питания постоянного тока 12 В, 20 А (240 Вт). Первоначально я планировал сделать 2 светодиодные ленты и хотел создать комплект динамиков, способный поразить ваш дом. Каждая световая полоса составляет 90 Вт в худшем случае (я не измерил, чтобы подтвердить), что оставило мне ~ 60 Вт для динамиков + усилитель. Вариант 15А в любом случае стоил всего на 4 доллара меньше.
  4. Шнур питания (3 штыря)
  5. Arduino Uno - у меня валялся R3, поэтому я его и использовал. Возможно, вы сможете найти более дешевый вариант у одного из подделок или у другого продавца.
  6. TRRS Breakout - для входа aux
  7. Регулятор L7805 5V - любой регулятор 5V, который принимает вход 12V, будет работать.
  8. Конденсаторы 330 нФ, 100 нФ - согласно листу данных L7805
  9. 2 конденсатора по 10 кР, 2 по 1 кР, 2 по 100 нФ - для смещения аудиовхода
  10. Стереоресивер - любой винтажный стереоресивер будет работать, если у него есть дополнительный вход (3,5 мм или RCA). Я купил Panasonic RA6600 на Craigslist за 15 долларов. Я рекомендую проверить Goodwill, Craigslist и другие благотворительные магазины на предмет аналогичных. *
  11. Колонки - не колонки BT. Просто набор динамиков. Обратите внимание на то, какой импеданс совместим с вашим приемником. Я нашел комплект из 3 динамиков мощностью 20 Вт (= громкие) в Goodwill за 6 долларов, и он шел с «центральным» и двумя «передними» динамиками.
  12. Аудиоадаптер Logitech BT - это устройство может передавать аудиосигнал на стереодинамики и на вашу схему.
  13. Штекер RCA - штекер RCA
  14. Дополнительный шнур

Аппаратное обеспечение

  1. 2x6 (8 футов) - без давления. Должно быть ~ 6 долларов или меньше в HD или Lowe's
  2. Акрил с пропусканием света 40% - я заказал 18 дюймов x 24 дюйма x 1/8 дюйма, и технически он был 17,75 x 23,5 дюйма. Храните его в упаковке, когда вы переходите к лазерной резке.
  3. Морилка для дерева - вам понадобится только небольшая банка. Я использовала красное дерево Minwax, и оно получилось очень красивым. Однозначно рекомендую темный тон. Я изначально пробовал провинциальный, и это выглядело не так хорошо.
  4. Лак. Прежде всего, посмотрите это видео Стива Рэмси и решите для себя, что лучше всего подходит. У меня есть баллончик с полуглянцевым покрытием (глянец отсутствовал), и, честно говоря, это не так уж и важно. Но я также сделал только один слой из-за нехватки времени.
  5. Шурупы по дереву 40 x 1/2 дюйма - у меня в наличии была круглая головка, но я рекомендую использовать плоскую головку, если вы можете. Я не думаю, что это повлияет на качество сборки, но не стесняйтесь сначала спросить кого-нибудь, кто более знаком с деревообработкой.
  6. Древесный лом, клей гориллы, горячий клей, припой, проволока и полоски управления (на липучке, 20 средних или 10 больших)

* Я планирую создать звуковую панель, чтобы сделать этот проект полностью «с нуля», который заменит 9-13 выше. Я надеюсь обновить эту инструкцию к концу лета.

Шаг 2: прототипирование

Прототипирование
Прототипирование

Этот раздел не нужно заполнять, но я хочу показать, как проект выглядел в процессе его реализации.

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

У меня сработала установка 10x10, но вы можете предпочесть 8x12 или 7x14. Не стесняйтесь экспериментировать. Прежде чем у меня появилась стереосистема, я нашел усилитель и подключил его к своей макетной плате, а до этого я воспроизводил звук со своего ноутбука на схему для анализа звука и одновременно нажимал кнопку воспроизведения на моем телефоне, чтобы услышать его.

Я очень верю в то, что дважды отмерьте, один раз отрежьте. Итак, что бы вы ни делали, следуйте этому руководству, и все будет готово.

Шаг 3: схема + код

Схема + Код
Схема + Код
Схема + Код
Схема + Код
Схема + Код
Схема + Код

Код доступен на GitHub.

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

  1. Наземные пути Еще одна вещь - убедиться, что ваши наземные пути хороши. Вам понадобится заземление от адаптера к Arduino и дополнительному входу, который также будет подключаться к земле на приемнике Logitech BT, а оттуда - к заземлению стереосистемы. Если какой-либо из них - обрыв или плохое соединение, вы получите очень шумный аудиовход и, следовательно, очень шумный дисплей.
  2. Смещение аудиовхода Аудио, воспроизводимое через дополнительный шнур, с вашего телефона, ноутбука или другого места, будет воспроизводиться при напряжении от -2,2 до + 2,2 В. Arduino может считывать только значения от 0 до +5 В, поэтому вам нужно смещать аудиовход. Этого можно эффективно добиться с помощью операционных усилителей, но если потребляемая мощность не является проблемой (возможно, вы купили блок питания на 240 Вт?), Это также можно сделать с помощью резисторов и конденсаторов. Значения, которые я выбрал, были другими, потому что у меня не было под рукой конденсаторов на 10 мкФ. Вы можете поиграть с симулятором, чтобы увидеть, подойдет ли то, что вы выберете.
  3. Преобразования Фурье Любой проект, использующий преобразования Фурье, будет иметь раздел, посвященный их обсуждению. Если у вас уже есть опыт - отлично! Если нет, все, что вам нужно понять, это то, что они делают снимок сигнала и возвращают информацию о том, какие частоты присутствуют в этом сигнале в этот момент времени. Итак, если вы взяли преобразование Фурье греха (440 (2 * pi * t)), оно сообщило бы вам, что в вашем сигнале присутствует частота 440 Гц. Если вы возьмете преобразование Фурье 7 * sin (440 (2 * pi * t)) + 5 * sin (2000 (2 * pi * t)), оно скажет вам, что присутствует сигнал как 440 Гц, так и 2000 Гц, и относительные степени их присутствия. Он может сделать это для любого сигнала с любым количеством функций компонентов. Поскольку все звуки представляют собой просто сумму синусоид, мы можем взять преобразование Фурье для набора снимков и посмотреть, что происходит на самом деле. В коде вы увидите, что мы также применяем окно к нашему сигналу, прежде чем принимать Фурье. преобразовать. Подробнее об этом можно найти здесь, но краткое объяснение состоит в том, что сигнал, который мы фактически передаем преобразованию, отстой, и окна исправляют это для нас. Ваш код не сломается, если вы их не используете, но дисплей не будет выглядеть таким чистым. Могут быть доступны лучшие алгоритмы (например, YAAPT), но, следуя принципам KISS, я решил использовать то, что уже был доступен, что представляет собой несколько хорошо написанных библиотек Arduino для быстрого преобразования Фурье или БПФ.
  4. Может ли Arduino действительно обрабатывать все в реальном времени? Чтобы все отображалось в реальном времени, Arduino необходимо захватить 128 сэмплов, обработать это БПФ, манипулировать значениями для дисплея и очень быстро обновить дисплей. Если вам нужна точность 1/16 ноты при 150 ударов в минуту (близкий к верхнему пределу темпа большинства популярных песен), вам нужно будет обработать все за 100 мсек. Кроме того, человеческий глаз может видеть со скоростью 30 кадров в секунду, что соответствует длине кадра 30 мсек. Этот пост в блоге не вселил в меня особой уверенности, но я решил лично убедиться, выдержит ли Arduino. После моего собственного тестирования я очень гордился своим R3. Фаза вычислений была, безусловно, ограничивающим фактором, но я смог обработать БПФ длиной 128 UINT16 всего за 70 мсек. Это было в пределах допусков по звуку, но вдвое превышало визуальные ограничения. В ходе дальнейшего исследования я обнаружил, что Arduino FHT использует симметрию БПФ и вычисляет только реальные значения. Другими словами, это примерно в 2 раза быстрее. И, конечно же, он увеличил скорость всего цикла до ~ 30 мсек. Еще одно замечание о разрешении экрана. Длина N FFT, выбранная с частотой Fs Гц, возвращает N элементов разрешения, где k-й элемент соответствует k * Fs / N Гц. АЦП Arduino, который считывает аудиовход и берет образцы, обычно работает на частоте ~ 9,6 кГц. Однако БПФ может возвращать информацию только о частотах до 1/2 * Fs. Люди могут слышать до 20 кГц, поэтому в идеале мы хотели бы сэмплировать на частоте> 40 кГц. АЦП можно взломать, чтобы он работал немного быстрее, но это далеко не так. Лучший результат, который я видел без потери стабильности, был на АЦП 14 кГц. Кроме того, самое большое БПФ, которое я смог обработать, чтобы получить эффект в реальном времени, было N = 128. Это означает, что каждая ячейка представляет ~ 109 Гц, что нормально для высоких частот, но плохо для низких частот. Хороший визуализатор пытается зарезервировать октаву для каждого такта, что соответствует разделениям на [16,35, 32,70, 65,41, 130,81, 261,63, 523,25, 1046,50, 2093,00, 4186,01] Гц. 109 Гц означает, что первые 2,5 октавы находятся в одном интервале. Я все еще смог получить хороший визуальный эффект, частично взяв среднее значение для каждого ведра, где ведро - это группа ящиков между двумя этими границами. Я надеюсь, что это не сбивает с толку, и сам код должен прояснить, что на самом деле происходит, но не стесняйтесь спрашивать ниже, если это не имеет смысла.

Шаг 4: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Как я уже говорил ранее, я хотел что-то с профессиональным качеством сборки. Изначально я начал склеивать деревянные планки, но мой друг (и опытный инженер-механик) предложил другой подход. Обратите внимание, что 2x6 на самом деле составляет 1,5 x 5 дюймов. И, пожалуйста, будьте осторожны при работе с любым из перечисленных ниже механизмов.

  1. Возьмите 2x6x8 и при необходимости отшлифуйте. Разрежьте его на секции размером 2 x 6 x 22 дюйма. Это даст вам две планки, которые можно «сжечь», если вы напортачите.
  2. Возьмите каждую 22-дюймовую секцию и проденьте ее через настольную пилу, чтобы получились рейки размером 1,5 x ~ 1,6 x 22 дюйма. Последнюю треть может быть сложно разрезать на настольной пиле, поэтому вы можете перейти на ленточную пилу. Просто убедитесь, что все как можно прямее. Кроме того, 1,6 дюйма является ориентировочным и может увеличиваться до 1,75 дюйма. Вот какими были мои фигуры, но пока они все равны друг другу, это не имеет большого значения. Ограничивающим фактором является акрил толщиной 18 дюймов.
  3. На концах деталей отметьте U-образную форму, которая составляет 1/8 дюйма с каждой стороны и немного больше 3/4 дюйма в глубину. ПРИМЕЧАНИЕ. Если вы используете другой акрил, глубина изменится. При <3/4 дюйма мой акрил вообще не рассеивает свет. При чуть большем он рассеивает полностью. Вы хотите избежать любой "бусинки". Я нашел этот пост на Hackaday хорошим справочным материалом, но получение идеального рассеивания - это очень сложно!
  4. С помощью настольного фрезерного станка вырежьте эту среднюю букву U по всей планке. 22 дюйма длиннее, чем вам нужно, поэтому не беспокойтесь о сколах на концах, если вы это сделаете. Маршрутизаторы могут быть сложными, но выберите немного шире, чем половина ширины U, и будьте осторожны, обрезая более 1 / 8 дюймов материала за раз. Повторение: не пытайтесь сделать все за 2 прохода. Вы повредите дерево и, скорее всего, поранитесь. Работайте с вращением фрезы на разрезах 1-4 и работайте против него на 5-8. Это гарантирует, что у вас будет лучший контроль над крутящим моментом маршрутизатора.
  5. Разрежьте светодиодную ленту на секции по 30 светодиодов (адресуется только каждый набор из 3 светодиодов). Вероятно, вам придется отключить несколько соединений. Положите эти полоски вдоль рельсов. Одна сторона должна располагаться заподлицо, а с другой должно быть немного места для розетки JST, которая будет установлена заподлицо. Я, к сожалению, не понял этого, но вижу прилагаемую диаграмму. Отметьте здесь длину, но пока ничего не сокращайте.
  6. Измерьте ширину каждой планки. Имея это значение и длину, указанную в шаге 7, разрежьте акрил лазером на 10 необходимых прямоугольников. Лучше быть немного длинным, чем немного коротким. Если он загорелся, протрите его изопропилом.
  7. Убедитесь, что каждая акриловая планка имеет ту же длину, что и на шаге 5, затем обрежьте планку до этой длины.
  8. Теперь вам понадобятся две части моста, чтобы прикрепить акрил. Это позволяет упростить обслуживание световых полос в случае возникновения каких-либо проблем. Эти части должны быть примерно [вашей ширины] - 2 * 1/8 дюйма в длину с квадратными гранями 1/2 дюйма, но они должны быть немного плотно прилегающими. Удерживая эти детали на месте и заподлицо с передней стороной планок, просверлите отверстия в центре каждой перемычки с внешней стороны планок. Постарайтесь сделать каждое упражнение ровным. Не оставляйте мосты ввинченными, но убедитесь, что это можно сделать. Будьте осторожны, чтобы не закрутить винт слишком далеко и не расколоть дерево.
  9. На этом этапе окрасьте рейки и нанесите любую отделку.
  10. Теперь прикрутите мосты. Убедитесь, что они сидят на одном уровне! Если нет, вам нужно будет добавить какую-нибудь прокладку. Нанесите клей гориллы (предпочтительно) или горячий клей (который можно использовать как прокладку) на мосты и прикрепите акрил. Не наносите клей вдоль самой планки.
  11. Припаяйте розетки JST к одной стороне всех светодиодных лент, кроме одной. Поместите их все на один конец, как указано отмеченными стрелками. Припаяйте провода штекеров JST к другим концам. Возможно, вам придется зачистить больше проводов на каждом разъеме. Убедитесь, что соединения будут правильными при подключении! Клей на задней стороне светодиодов ужасный, так что не верьте ему. Положите светодиоды на центральную дорожку и приклейте их клеем гориллы, обращая внимание на направление, указанное на полосах. Помните, что вы все это обманываете.
  12. К первой планке припаяйте достаточно длинные провода, чтобы получить питание + заземление от адаптера и сигнал от Arduino.
  13. Снова прикрутите планки и перемычки. Прикрепите полоски управления к спине (на липучке, 2 средних вверху и внизу или 1 большая в центре). Сделайте все необходимые соединения и повесьте на стену на расстоянии ~ 3 дюйма друг от друга. Наслаждайтесь плодами своего труда.

Рекомендуемые: