3D RGB vánoční stromeček pro Raspberry Pi
Přinášíme vám návod na složení a naprogramování 3D vánočního stromečku, který je určen pro počítače Raspberry Pi. Obsahuje 25 super jasných, individuálně adresovatelných RGB LED diod, které můžete libovolně programovat a vytvořit si tak ideální vánoční atmosféru.

Díky kódování můžete ovládat každé LED světýlko – měnit barvy, nastavit jas nebo je jen zapnout a vypnout. Nebo můžete zkombinovat všechny možnosti a vytvořit působivou světelnou show přesně podle vaší fantazie! 3D RGB vánoční stromeček funguje s jakýmkoli 40pinovým Raspberry Pi.

Návod k sestavení
Tento projekt nevyžaduje žádné pájení, stačí pouze vystřihnout jednotlivé dílky z rámu, složit je dohromady, správně nasadit na počítač a naprogramovat podle svého přání.
krok 1
Pomocí kleští opatrně vystříhejte jednotlivé díly stromku z rámečku. Dejte pozor, abyste ho nepoškodili. Případné ostré hrany můžete začistit malým pilníkem nebo smirkovým papírem.

krok 2
Nyní nasaďte dvě „křídla“ do střední části stromečku do připravených otvorů. Ty jsou navrženy tak, aby poskytovaly dostatečně pevné ukotvení bez potřeby pájení. A je jedno, které křídlo nasadíte zepředu nebo zezadu.
Poznámka: Piny křídel můžete k hlavní části stromku připájet, konstrukce tak bude pevnější. Tím se ale připravíte o možnost stromek po Vánocích složit „na placku“ a bude tak zabírat více místa při skladování.
krok 3
Složený stromek vsaďte do GPIO headeru desky počítače. Pozor! Zde je orientace pinů velmi důležitá!

Máme téměř hotovo! Teď už jen stačí naprogramovat malinu tak, aby ledková světélka stromečku svítila nebo blikala přesně podle Vašich požadavků.

Schéma a rozložení pinů

číslování pinů:
hvězda: GPIO 2
světýlka: GPIO 4, 15, 13, 21, 25, 8, 5, 10, 16, 17, 27, 26, 24, 9, 12, 6, 20, 19, 14, 18, 11, 7, 23 a 22
pin #6: slouží k uzemnění (GND)
Programování základních funkcí
1) otevřete libovolný textový dokument
2) zkopírujte do něj kód
3) uložte jako vas_nazev.py
4) otevřete terminál a zadejte adresu, kam Jste uložili tento dokument _ například cd /documenty/rgbxmastree/
5) sudo python3 vas_nazev.py
Rychlý začátek s Raspberry Pi Zero
Nejjednodušší způsob ovládání vánočního stromečku je pomocí GPIO na desce Raspberry Pi Zero. Tento je předinstalovaný v Raspbian Stretch:
sudo apt-get install python-gpiozero python3-gpiozero
Tento příkaz nastaví všechny červené LED tak, aby blikaly náhodně:
from gpiozero import LEDBoard
from gpiozero.tools import random_values
from signal import pause
tree = LEDBoard(*range(2,28),pwm=True)
for led in tree:
led.source_delay = 0.1
led.source = random_values()
pause()
Začínáme
Začněte stažením souboru vánočního stromu. Otevřete terminál a zadejte:
wget https://bit.ly/2Lr9CT3 -O tree.py
Otestujte strom spuštěním python3 tree.py (nebo jej spusťte z IDE, jako je Mu, Thonny nebo IDLE). Všechna světla by se měla rozsvítit (bíle).
Když píšete svůj vlastní kód Python, ujistěte se, že tento soubor máte ve stejné složce.
Pokud používáte Raspbian Desktop, nemusíte nic instalovat. Jestliže používáte Raspbian Lite, budete muset nainstalovat gpiozero pomocí:
sudo apt install python3-gpiozero
Otevřete Python shell nebo IDE, importujte RGBXmasTree a inicializujte svůj strom:
from tree import RGBXmasTree
tree = RGBXmasTree()
Změna barvy
Můžete nastavit barvu všech LED společně pomocí hodnot RGB (všechny 0-1):
from tree import RGBXmasTree
tree = RGBXmasTree()
tree.color = (1, 0, 0)
Případně můžete využít colorzero knihovnu:
from tree import RGBXmasTree
from colorzero import Color
tree = RGBXmasTree()
tree.color = Color(‘red‘)
Můžete napsat smyčku a opakovaně procházet červenou, zelenou a modrou:
from tree import RGBXmasTree
from colorzero import sleep
tree = RGBXmasTree()
colors = [(1, 0, 0), (0, 1, 0), (0, 0, 1)]
for color in colors:
tree.color = color
sleep(1)




Individuální ovládání
Můžete také ovládat každou LED jednotlivě, například každou z nich rozsvítit červeně, jednu po druhé:
from tree import RGBXmasTree
from time import sleep
tree = RGBXmasTree()
for pixel in tree:
pixel.color = color (1, 0, 0)
sleep(1)
Chcete-li ovládat konkrétní světýlko, můžete k němu přistupovat podle jeho indexového čísla (0-24):
tree[0].color = (0, 1, 0)
Změna jasu
Jas můžete změnit od 0 do 1 – výchozí je 0,5. Toto můžete nastavit při inicializaci stromu:
from tree import RGBXmasTree
tree = RGBXmasTree(brightness=0.1)
Případně jej můžete změnit po inicializaci:
from tree import RGBXmasTree
tree = RGBXmasTree()
tree.brightness = 0.1
Úroveň 1 je extrémně jasná, LED diody i při úrovni jasu 0,1 svítí dostatečně.
Další příklady programování
Cyklus všech odstínů
Procházejte všechny barvy v nekonečném cyklu.
from tree import RGBXmasTree
from colorzero import Color, Hue
tree = RGBXmasTree()
tree.color = Color(‘red‘)
try:
while True:
tree.color += Hue(deg=1)
except KeyboardInterrupt:
tree.close()
Jedna barva po druhé
Procházejte červenou, zelenou a modrou barvou a měňte je postupně.
from tree import RGBXmasTree
from colorzero import Color, Hue
tree = RGBXmasTree()
colors = [Color(‘red‘), Color(‘green‘), Color(‘blue‘)] # přidejte další, pokud chcete
try:
while True:
for color in colors:
for pixel in tree:
pixel.color = color
except KeyboardInterrupt:
tree.close()
RGB cyklus
Procházejte červenou, zelenou a modrou barvou a měňte je všechny najednou.
from tree import RGBXmasTree
from colorzero import Color, Hue
from time import sleep
tree = RGBXmasTree()
colors = [Color(‘red‘), Color(‘green‘), Color(‘blue‘)] # přidejte další, pokud chcete
try:
while True:
for color in colors:
tree.color = color
sleep(1)
except KeyboardInterrupt:
tree.close()
Náhodné rozsvěcování
Náhodné rozsvěcování všech barev.
from tree import RGBXmasTree
from colorzero import Color, Hue
tree = RGBXmasTree()
def random_color():
r = random.random()
g = random.random()
b = random.random()
return (r, g, b)
try:
while True:
pixel = random.choice(tree)
pixel.color = random_color()
except KeyboardInterrupt:
tree.close()
Další zdroje
Další tipy na programování najdete na: https://github.com/rendzina/XmasTree?tab=readme-ov-file.