NodeMCU Projects: Difference between revisions

Content added Content deleted
m (Protected "NodeMCU Projects" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite) [Delete=Allow only logged in users] (indefinite)))
(→‎NeoPixel: new version)
Line 66: Line 66:
import neopixel
import neopixel
import time
import time
import urandom


pin = machine.Pin(14, machine.Pin.OUT)
pin = machine.Pin(14, machine.Pin.OUT)
np = neopixel.NeoPixel(pin, 16)
np = neopixel.NeoPixel(pin, 16)

def rand():
return urandom.getrandbits(8)


def cycle():
def cycle():
while True:
for i in range(16):
np[i] = (128,0,0)
np.write()
time.sleep_ms(25)

for i in range(16):
np[i] = (0,128,0)
np.write()
time.sleep_ms(25)

for i in range(16):
np[i] = (0,0,128)
np.write()
time.sleep_ms(25)

def circle():
for j in range(10):
x,y,z = rand(),rand(),rand()
for i in range(16):
for i in range(16):
np[i] = (255,0,0)
np[i] = (x,y,z)
np.write()
np.write()
time.sleep_ms(25)
time.sleep_ms(25)


def circle_rainbow():
for j in range(10):
for i in range(16):
for i in range(16):
np[i] = (0,255,0)
np[i] = (rand(),rand(),rand())
np.write()
np.write()
time.sleep_ms(25)
time.sleep_ms(25)


def fade():
for i in range(16):
np[i] = (0,0,255)
for i in range(0, 4 * 256, 8):
for j in range(16):
if (i // 256) % 2 == 0:
val = i & 0xff
else:
val = 255 - (i & 0xff)
np[j] = (val, 0, 0)
np.write()
np.write()
time.sleep_ms(25)
i += 10


for i in range(0, 4 * 256, 8):
def circle(x,y,z):
for i in range(16):
for j in range(16):
np[i] = (x,y,z)
if (i // 256) % 2 == 0:
np.write()
val = i & 0xff
time.sleep_ms(25)
else:
val = 255 - (i & 0xff)
np[j] = (0, val, 0)
np.write()


def demo(np):
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 i in range(0, 4 * 256, 8):
for j in range(n):
for j in range(16):
if (i // 256) % 2 == 0:
if (i // 256) % 2 == 0:
val = i & 0xff
val = i & 0xff
else:
val = 255 - (i & 0xff)
np[j] = (0, 0, val)
np.write()

def bounce():
for i in range(5):
x,y,z = rand(),rand(),rand()
for i in range(4 * 16):
for j in range(16):
np[j] = (x,y,z)
if (i // 16) % 2 == 0:
np[i % 16] = (0, 0, 0)
else:
else:
val = 255 - (i & 0xff)
np[16 - 1 - (i % 16)] = (0, 0, 0)
np[j] = (val, 0, 0)
np.write()
np.write()
time.sleep_ms(60)

# clear
for i in range(n):
np[i] = (0, 0, 0)
np.write()

# Under Construction
def rainbow():
pass


def off():
def off():
Line 140: Line 151:
np.write()
np.write()


cycle()
off()
time.sleep(1)

circle()
off()
time.sleep(1)

circle_rainbow()
off()
time.sleep(1)

fade()
off()
time.sleep(1)

bounce()
off()
off()
</syntaxhighlight>
</syntaxhighlight>