Spisu treści:

Wizualizator dźwięku w stylu retro LED: 4 kroki (ze zdjęciami)
Wizualizator dźwięku w stylu retro LED: 4 kroki (ze zdjęciami)

Wideo: Wizualizator dźwięku w stylu retro LED: 4 kroki (ze zdjęciami)

Wideo: Wizualizator dźwięku w stylu retro LED: 4 kroki (ze zdjęciami)
Wideo: ❌BŁĘDY W ŁAZIENCE. JAK URZĄDZIĆ ŁAZIENKĘ. BŁĘDY W URZĄDZANIU ŁAZIENKI I WNĘTRZ. TOP 15 2024, Listopad
Anonim
Image
Image
Lista części
Lista części

Jako muzyk i student elektrotechniki uwielbiam każdy projekt, który przecina te dwie dziedziny. Widziałem kilka wizualizerów audio DIY (tutaj, tutaj, tutaj i tutaj), ale każdy z nich przegapił co najmniej jeden z dwóch celów, które sobie wyznaczyłem: profesjonalną jakość wykonania i stosunkowo duży wyświetlacz (miękki 8*8 Tu nie wystarczyłaby matryca LED!). Ten wizualizator audio z pewnym klasycznym stylem i rozmiarem 40" x 20" osiąga oba te cele.

Z góry przepraszam za zdjęcia w pionie. Wiele z nich zostało zabranych do mediów społecznościowych.

Krok 1: Lista części

Miałem już kilka takich części. Linki są wyłącznie w celach informacyjnych. Proszę nie kupować niepotrzebnie drogich komponentów.

Elektronika

  1. WS2811 60LEDS/m @ 5m, IP30 (niewodoodporny), adresowalny - były one wówczas tańsze niż WS2812. Masz tu pewną swobodę, ale upewnij się, że wymiary są prawidłowe i że możesz rozmawiać z diodami LED. Należy również pamiętać, że WS2811 mają napięcie 12 V, podczas gdy WS2812 mają napięcie 5 V.
  2. 9 x 3-pinowe złącza JST + gniazda
  3. Zasilacz DC 12V 20A (240W) - początkowo planowałem zrobić 2 paski LED i chciałem zestaw głośników zdmuchujących twój dom. Każda listwa świetlna ma w najgorszym przypadku 90W (nie mierzyłem, żeby to potwierdzić), co dało mi ~60W na głośniki + wzmacniacz. Opcja 15A i tak była tylko o 4 dolary mniej.
  4. Przewód zasilający (3 bolce)
  5. Arduino Uno - miałem R3, więc go użyłem. Możesz znaleźć tańszą opcję od jednego z podróbek lub innego dostawcy.
  6. TRRS Breakout - dla wejścia aux
  7. Regulator L7805 5V - Działa każdy regulator 5V, który akceptuje wejście 12V.
  8. Kondensatory 330 nF, 100 nF - zgodnie z arkuszem danych L7805
  9. Kondensatory 2 x 10kR, 2 x 1kR, 2 x 100 nF - do polaryzacji wejścia audio
  10. Odbiornik stereofoniczny - każdy stary odbiornik stereofoniczny będzie działał tak długo, jak ma wejście aux (3,5 mm lub RCA). Kupiłem Panasonic RA6600 z Craigslist za 15 dolarów. Polecam sprawdzić Goodwill, Craigslist i inne sklepy z używanymi rzeczami w poszukiwaniu podobnych.*
  11. Głośniki - nie głośniki BT. Tylko zestaw głośników. Zwróć uwagę na to, jaka impedancja jest kompatybilna z twoim odbiornikiem. Znalazłem zestaw 3 głośników 20 W (= głośnych) w Goodwill za 6 USD, które były dostarczane z głośnikami „środkowym” i dwoma „przednimi”.
  12. Logitech BT Audio Adapter - to urządzenie może przesyłać dźwięk do głośników stereo i do obwodu
  13. RCA męski na męski kabel RCA
  14. Przewód pomocniczy

