
Witam wszystkich:)
W szczególności miłośników światełek, iluminofonii, itp.
Prezentowane urządzenie wyświetla widmo akustyczne w postaci 20 słupków po 16 punktów każdy. Trudno je nazwać analizatorem widma. Analizator kojarzy mi się bardziej z przyrządem pomiarowym, chociaż wyświetlanie częstotliwości jest tutaj dość dokładne, czego nie można powiedzieć o wyskalowaniu poziomu, który zresztą się zmienia. Ale o tym poniżej.
Podobne konstrukcje można znaleźć w internecie. Jednak większość z nich jest niewykończona moim zdaniem. Przyklejone do "czegoś tam" błyskające taśmy LED. No i tak powstał pomysł na zbudowanie ładniejszego wyświetlania nawiązującego stylem do klasycznych konstrukcji fabrycznych, tyle, że w powiększonych wymiarach.
Matryca zbudowana jest z paska 640 LED WS2812B. Ze względu na wielkość pojedynczego "piksela" 30 x 11mm jest on podświetlany dwiema diodami, co daje 320 punktów świetlnych.
Sercem układu sterującego jest ESP32. Właściwie to mój pierwszy projekt na tym MCU i dopiero go poznaję. Jeśli chodzi o kod programu jest sporo gotowych źródeł do budowy podobnych urządzeń. Stwierdziłem, że nie ma co wyważać otwartych drzwi i wybrałem gotowca. https://github.com/s-marley/ESP32_FFT_VU
Niestety kod działa tylko z wersją 1.0.4 płytki ESP32 Arduino. Przy wyższych wersjach są kłopoty z próbkowaniem ADC powyżej 20 kHz.
Wprowadziłem jednak trochę przeróbek i poprawek :
- Zmiana próbkowania ADC z pętli blokującej do przerwania timera, co przyśpieszyło znacznie wykonywanie programu.
Na stan dzisiejszy uzyskałem około 20 FPS odświeżania matrycy przy wielkości 16x40 LED i 29 FPS przy matrycy 8x8 i chyba więcej nie
trzeba bo słupki staną się "nerwowe".
- Automatyczne ustawianie poziomu audio, ale już po stronie wartości prążków FFT. Coś w rodzaju "ARW". Różnice poziomu dźwięku różnych albumów muzycznych są znaczne i trzeba było regulować poziom wejściowy dźwięku. Wspomniane "ARW" dość dobrze sobie z tym radzi.
Urządzenie obsługiwane jest pilotem IR. Uczący się odbiornik IR oparty jest na Atmega8 lub Atmega88. Jest w stanie obsłużyć najbardziej popularne formaty rozkazów pilotów( Nec, Nec16, Nec42, Samsung32, sony(SIRCS) Denon, Sharp).
Do obsługi służy 6 rozkazów.
1 - Załączanie i wyłączanie
2 - Jasność panela +
3 - Jasność panela -
4 - przełączanie efektów +
5 - przełączanie efektów -
6 - włączanie lub wyłączanie "pików"
W czasie czuwania aktywny jest tylko moduł odbiornika IR. Po odebraniu z pilota polecenia o włączeniu urządzenia, ATmega odblokowuje ESP32 i włącza zasilanie paska LED.
Budowa:
Prawie cała konstrukcja wydrukowana jest na budżetowej domowej drukarce z PLA, z wypełnieniem 20%, miejscami zagęszczonym do 90% pod wkręty. Wyjątkiem jest tylna ścianka (HDF 3mm) i podstawa (MDF 10mm).
Przegrody na LED.

Trzeba je pomalować od środka na biało, żeby lepiej rozpraszały światło.

Montaż próbny przegród i maskownicy

Ze względu na ograniczony rozmiar druku, rama obudowy drukowana jest w kawałkach i póżniej sklejona.

Montaż:
Rama obudowy przyklejona do przyciemnionej szyby.

Teraz maskownica


Na maskownicy ułożone są matówki z białego PCV 160um. Pozyskane z okładek skoroszytów biurowych. Dlatego w kawałkach...

Kolej na przegrody z przyklejonymi i polutowanymi paskami LED. Przegrody nie są sklejone ze sobą, żeby lepiej przylegały do maskownicy i szyby.

Montaż elementów dociskających przegrody do szyby z maskownicą. Elementy te centrują też przegrody w pionie.


Całość zamknięta płytą HDF na wkręty.

Montaż wsporników pionowych z podstawą i obudowa elektroniki

Miejsce docelowe



Jeszcze płytka elektroniki

Całość zasilana jest z zasilacza 5V 22A.
Wymiary panela 710 x 256 x 28 mm.
Wymiary z podstawą 710 x 280 mm.
Kody żródłowe - Arduino IDE.
Schemat. Mam nadzieję , że nie ma na nim błędów..

Krótki film z działania. I tak nie oddaje efektu na żywo..
https://youtu.be/aGNrLPwe1e0
Sorki za jakość zdjęć. Ciężko fotografuje się te czarności...
Dołączam kody źródłowe ESP32. Prototypowy kod. pewnie będzie modyfikowany jeszcze. I żródła dodbiornika IR
I to wszystko w wielkim skrócie...

Cool? Ranking DIY