Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

BBC micro:bit

Die 5x5 LED Matrix

1 - Text ausgeben

Rückmeldungen von Ergebnisses eines Programms auf dem micro:bit lassen sich platzsparend als Lauftext auf der 5x5 LED-Matrix des micro:bit ausgeben. Sie ersetzt ein LCD-Display oder einen Monitor, die man sonst dafür benutzt hätte.

 

Wie man einen einfachen Lauftext ausgibt, haben wir bereits in den Übungen 1 und 2 des Kapitels Erste Schritte gesehen. Der Befehl dazu lautet formal:

  • display.scroll(string, delay=150, wait=True, loop=False, monospace=False)

Die fünf Parameter haben folgende Bedeutung:

 

Befehl Bedeutung Voreinstellung

string

ein beliebiger Text in Anführungszeichen  
delay beeinflusst die Geschwindigkeit des Lauftextes. Je höher die Zahl, desto langsamer die Laufgeschwindigkeit. Voreinstellung: 150. delay=150
wait während das Programm ausgeführt wird, läuft der Text im Hintergrund weiter. wait=True
loop wenn True, wird die Ausgabe des Textes ständig wiederholt. loop=False
monospace es werden immer 5 Pixelspalten pro Zeichen ausgegeben. Voreinstellung: False monospace=False

Die Parameter werden bei jedem Befehl im Editor eingeblendet (siehe Abb. 1)

Abb. 1 - Eingeblendete Texthilfe zum Befehl display.scroll

Übung 1 - Einen Text unterschiedlich schnell ausgeben

Aufgabe

  • Schreibe ein Programm, dass das Wort Blitz mit einer Geschwindigkeit von 60 und das Wort schnell mit 150 ausgibt.

Lösung (mu-Editor)

Achtung

Wenn das Programm nicht gestartet werden kann, liegt es vielleicht daran, dass der Programmtext nicht fehlerfrei übertragen oder eingegeben wurde.

  • Micro-Python reagiert sehr empfindlich auf Ungenauigkeiten. So darf sich z.B. kein Leerzeichen bei delay=60 befinden. delay = 60 oder delay= 60 führen zu einem Fehler. Nach einem Komma muss eine Leerstelle gesetzt werden, auf Groß- und Kleinschreibung muss ebenfalls penibel geachtet werden. Aber auch hier gilt: Übung macht den Meister;-))

Lösung (MakeCode)

  • Starte das Programm MakeCode. Die Blockbefehle sind i.d.R. ohne Eigenschaften ausgestattet. Benötigt man diese, wie in unserem Fall, muss man über die Sprachen
    JavaScript oder
    Python
    die Blockeigenschaften ergänzen. Wie das geht, zeigen die folgenden Schritte für die Sprache JavaScript.
  1. Ziehe die entsprechenden Befehlsblöcke in das Editorfeld.
  1. Aktiviere JavaScript.
  1. Öffne über Hilfe (?) - Referenz - Basic die Referenzunterlagen zu JavaScript.
  1. Klicke das Fenster showString an.
  1. In dem sich öffnenden Hinweisfenster wird angegeben, wie die Parameter des Befehls showString anzusprechen sind. Die obere Zeile zeigt den Befehl an in der Syntax der Sprache JAVASCRIPT, darunter in der Sprache PYTHON.
  1. Ergänze die Befehlseintragungen in den beiden Programmzeilen in JavaScript durch die Zahlen 60 und 150.
  1. Klicke auf das Feld Blöcke und kehre zur Blockdarstellung zurück.

Vergleiche die Blöcke aus Schritt 6 mit Schritt 0. Die einfachen Texteingaben aus Schritt 0 wurden durch Javascript-Code ausgetauscht.

Jetzt muss die HEX-Datei nur noch abgespeichert und anschließend ins MICROBIT-Verzeichnis des micro:bit kopiert werden. FERTIG!!!

2 - Vorgefertigte Bilder ausgeben

Nicht immer benötigt man für ein Programm Lauftexte, um dem Nutzer anzuzeigen, was zu tun oder worauf zu achten ist. Vielfach genügen einfache Grafiken als Hinweis. In der folgenden Übung werden zwei einfache und bereits vorhandene Grafiken auf der LED-Matrix dargestellt.

Übung 2 - Pfeil nach rechts - Pfeil nach links

Aufgabe

  • Zeige nacheinander mit einem Zeitabstand von zwei Sekunden einen Pfeil LINKS und einen Pfeil RECHTS.

Lösung (mu Editor)

Gibt man die Programmzeilen ein, öffnet sich ein Informationsfenster, sobald man

  • display.show(

eingegeben hat.

Mit der ESC-Taste löscht man dieses Fenster und gibt das Wort Image gefolgt von einem Punkt ein. Es öffnet sich ein neues Hilfe-Optionsfenster. Bewege den Cursor auf den entsprechenden Eintrag und bestätige die Wahl mit der Rücklauftaste.

Lösung (MakeCode)

  • Starte das Programm MakeCode und gibt die folgenden Blockbefehle ein.
  • Speicher die HEX-Datei ab und lade sie anschließend in das micro:bit Verzeichnis MICROBIT.

Übung 3 - Einzelne Lichtpunkte setzen

Manchmal benötigt man ein neues Zeichen oder Symbol oder auch nur einzelne Leuchtpunkte, die man dann selbst setzen oder entwickeln muss. Wie das geht wird hier gezeigt. Der Befehl

  • display.set_pixel(x, y, h)

mit seinen Argumenten

  • x, y   Position der LED in der Matrix
  • h       steuert die Helligkeit jeder LED (0 .. 9)

hilft bei dieser Aufgabe.

Aufgabe

  • Entwirf ein Programm, bei dem sich ein Lichtpunkt (LED) von der Position (0,0) zur Position (4,4) und ein zweiter von der Position (0,4) zur Position (4,0) bewegt.

Lösung (mu Editor)

Lösung (MakeCode)

Übung 4 - Benutzerdefinierte Bilder erstellen

In dieser Übung wird ein benutzerdefiniertes Bild erstellt, einer Variablen zugewiesen und über display.show auf der LED-Matrix angezeigt.

 

Neue Bilder lassen sich sehr einfach mit Hilfe der Image-Methode erstellen. Dazu entwirft man zuerst auf einem Blatt Papier mit einer 5x5 Punktmatrix das darzustellende Bild und codiert es dann in der Sprache MicroPython.

Aufgabe

  • Entwirf ein Programm, das den Großbuchstaben X darstellt. Der Kreuzungspunkt in der Mitte soll die geringste Helligkeit, die vier Außenpunkte die höchste Helligkeit besitzen. Die anderen Punkte eine Helligkeit dazwischen.

Lösung (mu Editor)

Startet man das Programm und schaut von oben auf das X, dann bekommt das Bild dadurch Tiefe, dass die Helligkeit der LEDs von außen nach innen abnimmt.

 

Die Erklärung zum Image-Befehl erscheint, sobald die Klammer gesetzt wird (siehe Abb. 2).

Abb. 2 - Eingeblendete Erklärung zur Funktion "Image"
Druckversion | Sitemap
© Reinhard Rahner - Gettorf