Sprzęt komputerowy

  1. 2x6 (8 stóp) - nie poddany obróbce ciśnieniowej. Powinno być ~6 USD lub mniej w HD lub Lowe's
  2. 40% Akryl przepuszczający światło - zamówiłem 18 "x 24" x 1/8" i technicznie miał 17,75 "x 23,5". Trzymaj go w opakowaniu, gdy idziesz do cięcia laserowego.
  3. Wood Stain - Potrzebujesz tylko małej puszki. Użyłem czerwonego mahoniu Minwax i wyszedł bardzo ładnie. Zdecydowanie polecam ciemny ton. Początkowo próbowałem prowincjonalnego i nie wyglądało to tak ładnie.
  4. Lakier - Po pierwsze, obejrzyj ten film Steve'a Ramseya i sam zdecyduj, co działa najlepiej. Dostałem puszkę ze sprayem z półpołyskiem (brak połysku) i szczerze mówiąc, nie za dużo. Ale zrobiłem też tylko jedną warstwę ze względu na ograniczenia czasowe.
  5. Wkręty do drewna 40 x 1/2" - Miałem dostęp do okrągłego łba, ale polecam użyć płaskiego blatu, jeśli możesz. Nie sądzę, aby wpłynęło to na jakość wykonania, ale możesz najpierw zapytać kogoś bardziej zaznajomionego z obróbką drewna.
  6. Złom drewna, klej goryl, klej na gorąco, lut, drut i paski poleceń (na rzep, 20 średnich lub 10 dużych)

* Planuję zbudować soundbar, aby ten projekt był całkowicie „od zera”, co zastąpi 9-13 powyżej. Mam nadzieję, że do końca lata zaktualizuję tę instrukcję.

Krok 2: Prototypowanie

Prototypowanie
Prototypowanie

Ta sekcja nie jest czymś, co musisz ukończyć, ale chcę pokazać, jak wyglądał projekt w trakcie jego realizacji.

Tutaj przykleiłem diody LED we wzór węża i eksperymentowałem z rozpraszaniem światła przez worek na śmieci nałożony na siebie (bardzo polecam to jako alternatywę dla akrylu, jeśli próbujesz obniżyć koszty. Chociaż będziesz musiał to zrobić dołącz go w inny sposób).

Konfiguracja 10x10 zadziałała dla mnie, ale możesz preferować 8x12 lub 7x14. Zapraszam do eksperymentowania. Zanim miałem swoje stereo, znalazłem wzmacniacz i podłączyłem go do płytki stykowej, a wcześniej odtwarzałem dźwięk z laptopa do obwodu w celu analizy dźwięku i jednocześnie naciskałem „odtwarzaj” w telefonie, aby go usłyszeć.

Jestem wielkim zwolennikiem miary dwa razy, raz cięcie. Więc cokolwiek robisz, postępuj zgodnie z tym przewodnikiem, a zostaniesz ustawiony.

Krok 3: Obwody + kod

Obwody + kod
Obwody + kod
Obwody + kod
Obwody + kod
Obwody + kod
Obwody + kod

Kod jest dostępny w serwisie GitHub.

