47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
# NanoS3 Helper Library
|
|
# MIT license; Copyright (c) 2023 Seon Rozenblum - Unexpected Maker
|
|
#
|
|
# Project home:
|
|
# https://nanos3.io
|
|
|
|
# Import required libraries
|
|
from micropython import const
|
|
from machine import Pin, ADC
|
|
import time
|
|
|
|
# TinyS3 Hardware Pin Assignments
|
|
|
|
# RGB LED Pins
|
|
RGB_DATA = const(41)
|
|
RGB_PWR = const(42)
|
|
|
|
# SPI
|
|
SPI_MOSI = const(35)
|
|
SPI_MISO = const(37)
|
|
SPI_CLK = const(36)
|
|
|
|
# I2C
|
|
I2C_SDA = const(8)
|
|
I2C_SCL = const(9)
|
|
|
|
|
|
# Helper functions
|
|
def set_pixel_power(state):
|
|
"""Enable or Disable power to the onboard NeoPixel to either show colour, or to reduce power for deep sleep."""
|
|
Pin(RGB_PWR, Pin.OUT).value(state)
|
|
|
|
|
|
# NeoPixel rainbow colour wheel
|
|
def rgb_color_wheel(wheel_pos):
|
|
"""Color wheel to allow for cycling through the rainbow of RGB colors."""
|
|
wheel_pos = wheel_pos % 255
|
|
|
|
if wheel_pos < 85:
|
|
return 255 - wheel_pos * 3, 0, wheel_pos * 3
|
|
elif wheel_pos < 170:
|
|
wheel_pos -= 85
|
|
return 0, wheel_pos * 3, 255 - wheel_pos * 3
|
|
else:
|
|
wheel_pos -= 170
|
|
return wheel_pos * 3, 255 - wheel_pos * 3, 0
|