Резултат:

Вдъхновение:

Имаше множество източници на вдъхновение за този проект:

  • Придобийте опит в работата с електрически компоненти/окабеляване/микроконтролери
  • Разширете предишен проект, в който написах програма, за да накарам моите периферни устройства Razer Chroma да реагират на аудио изхода на моя компютър
  • Изградете страхотна декорация за моя апартамент

Приготвяме се да започнем:

От самото начало знаех, че искам да използвам дъска Arduino, за да бъда мозъкът на проекта, но не бях сигурен как искам да функционира целият проект. В съзнанието ми имаше два начина, по които бих могъл да постигна крайната си цел:

  1. Имате аудио вход на ниво линия в платката и анализирайте необработените аудио сигнали
  2. Използвайте микрофон, за да уловите промените в звука от високоговорител

Има компромиси, които трябва да се вземат предвид при тези подходи. Използването на директен аудио вход позволява визуализациите да бъдат по-последователни и точни. Микрофонът обаче би позволил много по-опростена схема и все още би дал задоволителен резултат.

В крайна сметка реших да използвам вход за микрофон. Купих два сензора за микрофон: ky-038 и MAX9814. В крайна сметка използвах MAX9814, защото беше много по-надежден при откриване на промени в аудиото.

части:

За да изградя този проект, купих:

  • Ардуино Уно
  • MAX9814
  • ALITOVE 16,4 фута WS2812B Индивидуално адресируема RGB LED лента
  • Преобразувател на захранващ адаптер ALITOVE 5V 10A AC към DC

Изчислих нуждите си от захранване по следния начин: 150 светодиода x 60 mA (максимален ток, който всеки светодиод може да черпи) = 9000 mA общ ток. Така че реших, че захранване от 10 ампера ще бъде достатъчно за този проект.

Електрически инсталации:

MAX9814 изисква малко работа по запояване, за да стане използваем. Тъй като нямах опит със запояване, бях малко притеснен да използвам този сензор, но ми отне не повече от 10 минути, за да се науча как да запоявам правилно. Въпреки че се страхувах от запояването, се радвам, че се принудих да се науча да запоявам, тъй като това е алхимията на ентусиаста на електрониката.

LED лентата, която закупих, дойде с 5 проводника — 2x5v, 2xGND, 1xData. Тези проводници бяха групирани в две групи: 1x5v, 1xGND, 1xData, които бяха нагънати в JST конектор (позволяващ свързване с обикновени джъмперни кабели) и захранваща група с останалите проводници. След като свалих корпуса от захранващата група, свързах тези два проводника към захранването.

Останалата част от окабеляването може да се види по-долу:

Игнорирайте компонента на батерията на диаграмата, няма част от фризинг за захранването, което използвах, така че използвах следващото най-добро нещо. По-долу можете да намерите действителна снимка на окончателната настройка на окабеляването. Едно нещо, което трябва да отбележа е, че от JST конектора прикачих и проводник, свързващ се към заземяващия щифт на Arduino.

Код:

Кодът за проекта е адаптиран от Music Reactive LED лампите на NerdForge, които могат да бъдат намерени тук. Начинът, по който работи визуализацията, е прост и работи по следния начин:

  • Всеки 20-ти светодиод е центърът
  • От центъра съседните светодиоди светят в зависимост от силата на звука на музиката
  • При по-слаб ритъм светодиодите избледняват бавно
  • По цялата лента има ефект на превъртане на дъгата

Действителният код може да бъде намерен тук. За да внедрите сами, предлагам да си поиграете с константите в горната част на кода и да видите как те влияят на получената визуализация.