2 Commits

Author SHA1 Message Date
topsinoty
14ec691c13 add generated christmas lights 2025-12-19 15:42:39 +02:00
AndreeUuetoa
081ace80c9 Fix imports 2023-02-24 14:21:20 +02:00
14 changed files with 57 additions and 54 deletions

View File

@@ -1,7 +1,7 @@
from lib.Config import Config from pyleds.lib.Config import Config
from lib.LoopSwitch import LoopSwitch from pyleds.lib.LoopSwitch import LoopSwitch
from lib.Regions import Regions from pyleds.lib.Regions import Regions
from lib.Tempo import Tempo from pyleds.lib.Tempo import Tempo
class Litsimaja(object): class Litsimaja(object):

View File

@@ -1,5 +1,5 @@
from lib.Litsimaja import Litsimaja from pyleds.lib.Litsimaja import Litsimaja
from lib.LoopSwitch import LoopSwitch from pyleds.lib.LoopSwitch import LoopSwitch
class Program: class Program:

View File

@@ -1,6 +1,6 @@
from os import scandir from os import scandir
from lib.Litsimaja import Litsimaja from pyleds.lib.Litsimaja import Litsimaja
from lib.Program import Program from pyleds.lib.Program import Program
def resolve(namespace: str, class_name: str): def resolve(namespace: str, class_name: str):

View File

@@ -1,5 +1,5 @@
import atexit import atexit
from lib.Color import Color from pyleds.lib.Color import Color
class _LedData(object): class _LedData(object):

View File

@@ -1,7 +1,7 @@
from threading import Thread from threading import Thread
from tkinter import Tk, Label from tkinter import Tk, Label
from .FakeStrip import FakeStrip from FakeStrip import FakeStrip
from lib.Color import Color_to_list from pyleds.lib.Color import Color_to_list
from time import sleep from time import sleep
import numpy as np import numpy as np
from PIL import Image, ImageTk from PIL import Image, ImageTk

View File

@@ -1,6 +1,6 @@
from threading import Thread from threading import Thread
from tkinter import Tk, Canvas from tkinter import Tk, Canvas
from lib.strip.FakeStrip import FakeStrip from pyleds.lib.strip.FakeStrip import FakeStrip
import time import time

View File

@@ -2,7 +2,7 @@
# Ported by Peter # Ported by Peter
# Palun! # Palun!
from lib.Program import Program from pyleds.lib.Program import Program
import time import time
import random import random

View File

@@ -3,7 +3,7 @@
# Mis m6tted tulevad kui kuuled "MegaMix"? # Mis m6tted tulevad kui kuuled "MegaMix"?
# m6tlen et millal jooma saaks hakata # m6tlen et millal jooma saaks hakata
from lib.Program import Program from pyleds.lib.Program import Program
import time import time
import random import random

View File

@@ -0,0 +1,38 @@
from pyleds.lib.Program import Program
from rpi_ws281x import Color
import time
def name():
return 'Christmas Lights'
class Christmas(Program):
def run(self, args: [] = None):
# Configuration
wait_ms = 100 # Speed of the animation
# Define classic festive colors
RED = Color(255, 0, 0)
GREEN = Color(0, 255, 0)
WARM_WHITE = Color(200, 180, 60) # A golden-ish warm white
colors = [RED, GREEN, WARM_WHITE]
# This determines how many pixels of the same color are next to each other
group_size = 2
offset = 0
while self.get_loop().status():
num_pixels = self._lm.count_pixels()
for i in range(num_pixels):
# Calculate which color index to use based on pixel position and current offset
# This creates the "moving" effect
color_index = ((i + offset) // group_size) % len(colors)
self._lm.set_pixel_color(i, colors[color_index])
self._lm.show()
# Increment offset to move the lights
offset = (offset + 1) % (len(colors) * group_size)
time.sleep(wait_ms / 1000.0)

View File

@@ -1,4 +1,4 @@
from lib.Program import Program from pyleds.lib.Program import Program
from rpi_ws281x import Color from rpi_ws281x import Color
import time import time

View File

@@ -1,4 +1,4 @@
from lib.Program import Program from pyleds.lib.Program import Program
import time import time

View File

@@ -1,4 +1,4 @@
from lib.Program import Program from pyleds.lib.Program import Program
def name(): def name():

View File

@@ -1,35 +0,0 @@
from lib.Program import Program
from rpi_ws281x import Color
import time
def name():
return 'Vikermasetsus'
def wheel(pos):
"""Generate rainbow colors across 0-255 positions."""
if pos < 85:
return Color(pos * 3, 255 - pos * 3, 0)
elif pos < 170:
pos -= 85
return Color(255 - pos * 3, 0, pos * 3)
else:
pos -= 170
return Color(0, pos * 3, 255 - pos * 3)
class Vikermasetsus(Program):
def run(self, args: [] = None):
wait_ms = 20
iterations = 5
while self.get_loop().status():
"""Draw rainbow that uniformly distributes itself across all pixels."""
for j in range(256 * iterations):
if not self.get_loop().status():
break
for i in range(self._lm.count_pixels()):
self._lm.set_pixel_color(i, wheel(
(int(i * 2560 / self._lm.count_pixels()) + j) & 255))
self._lm.show()
time.sleep(wait_ms / 1000.0)

View File

@@ -1,5 +1,5 @@
from lib.Program import Program from pyleds.lib.Program import Program
from lib.Litsimaja import Litsimaja from pyleds.lib.Litsimaja import Litsimaja
def Color(red, green, blue): def Color(red, green, blue):