Съдържание:

Аудио визуализатор с ретро LED лента: 4 стъпки (със снимки)
Аудио визуализатор с ретро LED лента: 4 стъпки (със снимки)

Видео: Аудио визуализатор с ретро LED лента: 4 стъпки (със снимки)

Видео: Аудио визуализатор с ретро LED лента: 4 стъпки (със снимки)
Видео: Котика ударило током, 10 т. Вольт 2024, Ноември
Anonim
Image
Image
Списък с части
Списък с части

Като музикант и студент по електротехника, обичам всеки проект, който пресича тези две области. Виждал съм някои „визуализатори за аудио“(тук, тук, тук и тук), но всеки от тях е пропуснал поне една от двете цели, които съм си поставил: професионално качество на изработка и сравнително голям дисплей (оскъден 8*8 LED матрицата тук не би била достатъчна!). С малко винтидж усещане и седнал на 40 "x 20", този аудио визуализатор постига и двете цели.

Предварително се извинявам за вертикалните снимки. Много от тях бяха взети за социални медии.

Стъпка 1: Списък на частите

Няколко от тези части вече лежах наоколо. Връзките са само за справка. Моля, не купувайте ненужно скъпи компоненти.

Електроника

  1. WS2811 60LEDS/m @ 5m, IP30 (неводоустойчив), адресируем - Те бяха по -евтини от WS2812 по онова време. Имате малко свобода тук, но се уверете, че размерите са правилни и че всъщност можете да говорите със светодиодите. Също така имайте предвид, че WS2811s са 12V, докато WS2812s са 5V.
  2. 9 x 3-пинови JST конектори + кутии
  3. Захранване DC 12V 20A (240W)-Първоначално планирах да направя 2 LED ленти и исках комплект от високоговорители, които ще ви издухат. Всяка светлинна лента е 90W в най-лошия сценарий (не съм измервал, за да потвърдя), което ми остави ~ 60W за високоговорители + усилвател. Опцията 15A така или иначе беше само с 4 долара по -малко.
  4. Захранващ кабел (3 зъба)
  5. Arduino Uno - имах R3, който лежа наоколо, така че го използвах. Може да успеете да намерите по -евтина опция от някой от фалшивите или друг доставчик.
  6. TRRS Breakout - За допълнителен вход
  7. L7805 5V регулатор - Всеки 5V регулатор, който приема 12V вход, ще работи.
  8. 330 nF, 100 nF кондензатори - на лист с данни L7805
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF кондензатори - за отклонение на аудио входа
  10. Стерео приемник - всеки ретро стерео приемник ще работи, стига да има aux вход (3,5 мм или RCA). Взех Panasonic RA6600 от craigslist за 15 долара. Препоръчвам да проверите за добронамереност, craigslist и други магазини за спестовност за подобни.*
  11. Високоговорители - не говорители на BT. Просто комплект високоговорители. Обърнете внимание какъв импеданс е съвместим с вашия приемник. Намерих комплект от 3 20W (= силни) високоговорители в Goodwill за $ 6 и това дойде с "централен" и два "предни" високоговорителя.
  12. Аудио адаптер Logitech BT - това устройство може да излъчва аудио към стерео високоговорителите и към вашата верига
  13. RCA мъжки към RCA мъжки кабел
  14. Aux кабел

Хардуер

  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. Чувствайте се свободни да експериментирате. Преди да си взема стерео, намерих усилвател и го закачих в моята дъска, а преди това пуснах аудио от лаптопа си към веригата за аудио анализ и едновременно натиснах „play“на телефона си, за да го чуя.

Аз съм голям вярващ в мярка два пъти, реже веднъж. Така че каквото и да правите, следвайте това ръководство и ще бъдете готови.

Стъпка 3: Схема + код

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

Кодът е достъпен в GitHub.

