Spisu treści:
- Krok 1: Dlaczego pracuję nad modułem Magic Hercules?
- Krok 2: Konwersja SPI do NZR
- Krok 3: Moduł Magic Hercules jako cyfrowy tester taśm LED
- Krok 4: Moduł Magic Hercules – nowe uniwersalne rozwiązanie dla cyfrowych diod LED
- Krok 5: Moduł Magic Hercules z Atmega32 i C
- Krok 6: Moduł Magic Hercules z Arduino i Arduino C++
- Krok 7: Moduł Magic Hercules z PIC i C
- Krok 8: Moduł Magic Hercules z Raspberry Pi i Pythonem
- Krok 9: Moduł Magic Hercules z ramieniem - STM32 Nucleo i C
- Krok 10:
Wideo: Magic Hercules - sterownik do cyfrowych diod LED: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
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?
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
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
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
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:
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:
Zewnętrzna bateria litowo-jonowa do aparatów cyfrowych: 12 kroków (ze zdjęciami)
Zewnętrzna bateria litowo-jonowa do aparatów cyfrowych: Zewnętrzna bateria jest przydatna do robienia dodatkowych zdjęć i filmów, ponieważ mają większą pojemność niż baterie LiPo dołączone do aparatu. Mogą również zastąpić trudne do znalezienia baterie w kamerach cofania, których czasami używasz
Interfejs Yaesu FT-100 PC Link dla trybów cyfrowych: 3 kroki
Yaesu FT-100 PC Link Interface dla trybów cyfrowych: Tutaj przedstawiam wytyczne do budowy interfejsu PC link dla Yaesu FT-100. Interfejs ten umożliwia przesyłanie i odbieranie sygnałów audio z karty dźwiękowej w celu obsługi trybów cyfrowych HAM (FT8, PSK31 itp.). Dodatkowe informacje są dostępne
Filtr słoneczny 58 mm do lustrzanek cyfrowych: 6 kroków
Filtr słoneczny 58 mm do lustrzanek cyfrowych: Zgrabny filtr słoneczny do teleobiektywów lustrzanek cyfrowych. IMHO, wygląda znacznie lepiej niż rzemiosło kartonowe
Zabawne podkładki czułe na nacisk (dla cyfrowych placów zabaw – i nie tylko): 11 kroków (ze zdjęciami)
Zabawne podkładki wrażliwe na nacisk (dla cyfrowych placów zabaw – i nie tylko): Jest to instrukcja, która pokazuje, jak zrobić podkładkę wrażliwą na nacisk – która może być używana do tworzenia cyfrowych zabawek lub gier. Może być używany jako rezystor wrażliwy na siłę na dużą skalę i chociaż jest zabawny, może być używany do poważniejszych projektów
Mechanizm panoramowania i pochylania dla poklatkowych lustrzanek cyfrowych: 7 kroków (ze zdjęciami)
Mechanizm panoramowania i pochylania dla poklatkowych lustrzanek cyfrowych: Miałem kilka silników krokowych i naprawdę chciałem użyć ich do zrobienia czegoś fajnego. Zdecydowałem, że zrobię system Pan and Tilt do mojej lustrzanki, aby móc tworzyć fajne poklatki. Potrzebne przedmioty: 2x silniki krokowe -htt