kico-r4/lib/rgb1602/examples.py

46 lines
1.3 KiB
Python

from time import sleep
from rgb1602.colours import CSS_COLOURS, WAVESHARE_COLOURS
from rgb1602.display import Screen
def _show_colours(
screen: Screen,
delay: int,
colours: dict[str, tuple[int, int, int]],
colour_set_name: str,
) -> None:
original_rgb = screen.current_colour
for colour_name, rgb in sorted(colours.items()):
screen.set_rgb(*rgb)
screen.update(colour_set_name, colour_name)
sleep(delay)
screen.set_rgb(*original_rgb)
def show_css_colours(screen: Screen, delay: int = 2) -> None:
_show_colours(screen, delay, CSS_COLOURS, "CSS named colour")
def show_waveshare_colours(screen: Screen, delay: int = 2) -> None:
_show_colours(screen, delay, WAVESHARE_COLOURS, "Waveshare")
def show_discoloration_sample(screen: Screen) -> None:
from math import sin
screen.update(f"Waveshare", "Hello, world!")
t = 0
while True:
r = int((abs(sin(3.14 * t / 180))) * 255)
g = int((abs(sin(3.14 * (t + 60) / 180))) * 255)
b = int((abs(sin(3.14 * (t + 120) / 180))) * 255)
t = (t + 3) % 360
screen.set_rgb(r, g, b)
screen.write_at_position(
str(t).encode() + screen.special_char("°") + b" ", col=10, row=0
)
sleep(0.3)