úterý, června 02, 2020

Pixelstick domácí výroby

Pro zpestření focení jsem si již před nějakou dobou začal občas hrát s kreslením světlem. Kromě různých baterek, barevných LED atd. jsem na internetu narazil také na pojem LightStick či PixelStick, což je zařízení, které pomocí řady barevných RGB LED a řídícího modulu umí vykreslit i bitmapové obrázky. Pěkné, ale z komerční produkce vychází od 6000 korun nahoru (spíš k 10 tisíc) a to mi opravdu za nákup nestálo. Po nějaké době jsem ale narazil i na několik návodů pro domácí stavbu a to již za úvahu stálo, v tomto článku popíšu jak to dopadlo :-)


O co vlastně jde?
Nejprve doporučuji shlédnout stránky komerčně vyráběných produktů ThePixelstick a projít si ukázky, dá to dobrou představu, o čem je řeč. Prostě máme "tyč" obsahující určitý počet RGB LED (v originálu 200) a k tomu řídící modul s čtečkou SD karty. Na ni nahrajeme bitmapu v šířce dané počtem LED (zde 200px). Po stisku tlačítka se soubor přehraje, při pohybu sticku je výsledkem vykreslení uloženého obrázku. Není co dodat, pokud to zaujme, lze uvažovat o pořízení.
Jelikož ale RGB LED a další díly nejsou nic nedostupného, lze uvažovat i o domácí výrobě s využitím široce rozšířených modulů Arduino. Není nijak překvapivé, že to už napadlo více lidí a tak lze navázat na ověřené návody. Za mne uznávám plný kredit dvěma zdrojům. Primárním zdrojem je Michael Ross, který publikoval toto zařízení již v roce 2015, nicméně osobně jsem se více držel modifikace od Dirka Essla, která byla publikovaná i na známém serveru Petapixel. Výhodou druhé verze jsou kompaktnější rozměry díky použití menšího Arduina a OLED displeje.

Co je třeba nakoupit a kolik to bude stát?
V zásadě musíme sehnat tyto položky:

  1. Pásek RGB LED WS2812, hustota 144 LED na metr. Délka pro začátek právě jeden metr, ale lze udělat i delší
  2. Arduino Mega 2560 PRO
  3. OLED displej 128x64pixel s I2C připojením
  4. Pětisměrný "minijoystick"
  5. Čtečku micro SD karty s SPI rozhraním
  6. Napájecí micro USB konektor

Začátek osazování, na místě je displej
a "joystick"
Díly pořídíme v různých bastlířských zdrojích, typicky Aliexpress, celková cena je cca 20USD. Kromě toho musíme později zařídit krabičku (u mne 3D tisk podle vlastního návrhu), nějakou lištu či profil k upevnění LED pásku atd.
Celkem vzato se nákladově určitě dostaneme pod 1000 korun, spíš pod 600 korun, rozdíl proti originálu je opravdu propastný. K tomu ještě nějakou nejlevnější micro SD kartu. I nejmenší existující kapacita je víc než dost, reálně by stačilo i tak 32MB (MB, ne GB!).

Vlastní stavba
Nemá cenu příliš komentovat, zkušenému bastlíři to bude jasné, naopak laik bez rutinních znalostí mikropájky a jednočipů nemá moc šanci. Musím říct, že v návodu od Dirka je jedna chyba (připojení SD čtečky), dál není zcela kompletní kód pro Arduino, ale po porovnání s informacemi od Michaela Rosse a trochu přemýšlení jsem to jako "vrabčí hnízdo" rozchodil během jediného večera.
Přidáno Arduino
Nejde skutečně o žádnou "raketovou vědu", jsou ale přeci jen nutné základní znalosti a vybavení z elektroniky (multimetr, mikropájka, atd.), bez nich to zkrátka nejde.
Následoval návrh krabičky pro 3D tisk, to obnášelo chvíli kreslení ve SketchUP a mohlo se jít kompletovat. Podotýkám, že krabička na fotkách vznikla dost odhadem s tím, že provedení upřesním po prvním prototypu (už se stalo), naopak montáž pomocí silikonového lepidla jak je na fotkách je osvědčená praxe, to nedodělek není.

