- sterowanie diodami WS2812 poprzez interfejs DMX,
- umożliwia kontrolowanie 170 diod z 24-bitową paletą kolorów lub 512 diod z paletą 8-bitową,
- obsługa kilku wirtualnych ekranów (warstw),
- sterowanie uwzględnia korektę gamma,
- sterowanie zarówno w trybie konwertera DMX (odbiór danych z USB) jak i poprzez odbieranie z RS485/422,
- zaimplementowane dwie proste gry: Tenis i Galaga, dla zaprezentowania możliwości urządzenia.
Głównym zadaniem urządzenia jest sterowanie diodami WS2812 poprzez interfejs DMX. W ten sposób można kontrolować 170 diod z 24-bitową paletą kolorów lub 512 diod z paletą 8-bitową. Sterownik może obsługiwać kilka wirtualnych ekranów (warstw) niezależnych od siebie. Warstwy można użyć do połączenia dwu strumieni DMX, (jedynym ograniczeniem może być tylko wydajność mikrokontrolera) lub naniesienia na obraz z DMX innych, niezależnie animowanych obiektów. Ekrany posiadają priorytety, tak jak duszki (sprite’s) w C-64 czy Atari. Warstwa o najniższym numerze ma najwyższy priorytet i zasłania wszystko co się pod nią znajduje. Aby zademonstrować możliwości sterownika, diody ułożono w prostokąt 16×8 LED.
Budowa i działanie
Schemat urządzenia podzielono na bloki, których schematy pokazane zostały na rysunkach 1...5. Mikrokontroler taktowany zegarem 20 MHz (ATmega1284 to nieliczny układ z rodziny AVR Mega, który może być taktowany zegarem większym niż 16 MHz) steruje diodami led oraz odbiera transmisję DMX. Układ został wyposażony w 16 kB pamięci RAM. Tak duża pamięć jest wymagana dlatego, że obsługa jednej diody z użyciem UART wymaga 8 bajtów pamięci (z użyciem SPI 9 bajtów). Przy 512 diodach daje to 4 kB pamięci, a trzeba gdzieś jeszcze umieścić dane, stos, bufor DMX. Większość dużych mikrokontrolerów AVR ma 4 kB, nieliczne 8 kB lub więcej. Pamięć RAM można zaoszczędzić dekodując dane dla diod metodą „w locie”, niestety zastosowany układ jest zbyt wolny. Co prawda diodami dałoby się sterować ale na dekodowanie DMX pewnie nie starczyłoby już czasu.
Zasilacz urządzenia zrealizowano w typowym układzie aplikacyjnym stabilizatora impulsowego LM2576. Może dostarczyć prąd o wartości do 3 A, do zasilania diod LED oraz układów sterujących. Można zastosować układ z ustalonym napięciem (wersja oznaczona -5.0), jak i regulowanym (oznaczenie -ADJ). Zależnie od typu układu trzeba zastosować odpowiednie rezystory R6 i R7. Maksymalne napięcie wejściowe wynosi 40 V. Trzeba pamiętać, aby wejściowy kondensator filtrujący miał odpowiednie napięcie znamionowe.
Prąd pobierany przez sterownik bez dołączonych diod LED wynosi ok. 100 mA. Max pobór prądu przez jedną diodę to blisko 50 mA (dla diod w obudowie 5050 przypada 16 mA na każdą z diod RGB). Wydajność zasilacza (3 A) wystarczy na zaświecenie na biało z maksymalną jasnością około 60 diod. Jednak w praktyce rzadko się zdarza, aby wszystkie diody świeciły jednocześnie na biało.