From fbc6737f1eaafe27804358dbc5256d0f61f2c2f3 Mon Sep 17 00:00:00 2001 From: ZodiusInfuser Date: Mon, 1 Aug 2022 20:29:19 +0100 Subject: [PATCH] Finished feature_test.py --- .../examples/galactic_unicorn/feature_test.py | 119 ++++++++++++++++-- 1 file changed, 109 insertions(+), 10 deletions(-) diff --git a/micropython/examples/galactic_unicorn/feature_test.py b/micropython/examples/galactic_unicorn/feature_test.py index 616a06c8..462a94a4 100644 --- a/micropython/examples/galactic_unicorn/feature_test.py +++ b/micropython/examples/galactic_unicorn/feature_test.py @@ -1,18 +1,117 @@ +import time +import math from galactic import GalacticUnicorn +from picographics import PicoGraphics, DISPLAY_GALACTIC_UNICORN as DISPLAY gu = GalacticUnicorn() +graphics = PicoGraphics(DISPLAY) + +width = GalacticUnicorn.WIDTH +height = GalacticUnicorn.HEIGHT def gradient(r, g, b): - for y in range(0, 11): - for x in range(0, 53): - # graphics.set_pen((r * x) / 52, (g * x) / 52, (b * x) / 52); - gu.set_pixel(x, y, x) + for y in range(0, height): + for x in range(0, width): + graphics.set_pen(graphics.create_pen(int((r * x) / 52), int((g * x) / 52), int((b * x) / 52))) + graphics.pixel(x, y) -def grid(ms, x, y): - v = (x + y + (ms / 1000)) % 2 - if v == 0: - gu.set_pixel(x, y, 255) - else: - gu.set_pixel(x, y, 0) +def grid(r, g, b): + for y in range(0, height): + for x in range(0, width): + if (x + y) % 2 == 0: + graphics.set_pen(graphics.create_pen(r, g, b)) + else: + graphics.set_pen(0) + graphics.pixel(x, y) + + +def outline_text(text): + ms = time.ticks_ms() + + graphics.set_font("bitmap8") + v = int((math.sin(ms / 100.0) + 1.0) * 127.0) + w = graphics.measure_text(text, 1) + + x = int(53 / 2 - w / 2 + 1) + y = 2 + + graphics.set_pen(0) + graphics.text(text, x - 1, y - 1, -1, 1) + graphics.text(text, x, y - 1, -1, 1) + graphics.text(text, x + 1, y - 1, -1, 1) + graphics.text(text, x - 1, y, -1, 1) + graphics.text(text, x + 1, y, -1, 1) + graphics.text(text, x - 1, y + 1, -1, 1) + graphics.text(text, x, y + 1, -1, 1) + graphics.text(text, x + 1, y + 1, -1, 1) + + graphics.set_pen(graphics.create_pen(v, v, v)) + graphics.text(text, x, y, -1, 1) + + +gu.set_brightness(0.5) + +while True: + + time_ms = time.ticks_ms() + test = (time_ms // 1000) % 5 + + if gu.is_pressed(GalacticUnicorn.SWITCH_BRIGHTNESS_UP): + gu.adjust_brightness(+0.01) + + if gu.is_pressed(GalacticUnicorn.SWITCH_BRIGHTNESS_DOWN): + gu.adjust_brightness(-0.01) + + graphics.set_pen(graphics.create_pen(0, 0, 0)) + graphics.clear() + + if test == 0: + print("grid pattern") + grid(255, 255, 255) + elif test == 1: + print("red gradient") + gradient(255, 0, 0) + elif test == 2: + print("green gradient") + gradient(0, 255, 0) + elif test == 3: + print("blue gradient") + gradient(0, 0, 255) + elif test == 4: + print("white gradient") + gradient(255, 255, 255) + + text = "" + + if gu.is_pressed(GalacticUnicorn.SWITCH_A): + text = "Button A" + + if gu.is_pressed(GalacticUnicorn.SWITCH_B): + text = "Button B" + + if gu.is_pressed(GalacticUnicorn.SWITCH_C): + text = "Button C" + + if gu.is_pressed(GalacticUnicorn.SWITCH_D): + text = "Button D" + + if gu.is_pressed(GalacticUnicorn.SWITCH_VOLUME_UP): + text = "Louder!" + + if gu.is_pressed(GalacticUnicorn.SWITCH_VOLUME_DOWN): + text = "Quieter" + + if gu.is_pressed(GalacticUnicorn.SWITCH_BRIGHTNESS_UP): + text = "Brighter!" + + if gu.is_pressed(GalacticUnicorn.SWITCH_BRIGHTNESS_DOWN): + text = "Darker" + + if gu.is_pressed(GalacticUnicorn.SWITCH_SLEEP): + text = "Zzz... zzz..." + + outline_text(text) + + gu.update(graphics)