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

BBC micro:bit

 Ohne Mathematik geht nix

Übung 1 - Der Kommandozeilen-Editor REPL

 

Der Kommandozeilen-Editor REPL wird aus dem mu-Hauptmenü über das dargestellte Icon aufgerufen.

Das Ergebnis zeigt Abb. 1. Über den unteren Bildschirm kommuniziert man jetzt direkt mit dem micro:bit.

Abb. 1 - Der Bildschirm des Kommandozeilen-Editors öffnet sich unterhalb des mu-Editors.

REPL kann nur jeweils Einzeilenbefehle bearbeiten. Auf diese Weise lässt sich die Arbeitsweise eines komplexeren Algorithmus leichter nachverfolgen, weil die Zwischenwerte, wenn denn welche vorhanden sind, angezeigt werden.

Aufgaben

  • Gib im REPL-Fenster die folgenden drei Beispiele nacheinander ein; schließe jede Zeile mit der Rücklauftaste ab.

Der in Hochkomma eingeschlossene Text sollte auf der LED-Matrix als Lauftext ausgegeben werden.

Das Ergebnis der Subtraktion einer reellen Zahl von einer ganzen Zahl wird als reelle Zahl angezeigt.

Den Dokumenten zu MicroPython ist zu entnehmen, dass es ein Modul random gibt, über das Zufallszahlen aufgerufen werden können. Zwei Möglichkeiten bestehen.

  • Ganzzahlige Zufallszahlen zwischen a und b erzeugen. a, b aus N

  • Reelle Zufallszahlen zwischen 0 und 1 erzeugen

Ganzzahlige Zufallszahlen zwischen 1 und 49 (Lottozahlen) lassen sich mit Hilfe des Moduls random und der darin enthaltenen Methode randint erzeugen.

MicroPython stellt für den micro:bit u. a. die folgenden Rechenoperatoren bereit.

Übung 2 – Rechnen mit MicroPython

Aufgabe

  • Schreibe ein Programm, das der Variablen a den Wert 28 und der Variablen b den Wert 19 zuweist. Gib das Ergebnis aus a + b auf der LED-Matrix aus. Überprüfe das Ergebnis durch eigenes Nachrechnen.
  • Führe mit den gleichen Variablenwerte auch die anderen drei Grundrechenarten (a – b, a * b, a / b und a ^ b ) aus, stelle das Ergebnis auf der Matrix dar und überprüfe es durch eigenes Nachrechnen.
  • Der Operator modulo gibt den Rest bei einer Division aus. Stelle das Ergebnis a mod b auf der LED-Matrix dar und überprüfe es.

Lösung (mu-Editor)

Exemplarisch werden dieLösungen für die Modulo- und Potenzberechnung gezeigt.

Abb. 1 - Zwei Programmbeispiele für oben: modulo Berechnung, unten: Potenzberechnung. Ausgabe als Lauftext auf LED-Matrix.

Hinweis

  • Zeilenkommentare werden eingeleitet mit dem Zeichen #.
  • Wertzuweisungen an Variable erfolgen mit dem einfachen Gleichheitszeichen. Werden die Leerzeichen (engl. whitespace) nicht gesetzt, erscheint bei Aufruf des „Prüfen“-Buttons aus dem mu-Hauptmenü die Fehlermeldung:

Übung 3 - Entscheidungen treffen mit der if-Bedingung

Computerprogramme entscheiden auf der Basis, ob eine Bedingung wahr oder falsch ist, was anschließend zu tun ist und dazu braucht es Vergleichsoperatoren.

Betrachten wir dazu ein Beispiel:

  • Sei a = 12 und b = 28.
  • „Wenn a größer ist als b, dann soll „a ist grösser als b“ ausgegeben werden, sonst „a ist kleiner als b“.

Solche Entscheidungsabfragen werden in der Sprache MicroPython mit einer if-Bedingung eingeleitet.

 

  • a = 12
  • b = 28
  • if a > b:
  •     display.scroll(„a ist grösser als b”)
  • else:
  •     display.scroll(“a ist kleiner als b“)

Aufgabe

  • Gib die ersten vier Zeilen aus dem Beispiel in den mu-Editor ein und bringe das Programm zum Laufen.
  • Prüfe, ob das Programm so reagiert, wie beschrieben.
  • Schreibe ein neues Programm und gib alle sechs Zeilen aus dem Beispielprogramm ein. Starte das neue Programm. Es sollte die gleiche Anzeige erscheinen.

Das vorliegende Programm erkennt die Gleichheit zweier Zahlen nicht. Dazu muss das Programm erweitert werden.

Aufgabe

  • Gib die Programmzeilen in den mu-Editor ein und starte das Programm.
  • In der Anzeige sollte die Gleichheit von a und b angezeigt werden.
  • Verändere die Werte von a und/oder b und überprüfe, ob das Programm nach einem neuen Start korrekt reagiert.
Abb. 2 - Das Programm erkennt, ob zwei Variable "gleich", "a größer b" oder "a kleiner b" ist.

Übung 4 – Boolesche Operatoren

Logische Aussagen lassen sich in MicroPython über die drei booleschen Operatoren and, or und not auswerten.

Aufgabe

  • Ob eine Zahl A zwischen einem kleinsten und einem größten Wert liegt, kann mit Hilfe des booleschen and-Operators überprüft werden.
  • Gib das nachfolgende Programm in den mu-Editor ein und starte es. Überprüfe das ausgegebene Ergebnis.

Übung 5 – Zählschleife

Ein oder mehrere Befehle die im Block n-mal wiederholt ausgeführt werden (n eine beliebige natürliche Zahl), lassen sich als Befehlsblock in der Anweisung

  • for <variable> in range(anfang, ende):

     Befehlsblock

 

unterbringen. Die folgende Aufgabe zeigt ein Beispiel.

Aufgaben

  • Starte das Programm mu.
  • Finde über den Kommandozeilen-Editor heraus, wie sich die Quadratzahlen von 10 bis 20 berechnen und im Editorfenster ausgeben lassen.

Bei den Zeilen, die am Anfang drei Punkte aufweisen, sind die Befehle eingerückt. Abgeschlossen wird eine Eingabe in einem solchen Fall, indem man die Backspace (Rückpfeil-)Taste drückt. Der Cursor rückt wieder nach links ein. Mit der Rücklauftaste wird die Eingabe beendet.

Eine mögliche Lösung

 

 

 

 

 

Abb. 3

Die zweite Zeile mit der print-Anweisung wurde vom Programm automatisch eingerückt. Ist die Eingabe abgeschlossen, dann muss vorher der Cursor mit der Rückpfeiltaste zurückgesetzt werden. Erst dann darf die Rücklauftaste gedrückt werden.

Die Zahlenangaben im "range"-Befehl geben den Startwert und den Endwert-1 an.

  • Schreibe im Kommandozeilen-Editor ein weiteres Programm, das neben den Quadrat- auch die Kubikzahlen ausgibt.

Übung 6 – Endlosschleife

Programmschleifen, die beliebig oft durchlaufen werden, lassen sich über

  • while True:

   Befehlsblock

 

aufrufen. Das nachfolgende Programm läuft so lange, bis das USB-Kabel zwischen micro:bit und Rechner getrennt wird.

Aufgaben

  • Übertrage das folgende Programm in den mu-Editor.
  • Überlege, bevor das Programm gestartet wird, was auf dem Display wie angezeigt wird.
  • Starte das Programm und überprüfe es mit deiner Vorhersage.

Übersicht zu den hier vorgestellten MicroPython Befehlen

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf