summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-02-11 13:21:07 +0000
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-03-26 10:55:29 +0200
commitc33a76059f24ea1b07ca266bc69816d3f1ccbf6b (patch)
treeacaaaa76c38540e518687c78b51a12eb9e30429b
parent3962766be08f0ccd81bedab1a5d1d8f6468f972e (diff)
downloadmicropython-c33a76059f24ea1b07ca266bc69816d3f1ccbf6b.tar.gz
micropython-c33a76059f24ea1b07ca266bc69816d3f1ccbf6b.zip
esp8266/tests: Add neopixel.py test.
-rw-r--r--esp8266/tests/neopixel.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/esp8266/tests/neopixel.py b/esp8266/tests/neopixel.py
new file mode 100644
index 0000000000..7717bb496b
--- /dev/null
+++ b/esp8266/tests/neopixel.py
@@ -0,0 +1,64 @@
+import time
+import machine
+from esp import neopixel_write
+
+class NeoPixel:
+ def __init__(self, pin, n):
+ self.pin = pin
+ self.n = n
+ self.buf = bytearray(n * 3)
+
+ def __setitem__(self, index, val):
+ r, g, b = val
+ self.buf[index * 3] = g
+ self.buf[index * 3 + 1] = r
+ self.buf[index * 3 + 2] = b
+
+ def __getitem__(self, index):
+ i = index * 3
+ return self.buf[i], self.buf[i + 1], self.buf[i + 2]
+
+ def write(self):
+ neopixel_write(self.pin, self.buf, True)
+
+def test():
+ # put a neopixel strip on GPIO4
+ p = machine.Pin(4, machine.Pin.OUT)
+ np = NeoPixel(p, 8)
+ n = np.n
+
+ # cycle
+ for i in range(4 * n):
+ for j in range(n):
+ np[j] = (0, 0, 0)
+ np[i % n] = (255, 255, 255)
+ np.write()
+ time.sleep_ms(25)
+
+ # bounce
+ for i in range(4 * n):
+ for j in range(n):
+ np[j] = (0, 0, 128)
+ if (i // n) % 2 == 0:
+ np[i % n] = (0, 0, 0)
+ else:
+ np[n - 1 - (i % n)] = (0, 0, 0)
+ np.write()
+ time.sleep_ms(60)
+
+ # fade in/out
+ for i in range(0, 4 * 256, 8):
+ for j in range(n):
+ if (i // 256) % 2 == 0:
+ val = i & 0xff
+ else:
+ val = 255 - (i & 0xff)
+ np[j] = (val, 0, 0)
+ np.write()
+
+ # clear
+ for i in range(n):
+ np[i] = (0, 0, 0)
+ np.write()
+
+test()