Cyber clock

OctopusLAB 65
Cyber (matrix) clock – velké digitálné hodiny.


Jelikož nás baví moderní technologie i jejich kulturní přesah, zkusili jsme se tentokrát zapojit i do poněkud netradičního projektu. Měli jsme možnost spolupracovat na několika „atrakcích“ prvního ročníku CyberTown 22. V minulém díle jsme popisovali PONG1D, který slavil na akci mimořádný úspěch. Dnes vám přiblížíme relativně jednoduché digitální hodiny, které jsme v duchu akce pojmenovali stylově cyber clock.
Na následujícím obrázku jsou snad trochu vidět (čas 22:12).

Cybertown je postcyberpunkový multižánrový festival zasazený do fiktivní dystopické budoucnosti. Odehrává se v kulisách postapokalyptického městečka na bývalé raketové základně. Uvádějí stručně pořadatelé na stánkách www.cybertown.cz/.

Základem zadání bylo navrhnout a vyrobit „retro digitání hodiny na bránu u radnice“. Pokud možno zadarmo a pokud možno včera. Požadované rozměry byly zhruba 120×50 cm. Tak velké segmenty nemáme. Ano, šlo by to složit z jednotlivých LEDek nebo žárovek, ale tolik času na to nebylo.

Už při tvorbě PONGU jsem si vzpomenul, že sériové „programovatelné“ LEDky se dají propojovat v prostoru do jednotlivých řad, které pak tvoří plochu, na které půjdou hodiny snadno naprogramovat. A protože jsem to chtěl hned rychle zkusit, LED pásek jsem jen cik-cak smotal do požadovaného tvaru, aniž bych musel něco stříhat a drátkama složitě propojovat. Použil jsem ESP32 v DoIT adapteru a již popisovaný modul reálného času ds3231 a hlavně „programovatelný“ LED pásek (s ws2812).
A hrubý základ pro hodiny byl velmi rychle hotový.

Na obrázku vidíte, jak je pásek „smotán“. Určili jsme si „mezery“ (zelené body), které se nevyužívají a slouží jen k propojení a zachování kompaktnosti. Je nutné odlišit sudé a liché řádky (1 až 5), jelikož se pro ně vykreslují body číslovek v opačném pořadí. V dolní části obrázku je vidět, kde jsou na kousku rozvinu pásku LEDky tvořící číslice „2“ a „3“. Sudý řádek je pak indexován reverzně.
Matice čísel pro jednotlivé číslovky se nachází v samostatném modulu assets/char4x7.py, kde je přesně definováno, které LEDky v daných číslech svítí. Máme náznak i pro jiné znaky a velikosti, ale pouze tato jedna knihovna je dokončená a odzkoušená.
Výsledný program včetně nových knihoven je opět na githubu:
https://github.com/octopuslab-cz/cyber-clock

import ds3231                # real time
from assets.char4x7 import * # matrix
....
ws = Rgb(27,WSMAX)           # 27 DEV3

""" ROW -----+ odd           ---o
          RX |               RXX  o
        +----+ even          ---o
"""
# --- LED strip --> 
WSMAX = 250
RX, RXX = 25, 3             # row, space
INTENSITY = 200             # intenzita

Opět jen seznámení s nejdůležitějšími konstantami používanými v programu:
WSMAX – celkový počet LEDek v pásku
RX – počet LEDek na jednom řádku (na našem obrázku by to bylo 10, 4+2+4).
RXX – počet nevyužitých LEDek (v ohybu) máme také 3 (na obrázku zelené).
INTENSITY – intenzita jasu, v šeru stačí 100, ale ve dne bylo lepší 200.

Pásek jsme přichytili k odřezku plastového parapetu a celý displej překryli vrstvou Miralonu (slouží jako difuzor pro rozplýlení světla). Finální ochranu tvoří dutinková polykarbonátová deska vsazená mezi dva odřezky z pozinkovaných profilů využívaných pro sádrokartony.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.