Spisu treści:

Magic Hercules - sterownik do cyfrowych diod LED: 10 kroków
Magic Hercules - sterownik do cyfrowych diod LED: 10 kroków

Wideo: Magic Hercules - sterownik do cyfrowych diod LED: 10 kroków

Wideo: Magic Hercules - sterownik do cyfrowych diod LED: 10 kroków
Wideo: Magic HERCULES po polsku - wieloplatformowy moduł, driver dla diod cyfrowych po SPI 2024, Listopad
Anonim
Magic Hercules - sterownik do cyfrowych diod LED
Magic Hercules - sterownik do cyfrowych diod LED

Szybki przegląd:

Moduł Magic Hercules to konwerter pomiędzy dobrze znanym i prostym SPI na protokół NZR. Wejścia modułu mają tolerancję +3,3 V, dzięki czemu można bezpiecznie podłączyć dowolne mikrokontrolery pracujące na napięciu +3,3 V.

Wykorzystanie protokołu SPI do sterowania diodami cyfrowymi to nowatorskie podejście wśród obecnych rozwiązań, takich jak gotowe biblioteki dla Arduino. Umożliwia jednak przełączenie na dowolną platformę niezależnie od rodziny mikrokontrolerów (np. ARM: STM/Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino) i niezależnie od języka programowania (np. C, Arduino C++, Python lub inny który obsługuje protokół SPI). Takie podejście do programowania cyfrowych diod LED jest niezwykle przyjazne dla początkujących, ponieważ wystarczy znajomość protokołu SPI.

Moduł MH umożliwia również kilka trybów testowania cyfrowych taśm LED, w tym testowanie kolejności kolorów w diodzie (RGB, BGR, RGBW itp.), testowanie całych taśm lub wyświetlaczy (do 1024 diod LED).

Krok 1: Dlaczego pracuję nad modułem Magic Hercules?

Dlaczego pracuję nad modułem Magic Hercules?
Dlaczego pracuję nad modułem Magic Hercules?

Od dawna pracuję z cyfrowymi diodami LED takimi jak WS2812, WS2815 czy SK6812, które zwykle nazywam Magic LED.

Testowałem wiele listew, pierścieni i wyświetlaczy (nawet własnych) opartych na Magic LED (nawet z typem RGBW). Wykorzystałem Arduino, Nucleo (z STM), Raspberry Pi oraz własne płytki z mikrokontrolerami AVR.

Niezależnie od platformy napisanie programu do sterowania magicznymi diodami LED jest trudne (ze względu na konieczność korzystania z oprogramowania protokołu NZR), chyba że korzysta się z gotowych bibliotek, które ułatwiają, ale wciąż nie do końca optymalne pod względem wykorzystania kodu, przerwań odpowiedzi, czy wykorzystania pamięci i działają tylko na określonych platformach (przeniesienie ich np. z mikrokontrolerów Raspberry na AVR jest niemożliwe).

Ze względu na to, że często korzystam z różnych platform, miałem potrzebę, aby kod programu był jak najbardziej kompatybilny z Arduino, Raspberry Pi, ARM/STM (Nucleo) czy AVR - zwłaszcza jeśli chodzi o efekty świetlne.

Od dłuższego czasu pracuję na kanale youtube i przygotowałem niejeden poradnik dotyczący programowania diod cyfrowych w języku C dla mikrokontrolerów AVR (ale na razie tylko w języku polskim). Często mam kontakt z początkującymi, którzy borykają się z programowaniem magicznych diod LED. Oczywiście niektórzy, w zależności od platformy, wybierają gotowe biblioteki do swoich jednorazowych projektów. Jednak wiele osób szuka innych rozwiązań lub próbuje zgłębić tajniki programowania, a ja jestem jedną z nich.

Krok 2: Konwersja SPI do NZR

Konwersja SPI do NZR
Konwersja SPI do NZR

Postanowiłem przygotować moduł, który wykona brudną robotę za użytkownika za pomocą protokołu NZR. Moduł, który będzie działał jako konwerter SPI na NZR i podobnie jak SPI, może być z łatwością używany na dowolnej platformie. Powyższy zrzut ekranu przedstawia konwersję sygnałów SPI do protokołu NZR w module Magic Hercules.

Krok 3: Moduł Magic Hercules jako cyfrowy tester taśm LED

Moduł Magic Hercules jako cyfrowy tester taśm LED
Moduł Magic Hercules jako cyfrowy tester taśm LED

Podłączając cyfrowe diody LED do różnych systemów należy pamiętać o odpowiedniej tolerancji napięcia dla różnych mikrokontrolerów. Większość wyprowadzeń I/O mikrokontrolerów ARM pracuje w standardzie +3,3 V, natomiast mikrokontrolery AVR pracują w standardzie TTL. Dzięki temu piny wejściowe modułu Magic Hercules mają tolerancję +3,3 V, dzięki czemu można je bezpiecznie podłączyć np. do Raspberry P lub dowolnego mikrokontrolera opartego na ARM zasilanego +3,3 V.

Jak wspomniałem, często pracuję z różnymi rodzajami diod LED. W zależności od producenta poszczególne kolory w diodach mogą znajdować się w różnych pozycjach, np. RGB, BGR, GRB, RGBW, GRBW itp. Nierzadko w dokumentacji producenta pojawia się wzmianka o sekwencji RGB, ale w rzeczywistości wygląda to inaczej. Wyposażyłem moduł Hercules w test sekwencji kolorów, dzięki czemu nie ma problemu z szybkim wymyśleniem, jak napisać program do poprawnej kolejności kolorów. Kilka dodatkowych funkcji testera pozwala szybko sprawdzić, czy cyfrowy pasek LED w ogóle działa, czy wszystkie kolory w każdej diodzie na pasku (aż 1024 diody!) działają poprawnie (brak martwych pikseli). A wszystko to bez podłączania mikrokontrolera i pisania jakiegokolwiek programu.

Krok 4: Moduł Magic Hercules – nowe uniwersalne rozwiązanie dla cyfrowych diod LED

Moduł Magic Hercules – nowe uniwersalne rozwiązanie dla cyfrowych diod LED
Moduł Magic Hercules – nowe uniwersalne rozwiązanie dla cyfrowych diod LED

Myślę, że nie było jeszcze czegoś takiego, aby sterować cyfrowymi diodami LED za pomocą prostego i powszechnego protokołu SPI, który może być obsługiwany na dowolnej platformie lub rodzinie mikrokontrolerów.

Oczywiście istnieje wiele sposobów sterowania diodami cyfrowymi, niektóre są bardziej optymalne, a inne mniej optymalne. Moduł Magic Hercules to kolejna opcja i bardzo praktyczna dla mnie. Myślę, że komuś może się spodobać to nietypowe rozwiązanie. Niedawno wystartowałem na platformie crowdfundingowej - kickstarterze, gdzie przygotowałem szerszy opis modułu Magic Hercules w kilku filmach, w tym jak łatwo z nim pracować na Arduino, Nucleo (STM), Raspberry Pi oraz na AVR i PIC mikrokontrolery. Jeśli chcesz wesprzeć projekt Magic Hercules, sprawdź to:

Mój projekt modułu Magic Hercules na kickstarterze

Przygotowałem program w języku C - prosty efekt gwiezdnych wrót, który opiera się na operacjach na tablicach i sekwencyjnym wysyłaniu bufora w pętli głównej. Dzięki modułowi Magic Hercules mogłem bez problemu przenieść kod źródłowy na inne języki i platformy - sprawdź kolejne kroki - kody źródłowe.

Krok 5: Moduł Magic Hercules z Atmega32 i C

Film zawierający uproszczony schemat, prezentację połączenia na ATB 1.05a (AVR Atmega32), kod źródłowy (w Eclipse C/C++ IDE) oraz efekt końcowy w postaci efektu świetlnego gwiezdnych wrót.

Link do filmu na youtube

Krok 6: Moduł Magic Hercules z Arduino i Arduino C++

Film zawierający uproszczony schemat, prezentację połączenia na płytce Arduino 2560, kod źródłowy w Arduino IDE oraz efekt końcowy w postaci efektu świetlnego gwiezdnych wrót.

Link do filmu na youtube

Krok 7: Moduł Magic Hercules z PIC i C

Film zawierający uproszczony schemat, prezentację połączenia na ATB 1.05a z osłoną PIC (PIC24FJ64GA004 na pokładzie), kod źródłowy w MPLAB oraz efekt końcowy w postaci efektu świetlnego gwiezdnych wrót.

Link do filmu na youtube

Krok 8: Moduł Magic Hercules z Raspberry Pi i Pythonem

Film zawierający uproszczony schemat, prezentację połączenia na Raspberry Pi 4, kod źródłowy w Pythonie oraz efekt końcowy w postaci efektu świetlnego gwiezdnych wrót.

Link do filmu na youtube

Krok 9: Moduł Magic Hercules z ramieniem - STM32 Nucleo i C

Film zawierający uproszczony schemat, prezentację połączenia na płytce STM32 Nucleo, kod źródłowy w STM32CubeIDE oraz efekt końcowy w postaci efektu świetlnego gwiezdnych wrót.

Link do filmu na youtube

Krok 10:

Obraz
Obraz

Myślę, że MH może być modułem niezwykle przyjaznym dla początkujących, niezależnie od platformy i języka, którego używają. Wystarczy znać dobrze znany protokół SPI, a możliwość rozpoczęcia sprawdzania, czy taśma cyfrowa w ogóle działa i jaką ma sekwencję kolorów to tylko plus.

Jeśli chcesz wziąć udział w moim projekcie na Kickstarterze - sprawdź ten link:

Mój projekt modułu Magic Hercules na kickstarterze

Zalecana: