1.Geneza pomysłu:Projekt Magic Matrix 250, bo tak pozwoliłem sobie go roboczo nazwać, został zainspirowany poradnikami Pana Mirka, za co serdecznie dziękuje!
Mam nadzieje że poniższy opis nie zostanie uznany za plagiat a jedynie nieudolną próbę rozwoju tego wspaniałego pomysłu.
W zasadzie to był zbieg okoliczności. Pewnego dnia przeglądałem ofertę jednego z dystrybutorów elektroniki i rzuciły mi się na wzrok diody serii WS28xx tyle że w wersji mini.
Poniżej na zdjęciu porównanie tradycyjnych Magic LED’ów w obudowie 5050 z wersją mini w obudowie typu 3535:
Kilka dni później otrzymałem przesyłkę od innego dystrybutora, u którego zamówiłem m.in. 4 atmegi 328p.
Ku mojemu zaskoczeniu owe cztery procesory zapakowane były w coś takiego:
Jasny gwint, ciemna śrubka pomyślałem! Czy to w ogóle jest możliwe?
Okazuje się że tak!
Kwadraty w ramce mają wymiar ok 5x5mm natomiast dioda zgodnie ze specyfikacją to kwadrat o boku 3,5mm.
Miejsca może nie jest dużo ale jeżeli zastosuję kondensatory 0402 powinno się wszystko ładnie zmieścić.
I tak oto powstał pomysł stworzenia matrycy złożonej z 250 diod WS2812 mini ułożonych w 10 wierszach i 25 kolumnach.
Do dzieła!
2. Projekt:Zacząłem od narysowania schematu w Eaglu. Nie znalazłem co prawda gotowej diody WS2812 w wersji mini jako komponentu eagle’a – nie stanowiło to jednak żadnego problemu.
Nota katalogowa tej diody precyzyjnie określa jakie wymiary powinien mieć footprint.
Stosując metodę kopiuj wklej dość sprawnie połączyłem 250 diod i kondensatorów. Schemat był gotowy po 10 minutach. Na razie idzie nieźle.
Problemy zaczęły się szybciej niż myślałem - próba rozłożenia 250 kondensatorów i 250 diod tak aby pasowały do ramki to nie lada wyzwanie.
Ręczne rozkładanie nie wchodziło w ogóle w rachubę, to zadanie dla Syzyfa, ja postanowiłem pójść na łatwiznę. Na pewno znajdzie się jakiś pomocny skrypt ULP który odwali najgorszą robotę za mnie.
Jedyny jaki nadawał się do tego zadania to skrypt o nazwie component-array, szybko jednak się okazało że nie spełnia on moich oczekiwań.
Chciałem rozłożyć diody zaczynając od dolnego lewego rogu idąc w górę i sukcesywnie posuwać się w prawo, a skrypt nie dawał takiej możliwości. Ugh……
Chwilowo odłożyłem rozkładanie diod i kondensatorów i zabrałem się za modyfikację component-array.ulp tak aby skrypt ten pracował zgodnie z moimi wymaganiami.
Okazało się że nie taki straszny diabeł straszny jak go malują, język skryptów ulp jest zbliżony składnią do C. Po chwili skrypt Magic Matrix Array Creator było gotowy do działania.
Zależało mi przede wszystkim na tym aby móc w bardzo łatwy sposób modyfikować odległość pionową i poziomą między diodami i kondensatorami tak aby znaleźć empirycznie właściwą odległość, odpowiadającą odległościom pionowym i poziomym ramki.
Moja metoda polegała na tym aby każdorazowo po rozłożeniu elementów za pomocą skryptu wydrukować płytkę na papierze i sprawdzić czy rozłożenie mieści się prawidłowo w ramce.
Nie będę się chwalił ile kartek formatu A3 do tego celu zmarnowałem. Niestety takiego poświęcenia i marnotrawstwa papieru wymagało to prototypowanie.
Kolejnym mozolnym krokiem było wykonanie połączeń na płytce pomiędzy diodami i kondensatorami. Po kilku godzinach mrówczej pracy powstała płytka PCB jak na zdjęciu poniżej:
Nie jest to jeszcze gotowy model, ale naprawdę niewiele zostało do zrobienia.
3. Liczby są nieubłagane:Zanim jeszcze zabrałem się za projekt płytki zrobiłem następujące obliczenia:
• PRĄD: Co prawda jest nieznaczna różnica w poborze prądu przy zasilaniu minimalnym napięciem 3,3[V] a maksymalnym 5[V], przewidzianym w nocie katalogowej. Na tym etapie przyjąłem że jest to średnio ok 40[mA] przy diodzie zapalonej maksymalnie jasno we wszystkich 3 kanałach. Potwierdzone empirycznie. Podsumowując – 40[mA] x 250 = 10[A].
• MOC: Maksymalna moc wydzielana przez matrycę: 10[A] x 5[V] = 50W.
• PAMIĘĆ: 250 diod po 3 kanały na diodę to daje tablicę o rozmiarze 750 bajtów.
• KOSZTY: Przy zakupie 250 diod w TME koszt jednej diody to 41 groszy netto. Koszt kondensatora 100nF SMD w rozmiarze 0402 to ok.6 groszy netto. W sumie wychodzi ok 150 zł netto za same elementy. Pozostałe koszty nie zostały jeszcze oszacowane…
4. Ile do brakuje do zakończenia projektu:Obecnie ciągle pracuję na projektem płytki. Zostały do zrobienia detale, z końcem stycznia projekt powinien być gotowy. Następnym krokiem będzie zlecenie wykonania płytki.
Nie zdecydowałem jeszcze konkretnie w której firmie. Koszty będą najważniejszym kryterium wyboru.
Potem lutowanie – bagatela
to tylko 250 kondensatorów w rozmiarze 0402 i 250 diod. To będzie zajęcie najbardziej pracochłonne.
A potem już tylko programowanie.
Chodzą mi nawet już po głowie algorytmy szacowania oraz ograniczania poboru prądu przez matrycę na podstawie wartości wpisanych w tablicę.
Na szczęście pobór prądu rośnie liniowo w stosunku to jasności zadanej w zakresie 0…255 – sprawdziłem to empirycznie.
Co o tym wszystkim sądzicie?