|
|
- 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)
|