Bezprzewodowy system wizualny oparty na matrycach LED i mikrokontrolerach ESP32, sterowany przez przeglądarkę. Moduł Centralny komunikuje się z wieloma ekranami jednocześnie za pomocą szybkiego protokołu ESP-NOW, zapewniając idealną synchronizację bez opóźnień. Ekrany same generują grafikę w czasie rzeczywistym.
Mikrokontrolery: 2x ESP32 (1x Master, 1x Slave – ilość Slave może być dowolnie duża).
Wyświetlacze: Matryce HUB75.
Komputer PC z Arduino IDE
- Cel i działanie systemu
Projekt to system wyświetlania grafiki. Składa się z Modułu Centralnego (Master) oraz Modułów Wyświetlających (Slave). Głównym celem było stworzenie rozwiązania, które pozwala na synchronizację wielu ekranów rozmieszczonych w pomieszczeniu, bez ciągnięcia kabli sygnałowych. Sterowanie odbywa się w najprostszy możliwy sposób – użytkownik wchodzi na stronę internetową generowaną przez mastera (korzystając z domowego WiFi) i wybiera efekt na telefonie lub komputerze.Interfejs ten pełni rolę pilota – umożliwia wybór koloru oraz trybu pracy, eliminując konieczność instalowania dedykowanych aplikacji mobilnych. -
Komunikacja
Komunikacja między Modułem Centralnym a ekranami odbywa się z pominięciem routera WiFi, przy wykorzystaniu protokołu ESP-NOW w trybie rozgłoszeniowym (Broadcast). Moduł Centralny wysyła pakiety danych, które są natychmiastowo odbierane przez wszystkie urządzenia w zasięgu.Każdemu urządzeniu przypisane są 4 bajty w sekwencji: kanał 1-3 odpowiada za składowe koloru (RGB), a kanał 4 definiuje ID trybu graficznego.
Kolejne urządzenia "nasłuchują" kolejnych slotów w ramce danych (np. bajty 5-8, 9-12 itd.). Dzięki takiemu rozwiązaniu, dodanie nowego ekranu do systemu nie obciąża sieci.
-
Adaptacja sprzętowa i mapowanie pikseli
W projekcie wykorzystano trzy różne konfiguracje matryc LED typu HUB75, co wymagało elastyczności oprogramowania: zestaw prostokątny(128x32), zestaw kwadratowy standardowy (64x64), zestaw kwadratowy z odwróconym panelem (64x64).W przypadku trzeciego zestawu, ze względów montażowych, jeden z paneli został fizycznie zamontowany do góry nogami. Aby obraz pozostał spójny, zastosowano programową korekcję. W kodzie zdefiniowano stałe parametry konfiguracyjne, które informują mikrokontroler o fizycznym układzie matrycy. Algorytm mapowania w czasie rzeczywistym przelicza współrzędne pikseli, automatycznie obracając fragmenty obrazu, by zniwelować fizyczne odwrócenie.
-
Tryby animacji
System nie przesyła gotowego sygnału wideo. Cały proces generowania grafiki odbywa się bezpośrednio na mikrokontrolerach ESP32 w modułach wyświetlających. Zaimplementowano szereg trybów:Tryby podstawowe: Solid (stały kolor), Checker (szachownica) oraz Rainbow.
Symulacje fizyczne: Tryby Cube (obracający się sześcian 3D) oraz Bubbles (bąmbelki). W obu przypadkach zaimplementowano prosty silnik fizyki, który odpowiada za detekcję kolizji – obiekty odbijają się od krawędzi ekranu.
Efekty cząsteczkowe: Tryb Snow (symulacja śniegu) oraz Matrix Rain, inspirowany filmem, generuje spadające strugi "kodu" o różnej długości i jasności.
Obliczenia matematyczne: Tryb Fractal, w którym procesor na żywo generuje wizualizację Zbioru Julii.
-
Interfejs użytkownika (WebUI)
Interfejs jest podzielony na trzy sekcje: wybór sterowanej płytki, panel doboru koloru oraz przycisków aktywujących poszczególne tryby.
ZIP poniżej