einzelne-pixel
Bauteil: LED-Matrix 5x5 · Kategorie: onboard
Einen Leuchtpunkt mit den Knoepfen bewegen: A nach rechts, B nach unten, am Rand geht es auf der anderen Seite weiter.
Material
| Anzahl | Bauteil |
|---|---|
| 1 | micro:bit V2.2 |
Hardware
Eingebaut, kein Aufbau noetig.
Wie der Code funktioniert
display.set_pixel(x, y, h)setzt einen Pixel:x= Spalte 0..4,y= Zeile 0..4,h= Helligkeit 0..9.(x + 1) % 5zaehlt 0,1,2,3,4,0,1,… - der Rest der Division durch 5 laesst den Punkt am Rand umspringen.display.clear()vor jedemset_pixel(), sonst bleiben alte Punkte an.
Programm
Ganzer Code, Quelle main.py (hier automatisch eingefuegt):
# Sample: einzelne-pixel (eingebaute LED-Matrix 5x5)
# Board: BBC micro:bit V2.2
# Sprache: MicroPython
#
# Ziel: Einen einzelnen Leuchtpunkt mit den Knoepfen ueber die Matrix
# bewegen. A schiebt nach rechts, B nach unten - am Rand geht es
# auf der anderen Seite weiter.
#
# --------------------------------------------------------------------------
# Hardware
# --------------------------------------------------------------------------
# Nichts anschliessen - die 5x5-LED-Matrix ist eingebaut.
# Koordinaten: x = Spalte 0..4 (links->rechts), y = Zeile 0..4 (oben->unten).
# --------------------------------------------------------------------------
from microbit import *
x = 2
y = 2
while True:
if button_a.was_pressed():
x = (x + 1) % 5 # 4 -> 0 (Sprung an den linken Rand)
if button_b.was_pressed():
y = (y + 1) % 5 # 4 -> 0 (Sprung an den oberen Rand)
display.clear()
display.set_pixel(x, y, 9) # Helligkeit 9 = maximal
sleep(50)
Auf den micro:bit uebertragen
https://python.microbit.org/v/3 -> Code einfuegen -> Connect -> Send to micro:bit. Details: ../../../../docs/setup.md.
Erwartetes Verhalten
- Start: Punkt in der Mitte (2,2)
- A -> Punkt wandert nach rechts, nach dem rechten Rand links weiter
- B -> Punkt wandert nach unten, nach unten oben weiter
Moegliche Erweiterungen
- Bewegung ueber den Beschleunigungssensor statt der Knoepfe steuern
- gesetzte Pixel stehen lassen (nicht
clear()) -> Zeichenbrett - zweiter Punkt als “Ziel”, Treffer -> Herz + Ton