System bezprzewodowych ekranów LED sterowany przez WiFi

Typ_projektu
Arduino
Zdjecie główne
0
Krótki opis projektu

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.

Niezbędne elementy

Mikrokontrolery: 2x ESP32 (1x Master, 1x Slave – ilość Slave może być dowolnie duża).
Wyświetlacze: Matryce HUB75.

Sprzęt

Komputer PC z Arduino IDE

Opis projektu
  1. 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.
  2. 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.

  3. 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.

  4. 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.

  5. 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. 

    0

     

Zdjęcia
kod programu
ZIP poniżej
Pliki_projektu
Youtube
Tagi
esp32 HUB75 ESP-NOW Arduino LEDMatrix webui rgb dmx