Skip to content

Commit

Permalink
Merge pull request #33 from kattni/example-update
Browse files Browse the repository at this point in the history
Cosmetic fixes, updated rainbow_cycle
  • Loading branch information
caternuson authored Oct 17, 2018
2 parents 4b9563d + c7b1bc5 commit 8b1124c
Showing 1 changed file with 48 additions and 35 deletions.
83 changes: 48 additions & 35 deletions examples/neopixel_simpletest.py
Original file line number Diff line number Diff line change
@@ -1,61 +1,74 @@
# CircuitPython demo - NeoPixel

import time
import board
import neopixel


# On CircuitPlayground Express -> Board.NEOPIXEL
# Otherwise choose an open pin connected to the Data In of the NeoPixel strip,
# such as board.D1
# pylint: disable=no-member
pixpin = board.NEOPIXEL
# On CircuitPlayground Express, and boards with built in status NeoPixel -> board.NEOPIXEL
# Otherwise choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D1
pixel_pin = board.NEOPIXEL

# The number of pixels in the strip
numpix = 10
# The number of NeoPixels
num_pixels = 10

# number of colors in each pixel, =3 for RGB, =4 for RGB plus white
BPP = 3
# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!
# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.
ORDER = neopixel.GRB

strip = neopixel.NeoPixel(pixpin, numpix, bpp=BPP, brightness=0.3, auto_write=False)
pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.2, auto_write=False,
pixel_order=ORDER)

def format_tuple(r, g, b):
if BPP == 3:
return (r, g, b)
return (r, g, b, 0)

def wheel(pos):
# Input a value 0 to 255 to get a color value.
# The colours are a transition r - g - b - back to r.
if (pos < 0) or (pos > 255):
return format_tuple(0, 0, 0)
if pos < 85:
return format_tuple(int(pos * 3), int(255 - (pos*3)), 0)
if pos < 170:
if pos < 0 or pos > 255:
r = g = b = 0
elif pos < 85:
r = int(pos * 3)
g = int(255 - pos*3)
b = 0
elif pos < 170:
pos -= 85
return format_tuple(int(255 - pos*3), 0, int(pos*3))
pos -= 170
return format_tuple(0, int(pos*3), int(255 - pos*3))
r = int(255 - pos*3)
g = 0
b = int(pos*3)
else:
pos -= 170
r = 0
g = int(pos*3)
b = int(255 - pos*3)
return (r, g, b) if ORDER == neopixel.RGB or ORDER == neopixel.GRB else (r, g, b, 0)


def rainbow_cycle(wait):
for j in range(255):
for i in range(strip.n):
idx = int((i * 256 / len(strip)) + j)
strip[i] = wheel(idx & 255)
strip.show()
for i in range(num_pixels):
pixel_index = (i * 256 // num_pixels) + j
pixels[i] = wheel(pixel_index & 255)
pixels.show()
time.sleep(wait)


while True:
strip.fill(format_tuple(255, 0, 0))
strip.show()
# Comment this line out if you have RGBW/GRBW NeoPixels
pixels.fill((255, 0, 0))
# Uncomment this line if you have RGBW/GRBW NeoPixels
# pixels.fill((255, 0, 0, 0))
pixels.show()
time.sleep(1)

strip.fill(format_tuple(0, 255, 0))
strip.show()
# Comment this line out if you have RGBW/GRBW NeoPixels
pixels.fill((0, 255, 0))
# Uncomment this line if you have RGBW/GRBW NeoPixels
# pixels.fill((0, 255, 0, 0))
pixels.show()
time.sleep(1)

strip.fill(format_tuple(0, 0, 255))
strip.show()
# Comment this line out if you have RGBW/GRBW NeoPixels
pixels.fill((0, 0, 255))
# Uncomment this line if you have RGBW/GRBW NeoPixels
# pixels.fill((0, 0, 255, 0))
pixels.show()
time.sleep(1)

rainbow_cycle(0.001) # rainbowcycle with 1ms delay per step
rainbow_cycle(0.001) # rainbow cycle with 1ms delay per step

0 comments on commit 8b1124c

Please sign in to comment.