From 97681ce8d28d02b5d7e17b26faa7a6091b9b9d5b Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Sat, 13 Mar 2021 17:16:11 -0600 Subject: [PATCH] New matrix example for RP2040 Feather --- CircuitPython_RGBMatrix/pi-logo32b.bmp | Bin 0 -> 1074 bytes CircuitPython_RGBMatrix/rp2040.py | 52 +++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 CircuitPython_RGBMatrix/pi-logo32b.bmp create mode 100644 CircuitPython_RGBMatrix/rp2040.py diff --git a/CircuitPython_RGBMatrix/pi-logo32b.bmp b/CircuitPython_RGBMatrix/pi-logo32b.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fe44d6219150b21ed34ef5378ff1d69aef6c00aa GIT binary patch literal 1074 zcmYjPJ&)8d5FO{!IPqR$XT6(E98Q4H3M7y?i2@14SA|4@C@7IYRM#MiD}feKLjxTZ zqCldc;m`5LNpABbJ2UfUJkR4ie0nRPfIryxSS{8umLQ3p=wnRutr*uu_`E;@iW1RN zOjk&XYowwRs-k-&)+M#kbBeqrpS+?=$thjU&S;-}pqu$;if;6Dl7FE)@)zAMf6)E> zFWs$wlX`HS9ykBUynaN@+b7hXJ)`aW7u0`xNylH`(B}NAL&d%M4Jr#BsvSN4Ugmtzc(QwSUjJr1zCzLEx*et?X+(E2rJ-#7g8IjaF zU7^w>O5xEgtc{*EbVk6xYDr` zY17nIDg+wvEJmczrly`1Q_IJf)>;{6<|?M}yB`o0DUg<^uX7x`4ufZaOpH?mFLh8+P+e*ZXeQj%6VsU)XeT{sTX~ BJy!q# literal 0 HcmV?d00001 diff --git a/CircuitPython_RGBMatrix/rp2040.py b/CircuitPython_RGBMatrix/rp2040.py new file mode 100644 index 000000000..0ec14abd9 --- /dev/null +++ b/CircuitPython_RGBMatrix/rp2040.py @@ -0,0 +1,52 @@ +import time +from math import sin +import board +import displayio +import rgbmatrix +import framebufferio +import adafruit_imageload +import terminalio +from adafruit_display_text.label import Label + +displayio.release_displays() +matrix = rgbmatrix.RGBMatrix( + width=64, bit_depth=6, + rgb_pins=[board.D6, board.D5, board.D9, board.D11, board.D10, board.D12], + addr_pins=[board.D25, board.D24, board.A3, board.A2], + clock_pin=board.D13, latch_pin=board.D0, output_enable_pin=board.D1, + doublebuffer=True) +display = framebufferio.FramebufferDisplay(matrix, auto_refresh=False) + +g = displayio.Group() +b, p = adafruit_imageload.load("pi-logo32b.bmp") +t = displayio.TileGrid(b, pixel_shader=p) +t.x = 20 +g.append(t) + +l = Label(text="Feather\nRP2040", font=terminalio.FONT, color=0xffffff, line_spacing=.7) +g.append(l) + +display.show(g) + +target_fps = 50 +ft = 1/target_fps +now = t0 = time.monotonic_ns() +deadline = t0 + ft + +p = 1 +q = 17 +while True: + tm = (now - t0) * 1e-9 + x = l.x - 1 + if x < -40: + x = 63 + y = round(12 + sin(tm / p) * 6) + l.x = x + l.y = y + display.refresh(target_frames_per_second=target_fps, minimum_frames_per_second=0) + while True: + now = time.monotonic_ns() + if now > deadline: + break + time.sleep((deadline - now) * 1e-9) + deadline += ft