Płytka do krojenia chleba, przylutuj do płyty perforowanej lub zaprojektuj własną płytkę drukowaną. Cokolwiek działa tu najlepiej, zrób to. Moje demo tutaj działa na płytce prototypowej, ale kiedy zbuduję soundbar, przeniosę wszystko na płytkę drukowaną. Aby uzyskać zasilanie z zasilacza, odetnij końcówkę żeńską i usuń czarną izolację. Usuń wystarczającą ilość rzeczywistych kabli, aby przykręcić je do zacisków adaptera. Zawsze bądź ostrożny podczas pracy z AC! Poza tym, tylko kilka rzeczy do odnotowania tutaj.

  1. Ścieżki naziemne Inną rzeczą jest upewnienie się, że ścieżki naziemne są dobre. Potrzebujesz uziemienia z adaptera do Arduino do wejścia aux, które również połączy się z masą w odbiorniku Logitech BT, a stamtąd do masy w stereo. Jeśli którykolwiek z nich jest zepsutym lub złym połączeniem, otrzymasz bardzo hałaśliwe wejście audio, a tym samym bardzo hałaśliwy wyświetlacz.
  2. Biasing wejścia audioAudio odtwarzane przez przewód aux, z telefonu lub laptopa lub gdziekolwiek, będzie odtwarzane przy -2,2 do +2,2V. Arduino jest w stanie odczytywać tylko od 0 do +5 V, więc musisz spolaryzować wejście audio. Można to skutecznie osiągnąć za pomocą wzmacniaczy operacyjnych, ale jeśli zużycie energii nie stanowi problemu (może kupiłeś zasilacz 240 W?), można to również osiągnąć za pomocą rezystorów i kondensatorów. Wybrane przeze mnie wartości były inne, ponieważ nie miałem pod ręką kondensatorów 10uF. Możesz pobawić się symulatorem, aby sprawdzić, czy to, co wybierzesz, zadziała.
  3. Transformacje FourieraKażdy projekt, który używa transformacji Fouriera, będzie zawierał sekcję tła, która je omawia. Jeśli masz już doświadczenie, świetnie! Jeśli nie, wszystko, co musisz zrozumieć, to to, że robią migawkę sygnału i zwracają informacje o tym, jakie częstotliwości są obecne w tym sygnale w danym momencie. Więc jeśli wziąłbyś transformatę Fouriera sin(440(2*pi*t)), to powiedziałbyś, że w twoim sygnale występuje częstotliwość 440Hz. Jeśli weźmiesz transformację Fouriera 7*sin(440(2*pi*t)) + 5*sin(2000(2*pi*t)), to powie ci, że obecne są zarówno sygnały 440Hz, jak i 2000Hz, i względne stopnie, w jakich są obecne. Może to zrobić dla dowolnego sygnału z dowolną liczbą funkcji składowych. Ponieważ cały dźwięk to tylko suma sinusoid, możemy wziąć transformatę Fouriera kilku migawek i zobaczyć, co naprawdę się dzieje. Zobaczysz w kodzie, że przed wykonaniem testu Fouriera stosujemy również okno do naszego sygnału. przekształcać. Więcej na ten temat można znaleźć tutaj, ale krótkie wyjaśnienie jest takie, że sygnał, który faktycznie przekazujemy, jest do bani, a okna naprawiają to za nas. Twój kod się nie zepsuje, jeśli ich nie użyjesz, ale wyświetlacz nie będzie wyglądał tak czysto. Być może dostępne są lepsze algorytmy (na przykład YAAPT), ale zgodnie z zasadami KISS, postanowiłem użyć było już dostępne, czyli kilka dobrze napisanych bibliotek Arduino dla szybkiej transformacji Fouriera, czyli FFT.
  4. Czy Arduino może naprawdę przetwarzać wszystko w czasie rzeczywistym? Aby wszystko pojawiło się w czasie rzeczywistym, Arduino musi pobrać 128 próbek, przetworzyć FFT, manipulować wartościami wyświetlacza i bardzo szybko zaktualizować wyświetlacz. Jeśli chciałbyś mieć precyzję 1/16 nuty przy 150bpm (blisko górnego tempa końcowego większości piosenek pop), musiałbyś przetworzyć wszystko w 100 ms. Dodatkowo ludzkie oko widzi przy 30 klatkach na sekundę, co odpowiada 30msek długości klatek. Ten wpis na blogu nie dał mi największej pewności siebie, ale postanowiłem sam sprawdzić, czy Arduino wytrzyma. Po własnym benchmarku byłem bardzo dumny z mojego R3. Faza obliczeń była zdecydowanie czynnikiem ograniczającym, ale byłem w stanie przetworzyć FFT o długości 128 długości UINT16 w zaledwie 70 ms. To mieściło się w granicach tolerancji audio, ale było ponad dwukrotnie większe niż ograniczenie wizualne. Podczas dalszych badań znalazłem Arduino FHT, który wykorzystuje symetrię FFT i oblicza tylko wartości rzeczywiste. Innymi słowy, to około 2x szybciej. I rzeczywiście, sprowadziło to prędkość całej pętli do ~30 ms. Jeszcze jedna uwaga dotycząca rozdzielczości wyświetlacza. Długość NFFT próbkowana przy Fs Hz zwraca N przedziałów, gdzie k-ty przedział odpowiada k * Fs/N Hz. Arduino ADC, który odczytuje wejście audio i pobiera próbki, zwykle działa z częstotliwością ~9.6kHz. Jednak FFT może zwracać tylko informacje o częstotliwościach do 1/2 * Fs. Ludzie mogą słyszeć do 20 kHz, więc idealnie chcielibyśmy próbkować z częstotliwością > 40 kHz. ADC można zhakować, aby działał nieco szybciej, ale nigdzie nie jest. Najlepszy wynik, jaki widziałem bez utraty stabilności, to przetwornik ADC 14 kHz. Dodatkowo największa FFT, jaką mogłem przetworzyć, aby nadal uzyskać efekt w czasie rzeczywistym, wynosiła N=128. Oznacza to, że każdy bin reprezentuje ~109Hz, co jest dobre na wyższych częstotliwościach, ale złe na dolnym końcu. Dobry wizualizator stara się zarezerwować oktawę dla każdego taktu, co odpowiada separacji przy [16,35, 32,70, 65,41, 130,81, 261,63, 523,25, 1046,50, 2093,00, 4186,01 Hz. 109 Hz oznacza, że pierwsze 2,5 oktawy znajdują się w jednym pojemniku. Nadal udało mi się uzyskać dobry efekt wizualny, po części biorąc średnią każdego wiadra, gdzie wiadro to grupa pojemników pomiędzy dwoma z tych granic. Mam nadzieję, że nie jest to mylące, a sam kod powinien wyjaśnić, co naprawdę się dzieje, ale możesz zapytać poniżej, czy to nie ma sensu.

Krok 4: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Jak wspomniałem wcześniej, chciałem czegoś o profesjonalnej jakości wykonania. Początkowo zacząłem sklejać listwy drewniane, ale przyjaciel (i wykwalifikowany inżynier mechanik) zasugerował inne podejście. Zauważ, że 2x6 to tak naprawdę 1,5" x 5". Zachowaj ostrożność podczas pracy z którąkolwiek z poniższych maszyn.

  1. Weź 2x6x8 i w razie potrzeby wyszlifuj. Pokrój go na sekcje o wymiarach 2 "x 6" x 22". Daje to dwie listwy do "spalenia", jeśli zepsujesz.
  2. Weź każdą sekcję 22 "i przeprowadź ją wzdłuż piły stołowej, aby uzyskać listwy 1,5" x ~ 1,6" x 22". Ostatnia trzecia część może być trudna do wycięcia na piły stołowej, więc możesz przełączyć się na piłę taśmową. Tylko upewnij się, że wszystko jest tak proste, jak to tylko możliwe. Dodatkowo 1,6" jest przewodnikiem i może wzrosnąć do 1,75". Takie były moje prace, ale dopóki wszystkie są sobie równe, nie ma to większego znaczenia. Czynnikiem ograniczającym jest akryl na 18".
  3. Na końcu kawałków zaznacz kształt litery U, który ma 1/8 cala z każdej strony i nieco więcej niż 3/4 cala głębokości. UWAGA: Jeśli użyjesz innego akrylu, zmieni się głębokość. Przy < 3/4" mój akryl w ogóle nie rozprasza światła. Przy nieco większym rozprasza się całkowicie. Chcesz uniknąć "beadiness". Uważam, że ten post Hackaday jest dobrym punktem odniesienia, ale uzyskanie idealnego rozproszenia jest bardzo trudne!
  4. Za pomocą frezarki stołowej wytnij to środkowe U aż do listwy. 22" jest dłuższe niż potrzebujesz, więc nie martw się o odpryskiwanie końcówek, jeśli to zrobisz. Frezarki mogą być trudne, ale zdobądź nieco szerszy niż połowa szerokości litery U i uważaj, aby przyciąć więcej niż 1/ 8 cali materiału na raz. Powtórz: Nie próbuj robić tego wszystkiego w 2 przejściach. Uszkodzisz drewno i prawdopodobnie zranisz się. Pracuj z rotacją frezarki na nacięciach 1-4 i pracuj przeciwko niemu na 5-8. Zapewnia to najlepszą kontrolę nad momentem obrotowym routera.
  5. Pokrój taśmę LED na 30 odcinków LED (tylko każdy zestaw 3 diod jest adresowalny). Prawdopodobnie będziesz musiał wylutować kilka połączeń. Połóż te paski wzdłuż torów. Jedna strona powinna leżeć równo, a druga powinna mieć trochę miejsca na pojemnik JST, który będzie leżeć równo. Niestety nie dostałem zdjęcia tego, ale patrz załączony schemat. Zaznacz tutaj długość, ale jeszcze niczego nie tnij.
  6. Zmierz szerokość każdej listwy. Mając to i długość z kroku 7, wytnij laserowo akryl na 10 niezbędnych prostokątów. Lepiej być trochę za długi niż trochę za krótki. Jeśli się przypali, przetrzyj go izopropylem.
  7. Upewnij się, że każda listwa akrylowa ma tę samą długość, którą zaznaczyłeś w kroku 5, a następnie przytnij listwę do tej długości.
  8. Potrzebujesz teraz dwóch kawałków mostka, aby przymocować akryl. Pozwala to na łatwą konserwację pasków świetlnych, jeśli coś się pojawi. Te kawałki powinny mieć mniej więcej [Twoja szerokość] - 2 * 1/8" długości i 1/2" kwadratowe powierzchnie, ale powinny pasować trochę ciasno. Mając te elementy na swoim miejscu i równo z przednią powierzchnią listew, wywierć otwory przez środek każdego mostka od zewnętrznej strony listew. Postaraj się, aby każde ćwiczenie było równe. Nie trzymaj mostów wkręconych, ale upewnij się, że mogą być. Uważaj, aby nie wkręcić śruby zbyt głęboko i nie rozłupać drewna.
  9. W tym momencie poplamij listwy i nałóż dowolne wykończenie.
  10. Teraz wkręć mosty. Upewnij się, że siedzą równo! Jeśli nie, będziesz musiał dodać jakąś podkładkę. Nałóż na mostki klej gorylowy (preferowany) lub gorący klej (który może pełnić funkcję podkładki) i przymocuj akryl. Nie nakładaj kleju wzdłuż samej listwy.
  11. Przylutuj gniazda JST z jednej strony wszystkich taśm LED oprócz jednego. Umieść je wszystkie na tym samym końcu, jak wskazują zaznaczone strzałki. Przylutuj przewody wtyków JST do drugich końców. Może być konieczne usunięcie większej ilości przewodów na każdym złączu. Upewnij się, że połączenia będą prawidłowe po podłączeniu! Klej z tyłu diod LED jest okropny, więc nie ufaj mu. Połóż diody LED na torze środkowym i przyklej je klejem goryl, zwracając uwagę na wskazany kierunek na paskach. Pamiętaj, że wężujesz całość.
  12. Na pierwszej listwie przylutuj przewody na tyle długie, aby uzyskać zasilanie + masę z adaptera i sygnał z Arduino.
  13. Przykręć listwy i mostki z powrotem. Przymocuj paski poleceń z tyłu (na rzep, 2 średnie na górze i na dole lub 1 duży na środku). Wykonaj wszystkie niezbędne połączenia i zawieś na ścianie w odległości ~3 cali. Ciesz się owocami swojej pracy.

Zalecana: