aboutsummaryrefslogtreecommitdiff
path: root/NeoRuntime/builtin/fade/script.py
blob: 8fe902a53d399c4bfdf3db02186b41e7aa9d1f86 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from luxcena_neo import NeoBehaviour, IntegerVariable

def wheel(pos):
    """Generate rainbow colors across 0-255 positions."""
    if pos < 85:
        return (pos * 3, 255 - pos * 3, 0)
    elif pos < 170:
        pos -= 85
        return (255 - pos * 3, 0, pos * 3)
    else:
        pos -= 170
        return (0, pos * 3, 255 - pos * 3)

class Main(NeoBehaviour):

    def declare_variables(self):
        self.declare(IntegerVariable("speed", 2, min_val=1, max_val=50))

    def on_start(self):
        """ Execute when mode is selected. """
        self.i = 0

    def each_tick(self):
        self.i += self.var.speed
        if self.i > 255: self.i = 0
        for i in range(strip.num_pixels()):
            strip.set_pixel_color(i, wheel(self.i))
        strip.show()