import time
import framebuf
import machine
import neopixel
# Konfiguration
NEOPIXEL_PIN = 26
NUM_PIXELS = 128
WIDTH = 16
HEIGHT = 8
TEXT = "Testtext"
TEXT_COLOR = (255, 50, 100)
BACKGROUND_COLOR = (0, 0, 0)
SCROLL_SPEED = 0.1
# Neopixel-Objekt erstellen
np = neopixel.NeoPixel(machine.Pin(NEOPIXEL_PIN), NUM_PIXELS)
# Framebuffer für den Text erstellen
fb = framebuf.FrameBuffer(bytearray(WIDTH * HEIGHT // 8), WIDTH, HEIGHT, framebuf.MONO_HLSB)
# Funktion zum Anzeigen des Framebuffers auf den Neopixeln
def show_framebuffer(framebuffer):
for y in range(HEIGHT):
for x in range(WIDTH):
if x < 8:
pixel_index = y * 8 + x
else:
pixel_index = 64 + y * 8 + (x - 8)
if framebuffer.pixel(x, y):
np[pixel_index] = TEXT_COLOR
else:
np[pixel_index] = BACKGROUND_COLOR
np.write()
# Funktion zum Scrollen des Textes
def scroll_text(text):
text_width = len(text) * 8
offset = WIDTH
while True:
fb.fill(0)
fb.text(text, offset, 0, 1)
show_framebuffer(fb)
offset -= 1
if offset < -text_width:
offset = WIDTH
time.sleep(SCROLL_SPEED)
# Hauptprogramm
if __name__ == "__main__":
scroll_text(TEXT)