Blog - 3D RGB Vánoční stromeček 1920x1080 px NÁVOD

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.

sestavený 3D RGB stromeček osazený na desce počítače Raspberry Pi 5

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.

místa pro oddělení desky od rámečku

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á!

správná pozice zapojení pinů

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ů.

velmi pěkně vypadá stromeček usazený na Raspberry Pi Zero v originální krabičce

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.

Podobné příspěvky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *