Pojďme programovat elektroniku

Programování elektroniky: Vánoční stromeček s Wi-Fi a ovládáním přes web

  • Nastal čas zdobení vánočního stromečku
  • My si ho ozdobíme pomocí Pythonu 3 a z webového prohlížeče
  • Dnes si totiž naprogramujeme modul s 25 RGB LED pro Raspberry Pi

Za pár dnů tu jsou Vánoce, a tak nastal čas na zdobení stromečku. My si ho dnes také rozsvítíme, namísto vzrostlé jedličky ale rozblikáme 3D RGB Xmas Tree for Raspberry Pi od The Pi Hutu, kde jej na poslední chvíli seženete za 18 eur.

V nabídce jej má i český RPishop.cz, ze kterého jsme jej kvůli časové tísni nakonec objednali i my. V tomto případě vás přijde na 548 kaček. Stromeček zapojíme do maličkého Raspberry Pi Zero 2 W s Wi-Fi a pomocí knihovny Tornado na něm spustíme jednoduchý ovládací webový server.

Podívejte se na video sestavení stromečku a ovládání z webového prohlížeče:

Kompletní zdrojový kód článku najdete na GitHubu našeho seriálu

Vylamovací stavebnice s 25 RGB LED

Domů vám dorazí plošný spoj ve formě vylamovacích dílů stavebnice. Základní tělo totiž ještě doplníte dvojicí postranních křídel, které se zacvakávají pomocí běžných samčích pinů s klasickou prototypovacích roztečí 2,54 mm. Vše perfektně sedí pohromadě, takže není třeba ani pájení!

Klepněte pro větší obrázek
Stromeček dorazí v podobě vylamovací stavebnice

Na stromečku najdete 25 adresovatelných RGB LED a na GitHubu knihovnu rgbxmastree pro jejich snadné ovládání v Pythonu 3. Kód vyžaduje ještě knihovnu GPIO Zero, ta by však už měla být součástí operačního systému Raspberry Pi OS a to včetně verze Lite.

Pouhé tři řádky v Pythonu

Práce se sérií adresovatelných RGB LED je pak naprosto jednoduchá a zvládne to i naprostý zelenáč. Kdybychom chtěli celý stromeček rozsvítit plnou červenou barvou modelu RGB (FF, 00, 00), úryvek kódu bude vypadat takto:

from tree import RGBXmasTree
stromecek = RGBXmasTree()
stromecek.color = (1, 0, 0)

Ano, stačí pouhé tři řádky kódu v Pythonu!

Klepněte pro větší obrázek
Stromeček má 25 adresovatelných RGB LED

Knihovna pamatuje ještě na nastavení společného jasu diod v rozsahu 0 až 1, přičemž výchozí hodnota je 0,5. Takže kdybychom chtěli nastavit jas na desetinu, napíšeme:

stromecek.brightness = 0.1

Při práci s osmibitovým barevným modelem RGB jsme zpravidla zvyklí na rozsah intenzity jednotlivých kanálů 0 až 255 (0 až FF). Knihovna ale pracuje s rozsahem 0 až 1, takže 50% intenzitu červeného kanálu nastavíme namísto hodnotou 125 hodnotou 0,5. Pokud bychom chtěli pracovat s tradičním rozsahem 0 až 25, musíte si napsat vlastní přepočet (najdete jej v kódu).

Tento článek je součástí balíčku PREMIUM+

Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.

Vyzkoušet za 1 Kč Nebo samostatné Živě Premium
Váš názor Další článek: Škoda Auto spoléhá na 3D farmy. Tiskne chybějící díly i nástroje pro dělníky

Témata článku: Programování, Pojďme programovat elektroniku, Wi-Fi, Python, Arduino, Raspberry Pi, GitHub, SIGINT, Library, RGB, Tornado, Type-B, False, Hue, None, Color, WWW, Import, HTML, CTRL + C, Hvězda, GPI, Raspberry Pi OS, Stromeček, LED