Umístění čtečky SD,
ve finále je přilepena k vrchnímu krytu
LED strip jsem pro první prototyp přilepil k obyčejné smrkové liště 10x10mm (to byla chyba, chce to 12x10). Napájení je přes microUSB z jakékoli powerbanky.

Praktické testy
Prvním krokem je příprava souborů, lze v podstatě v jakémkoli programu, který umí uložit BMP formát. Zvolený obrázek upravíme na šířku 144px, je si nutno uvědomit, že se promítá po řádcích, takže je vhodné otočit o 90 stupňů.
Soubory pak uložíme na SD kartu. Drobné omezení je, že nejsou dostupné dlouhé názvy souborů, musíme se vejít do MS DOS klasiky s 8mi znaky (plus .BMP přípona), je vhodné si v názvech najít nějaký systém, aby se inteligentně řadily, například začínat čísly, které udávají skupinu atd.
Displej - položka výběr souboru
Ovládání je snadné - joystickem vybereme soubor (left-right), případně nejprve upravíme jas a rychlost přehrávání (up-down pro další položky) a pak stiskem spustíme přehrávání. Následně během přehrávání posunujeme stick a výsledkem je třeba AngryBird :-)

Praktické použití je přirozeně o zkušenostem, zatím mám za sebou jen první kroky. Při tom se objevuje řada zkušeností. Vyloženě vtipné bylo zjištění, že nepřijatelný je tisk z průhledného plastu, protože přes něj svítí indikační diody Arduina a na fotce je to perfektně vidět. Napravil kus izolačky, příští kus bude neprůhledný.
Dále jsem k došel k závěru, že mne hodně otravuje kabel k powerbance, přidám proto LiION akumulátor přímo na stick (už připraveno).
Ukázka RGB LED pásku
Volitelně bude třeba přidat rozptylku před LED, bez ní jsou vidět jednotlivě, což je prima třeba na Space Invadera, kterému "8bit look" vyloženě sluší, u jiných motivů to ale už tak žádoucí není. Ale na první pokus převládá spokojenost a určitě je to zcela použitelné, problémy jsou plně řešitelné.
Domnívám se, že cca do 14ti dnů udělám přestavbu na "verzi 2", která již bude velmi podstatně dotaženější...

Něco závěrem?
Ani ne, beru to jako pěknou ukázku DIY projektu, která se finančně vyplatí docela výrazně. Proti originálu PixelStick asi nebude řešení nikdy tak elegantní, na druhé straně čistě z hlediska funkčnosti podle mne po aplikaci zmíněných vylepšení nebude rozdíl téměř žádný. Kladem je i možnost úprav, popsaný stick je jeden metr a 144LED, bez jakýchkoli potíží ale jde například upravit na 2m/288px a s trochu větším úsilím (změny napájení) by měl jít i třeba "monster" ve stylu 4m/576px. Přitom cena by pořád byla velmi rozumná.
Pouze upozorňuji, že uvedené velmi příjemné ceny jsou dosažitelné opravdu při schopnosti domácího bastlení pro vlastní potřebu. Kdybych se s tím měl dělat pro někoho jiného, byť neoficiálně, tak by sice cena byla pořád zásadně menší než u originálu, ale těch čistě nákladových dejme tomu 600 korun bez SD by to už znatelně přesáhlo.
Avada kedavra, ty hnusný AngryBirde
Chráníme Zemi před šmejdem z vesmíru
Zelené stopy u Invaderů 
jsou právě ta v textu zmíněná 
dioda prosvítající  krabičkou :-)


Žádné komentáře: