File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed
Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change 1+ import time
2+ import machine
3+ from esp import neopixel_write
4+
5+ class NeoPixel :
6+ def __init__ (self , pin , n ):
7+ self .pin = pin
8+ self .n = n
9+ self .buf = bytearray (n * 3 )
10+
11+ def __setitem__ (self , index , val ):
12+ r , g , b = val
13+ self .buf [index * 3 ] = g
14+ self .buf [index * 3 + 1 ] = r
15+ self .buf [index * 3 + 2 ] = b
16+
17+ def __getitem__ (self , index ):
18+ i = index * 3
19+ return self .buf [i ], self .buf [i + 1 ], self .buf [i + 2 ]
20+
21+ def write (self ):
22+ neopixel_write (self .pin , self .buf , True )
23+
24+ def test ():
25+ # put a neopixel strip on GPIO4
26+ p = machine .Pin (4 , machine .Pin .OUT )
27+ np = NeoPixel (p , 8 )
28+ n = np .n
29+
30+ # cycle
31+ for i in range (4 * n ):
32+ for j in range (n ):
33+ np [j ] = (0 , 0 , 0 )
34+ np [i % n ] = (255 , 255 , 255 )
35+ np .write ()
36+ time .sleep_ms (25 )
37+
38+ # bounce
39+ for i in range (4 * n ):
40+ for j in range (n ):
41+ np [j ] = (0 , 0 , 128 )
42+ if (i // n ) % 2 == 0 :
43+ np [i % n ] = (0 , 0 , 0 )
44+ else :
45+ np [n - 1 - (i % n )] = (0 , 0 , 0 )
46+ np .write ()
47+ time .sleep_ms (60 )
48+
49+ # fade in/out
50+ for i in range (0 , 4 * 256 , 8 ):
51+ for j in range (n ):
52+ if (i // 256 ) % 2 == 0 :
53+ val = i & 0xff
54+ else :
55+ val = 255 - (i & 0xff )
56+ np [j ] = (val , 0 , 0 )
57+ np .write ()
58+
59+ # clear
60+ for i in range (n ):
61+ np [i ] = (0 , 0 , 0 )
62+ np .write ()
63+
64+ test ()
You can’t perform that action at this time.
0 commit comments