Макетна платка, запояване към перфорирана дъска или проектиране на собствена печатна платка. Каквото ви върши работа тук, направете го. Демото ми тук работи на макет, но когато изградя звуковата лента, ще прехвърля всичко на печатна платка. За да получите захранване от адаптера, отрежете женския край и отстранете черната изолация. Отстранете достатъчно от действителните кабели, за да ги завиете към адаптерите. Винаги внимавайте при работа с AC! Освен това, тук трябва да се отбележат само няколко неща.

  1. Друго нещо е да се уверите, че вашите наземни пътеки са добри. Имате нужда от заземяване от адаптера към Arduino към aux вход, който също ще се свърже към земята на приемника Logitech BT и от там земята на стерео. Ако някоя от тях е счупена или лоша връзка, ще получите много шумен аудио вход и следователно много шумен дисплей.
  2. Преместване на аудио входа Аудиото, възпроизвеждано чрез aux кабел, от вашия телефон или лаптоп или където и да е, ще възпроизвежда при -2,2 до +2,2V. Arduino може да чете само от 0 до +5V, така че трябва да отклоните аудио входа. Това може да се постигне ефективно с операционни усилватели, но ако консумацията на енергия не е проблем (може би сте закупили захранване от 240 W?), Това може да се постигне и с резистори и кондензатори. Стойностите, които избрах, бяха различни, защото нямах 10uF кондензатори под ръка. Можете да си поиграете със симулатора, за да видите дали това, което изберете, ще работи.
  3. Преобразувания на Фурие Всеки проект, който използва преобразувания на Фурие, ще има фонов раздел, който ще ги обсъжда. Ако вече имате опит, страхотно! Ако не, всичко, което трябва да разберете, е, че те правят моментна снимка на сигнал и връщат информация за това какви честоти присъстват в този сигнал в този момент от времето. Така че, ако вземете преобразуването на Фурие на sin (440 (2*pi*t)), това ще ви каже, че във вашия сигнал присъства честота 440Hz. Ако сте взели преобразуването на Фурие от 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)), това ще ви каже, че присъстват и 440Hz и 2000Hz сигнал, и относителните степени, в които те присъстват. Той може да направи това за всеки сигнал с произволен брой компонентни функции. Тъй като цялото аудио някога е просто сума от синусоиди, можем да вземем преобразуването на Фурие на куп снимки и да видим какво всъщност се случва. Ще видите в кода, че ние също прилагаме прозорец към нашия сигнал, преди да вземем Фурие трансформирайте. Повече за това може да се намери тук, но кратко обяснение е, че сигналът, който всъщност даваме в крайна сметка, дава някаква гадна трансформация, а прозорците го поправят за нас. Вашият код няма да се счупи, ако не ги използвате, но дисплеят няма да изглежда толкова чист. Може да има по -добри алгоритми (YAAPT например), но следвайки принципите на KISS, избрах да използвам какво вече беше на разположение, което е няколко добре написани библиотеки на Arduino за бързата трансформация на Фурие или FFT.
  4. Може ли Arduino наистина да обработи всичко в реално време? За да се появи всичко в реално време, Arduino трябва да вземе 128 проби, да обработи този FFT, да манипулира стойностите за дисплея и да актуализира дисплея много бързо. Ако искате точност на 1/16 нота при 150 удара в минута (близо до темпото на горния край на повечето поп песни), ще трябва да обработите всичко в 100 ms. Освен това човешкото око може да вижда при 30 кадъра в секунда, което съответства на дължини на рамката от 30 ms. Тази публикация в блога не ми даде най -голямо доверие, но реших да се уверя сам дали Arduino ще издържи. След моя собствен бенчмаркинг бях много горд с моя R3. Фазата на изчисление беше далеч ограничаващият фактор, но успях да обработя 128 дълъг FFT от UINT16s само за 70 ms. Това беше в рамките на аудио допустимите отклонения, но над два пъти над визуалното ограничение. При по -нататъшни изследвания открих Arduino FHT, който се възползва от симетрията на FFT и изчислява само реалните стойности. С други думи, това е около 2 пъти по -бързо. И разбира се, това доведе цялата скорост на цикъла до ~ 30 ms. Една друга забележка тук за разделителната способност на дисплея. Дължина N FFT, взета при Fs Hz, връща N бина, където k -тата бин отговаря на k * Fs/N Hz. Arduino ADC, който чете аудио входа и взема проби, обикновено работи на ~ 9,6 kHz. FFT обаче може да връща информация само за честоти до 1/2 * Fs. Хората могат да чуват до 20kHz, така че в идеалния случай бихме искали да направим проба при> 40kHz. ADC може да бъде хакнат, за да работи малко по -бързо, но никъде не наблизо. Най -добрият резултат, който видях, без да губя стабилност, беше при 14kHz ADC. Освен това най -големият БПФ, който можех да обработя, за да получа все още ефект в реално време, беше N = 128. Това означава, че всеки контейнер представлява ~ 109Hz, което е добре при по -високи честоти, но лошо в долния край. Един добър визуализатор се опитва да запази октава за всеки бар, което съответства на разделения при [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz. 109Hz означава, че първите 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. Нарежете LED лентата на 30-LED секции (само всеки комплект от 3 светодиода е адресируем). Вероятно ще трябва да разварите няколко от връзките. Поставете тези ленти по следите. Едната страна трябва да седи на едно ниво, а другата трябва да има малко място за приемника на JST, който ще седи на едно ниво. За съжаление не получих снимка на това, но вижте приложената диаграма. Маркирайте дължината тук, но все още не изрязвайте нищо.
  6. Измерете ширината на всяка ламел. С това и дължината от стъпка 7, лазерът наряза акрила на 10 -те необходими правоъгълника. По -добре е да е малко дълго, отколкото леко късо. Ако се изгори, избършете го с изопропил.
  7. Уверете се, че всяка акрилна ламел седи на същата дължина, която сте маркирали в стъпка 5, след което изрежете ламела до тази дължина.
  8. Сега имате нужда от две мостови части, за да прикрепите акрила. Това позволява лесна поддръжка на светлинни ленти, ако възникне нещо. Тези парчета трябва да са приблизително [вашата ширина] - 2 * 1/8 "дълги с 1/2" квадратни лица, но трябва да прилягат малко стегнато. С тези парчета здраво поставени и изравнени с предната страна на ламелите, пробийте дупки през центъра на всеки мост от външната страна на ламелите. Правете всичко възможно всяка тренировка да бъде равномерна. Не дръжте мостовете завинтени, но се уверете, че могат да бъдат. Внимавайте да не забиете винта твърде далеч и да не разделите дървесината.
  9. В този момент оцветете ламелите и нанесете всяко покритие.
  10. Сега завийте мостовете. Уверете се, че са седнали! Ако не, ще трябва да добавите някакъв вид подложка. Нанесете горилско лепило (за предпочитане) или горещо лепило (което може да се удвои като подложка) върху мостовете и прикрепете акрила. Не нанасяйте никакво лепило по самата ламел.
  11. Запоявайте JST съдовете от едната страна на всички, с изключение на една LED лента. Поставете ги всички в същия край, както е дадено от маркираните стрелки. Запоявайте проводниците на JST щепселите към другите краища. Може да се наложи да отстраните повече проводници на всеки конектор. Уверете се, че връзките ще бъдат правилни, когато сте включени! Лепилото на гърба на светодиодите е ужасно, така че не му се доверявайте. Поставете светодиодите по централната пътека и ги залепете с лепило за горила, като обърнете внимание на посочената посока на лентите. Не забравяйте, че изкривявате всичко.
  12. На първата летва запояйте достатъчно дълги проводници, за да получите захранване + маса от адаптера и сигнала от Arduino.
  13. Завийте ламелите и мостовете обратно надолу. Прикрепете командните ленти към гърба (стил велкро, 2 средни отгоре и отдолу или 1 голяма в центъра). Направете всички необходими връзки и висете на стената на разстояние около 3 инча. Насладете се на плодовете на вашия труд.

Препоръчано: