a circuit playground express wizard staff
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

54 lines
1.4 KiB

from wzrd_util import *
# Accelerometer stuff not used at the moment:
# import adafruit_lis3dh
# import digitalio
import adafruit_thermistor
import analogio
import blinkenring
import board
import busio
import neopixel
import time
import urandom
# Hardware SPI setup for accelerometer, maybe (does not work):
# spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
# cs = digitalio.DigitalInOut(board.D8) # Set to appropriate CS pin!
# lis3dh = adafruit_lis3dh.LIS3DH_SPI(spi, cs)
# https://github.com/adafruit/Adafruit_CircuitPython_Thermistor
thermistor = adafruit_thermistor.Thermistor(board.TEMPERATURE, 10000, 10000, 25, 3950)
random_pin = analogio.AnalogIn(board.A4)
photocell = analogio.AnalogIn(board.A8)
# Initial setup:
tick_duration = 0.1
last_photocell = photocell_value(photocell)
frame = 0
max_frame = 30
max_bright = 0.35
ext_ring = blinkenring.BlinkenRing(board.A3, 24, 6)
onboard_ring = blinkenring.BlinkenRing(board.NEOPIXEL, 10, 5)
# ext_ring.party_mode = True
# onboard_ring.party_mode = True
while True:
frame += 1
ext_ring.animate()
onboard_ring.animate()
if frame == int(max_frame / 2):
ext_ring.set_color(get_color_for_temp(thermistor.temperature))
# reset frame counter
if frame > max_frame:
urandom.seed(random_pin.value)
onboard_ring.set_color(ext_ring.get_color())
ext_ring.randomize_color()
frame = 0
time.sleep(tick_duration)