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

BBC micro:bit

1 - Die Taster A und B

Wie die beiden fest verdrahteten Taster auf einem micro:bit unter microPython angesteuert werden können, verrät die zugehörige Dokumentation.

Die Klasse button enthält die beiden Instanzen

  • button_a
  • button_b

sowie die Methoden

  1. is_pressed()
  2. was_pressed()
  3. get_presses()
  • is_pressed() ist True, sobald ein Taster gedrückt wird (siehe Abb. 0).
Abb. 0 - Sobald einer der beiden Taster gedrückt wird, zeigt die LED-Matrix einen Pfeil, der in Richtung des gedrückten Tasters zeigt.
  • was_pressed() ist True, wenn ein Taster in einem vorgegebenen Zeitintervall gedrückt wurde (siehe Abb. 1).
Abb. 1 - Anwendung zur Methode "was_pressed". Je nachdem, welche Taste gedrückt wird, erscheint ein Richtungspfeil auf dem Display, der in Richtung des gedrückten Tasters zeigt.
  • get_presses() zählt die Tastendrücke in einem Zeitintervall (siehe Abb. 2).
Abb. 2 - Anwendung zur Methode "get_presses". Es werden die Tastendrucke innerhalb eines Zeitintervalls von 10s gemessen.

Übung 1 - Personenzählung

In Zeiten von Corona und anderen weltumspannenden Seuchen kann es vorkommen, dass die Personenzahl in Kaufhäusern und Läden vom Gesetzgeber auf eine bestimmte Zahl beschränkt wird.

Die Personenzahl kann manuell durch Handzähler oder elektronisch durch Lichtschranken ermittelt werden. In dieser Übung soll das manuell über einen Taster erfolgen.

Aufgabe

  • Entwickle mit dem mu-Editor ein Programm, das jeden Tastendruck, der auf dem Taster A ausgeführt wird, zählt und auf der LED-Matrix anzeigt.

Mögliche Programmlösungen

  • Wie verhält sich das Programm und die LED-Anzeige, wenn die Methode was_pressed() gegen is_pressed() ausgetauscht wird? Schau es dir an.
  • Wie muss das Programm verändert werden, wenn jeder Tastendruck auf einem der beiden Taster gezählt werden soll?
  • Ändere das Programm so ab, dass nur ein HAPPY-Lachgesicht ausgegeben wird, sobald 10 Tastendrucke auf A und B zusammen erfolgt sind.

2 - Funktionen

Was man über Funktionen wissen sollte

Funktionen lassen sich in Programmen wie ein Befehl aufrufen. Bekannt ist uns bereits der in microPython eingebaute Befehl oder die Funktion

  • sleep(<ganze zahl>).

Dann gibt es da auch noch die selbst geschriebenen Funktionen, mit denen sich die Übersichtlichkeit und Lesbarkeit eines Programms erheblich verbessern und der Arbeitsaufwand verringern lässt. Allgemein gilt:

  • Funktionen werden in einem microPython Programm immer mit
    def <Funktionsname>
    eingeleitet.
  • Funktionen benötigen immer einen eindeutigen Namen, in dem sich keine Leerstelle befinden darf.
  • Leerstellen im Namen lassen sich, wenn man für Funktionen  „sprechende Namen“ verwendet (ist dringend zu empfehlen), mit Hilfe des Unterstrichs verbinden.
  • Funktionen können Parameter enthalten, wie das Beispiel der Funktion sleep zeigt. Wird der Parameter im Programmaufruf nicht angegeben oder ist er nicht vom angegebenen Typ (bei sleep muss er eine ganze Zahl sein), dann gibt es eine Fehlermeldung.

In der folgenden Übung 2 wird das Programm aus Übung 1 (Personenzählung) als Ausgangspunkt genommen. Es soll eine Funktion Anzeige_text erstellt werden, die dafür sorgt, dass immer dann, wenn die angezeigte Zahl 1 ist, dahinter „Person“ und wenn sie größer als 1 ist, „Personen“ (Pluralform) ausgibt. In einer Endlosschleife soll aber nur bis einschließlich drei hochgezählt und anschließend der Zähler wieder auf 0 zurückgesetzt werden.

Übung 2 – Funktion ohne Parameterübergabe 1

Übung 2 - Arbeiten mit Funktionen1 ohne Parameterübergabe
Material
  • 1x  micro:bit mit USB-Kabel
  • 1x  Laptop/PC
Aufgaben
  • Verbinde den micro:bit über ein USB-Kabel mit einem PC/Laptop.
  • Gib das Programm logo in den mu-Editor ein und speichere es ab.
  • Starte das Programm und beobachte die LED-Matrixanzeige.
  • Beschreibe mit eigenen Worten, was jede einzelne Programmzeile bewirkt.

Das Programm Logo

Übung 3 – Funktion ohne Parameterübergabe 2

Übung 3 - Funktion ohne Parameterübergabe 2
Material
  • 1x  micro:bit mit USB-Kabel
  • 1x  Laptop/PC
Aufgaben
  • Verbinde den micro:bit über ein USB-Kabel mit einem PC/Laptop.
  • Gib das Programm Personenzählung in den mu-Editor ein und speichere es ab.
  • Starte das Programm und beobachte die LED-Matrixanzeige.
  • Drücke wiederholt aber nicht zu schnell den Taster A und beobachte die Anzeige. Was ändert sich wann?
  • Erkläre über die Programmzeilen das unterschiedliche Verhalten der Anzeige.

Das Programm Personenzählung

Bemerkungen zum Programm Personenzählung

Das Hauptprogramm beginnt ab Programmzeile 14 mit einer Endlosschleife.

Die Bedingungsschleife (Zeilen 15 - 18) wird durchlaufen, sobald Taster A gedrückt wird. Die Variable personen wird mit jedem Tastendruck auf Taster A um 1 hochgezählt und auf 1 zurückgesetzt, wenn ihr Wert größer als 3 ist (Programmzeilen 17 und 18).

 

Jeder Durchlauf der Endlosschleife endet mit dem Funktionsaufruf von Anzeige_text. Übergabeparameter ist die Variable personen.

 

Die Funktion Anzeige_text ist in den Programmzeilen 6 – 12 angelegt. Die lokale Variable anzeige konvertiert die in der Variablen personen gespeicherte Zahl in eine Textvariable. Nur durch diese Konvertierung lässt sich dann in Programmzeile 9 bzw. 11 die Zahl mit dem Text kombinieren und auf dem LED Display ausgeben.

Übung 4 – Funktion mit Parameterübergabe

In Übung 2 haben wir gesehen, wie man eine Funktion in microPython anlegt. Die Funktion Anzeige_text hat „nur“ die Aufgabe einen Ausgabetext auszutauschen, wenn statt der Singular- die Pluralform notwendig wird. In dieser Übung soll eine weitere zweite Funktion Pluralform entwickelt werden, die an die aufrufende erste Funktion Anzeige_text einen unterschiedlichen Text zurückgibt. 

Übung 4 - Funktion mit Parameterübergabe
Material
  • 1x  micro:bit mit USB-Kabel
  • 1x  Laptop/PC
Aufgaben
  • Verbinde den micro:bit über ein USB-Kabel mit einem PC/Laptop.
  • Gib das Programm Personenzählung2 in den mu-Editor ein und speichere es ab.
  • Starte das Programm und beobachte die LED-Matrixanzeige.
  • Drücke wiederholt aber nicht zu schnell den Taster A und beobachte die Anzeige.
  • Erkläre, wie das Programm arbeitet. Beschreibe dabei die Funktion und Wirkung jeder Programmzeile.

Das Programm Personenzählung2

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf