Ein Druck auf den Button Flash übersetzt das Programm in einen Hex-Code und überträgt diesen auf den Mikrocontroller, wo er sofort ausgeführt wird. Der Reset-Knopf startet das Programm neu, genauso wie ein erneutes Einschalten des Micro:bit durch Anlegen der Versorgungsspannung.
Das Beispielprogramm aus Listing 2 bricht mit einer Laufzeitfehlermeldung ab: Division durch null. Der Micro:bit gibt den Fehlercode als Laufschrift über seine 5×5-LED-Matrix aus. Einfacher ist es, im Mu-Editor über den Button REPL (Abkürzung für Read-Evaluate-Print-Loop) nachzusehen (Abbildung 2).
Das Programmbeispiel aus Listing 3 könnte einen Teil Ihrer Installation für Halloween stellen: Die Anlage fiepst unvermittelt, allerdings nur bei Dunkelheit. Die hohen Töne lassen sich nur schwer lokalisieren; schaltet man das Licht wieder ein, um die Schallquelle zu finden, bleibt das System stumm.
Listing 3
import microbit
import music
import random
BrightTrig = 50
while True:
br = microbit.display.read_light_level()
if br < BrightTrig:
microbit.sleep(800 * (1+random.randrange(10)))
music.pitch(900, 80 * (1+random.randrange(5)))
Die ersten drei Zeilen des Listings importieren die erforderlichen Python-Bibliotheken. Der Micro:bit bringt seine LEDs nicht nur zum Leuchten, er kann sie auch als Photodioden ansprechen. Je nach Helligkeit gibt der Befehl microbit.display.read_light_level() einen Wert zwischen 0 und 255 zurück. Bei einem Wert von 50 ist es schon recht dunkel (Zeile 5).
Die mit while True eingeleitete Dauerschleife legt die gemessene Helligkeit in der Variablen br ab. Ist sie größer als der Schwellwert BrightTrig, passiert nichts. Andernfalls ruft das Programm einen Wartebefehl auf, der mindestens 800 Millisekunden dauert, abhängig von der Zufallszahl random.randrange(10).
Der Befehl music.pitch erzeugt ein Rechtecksignal von 900 Hz auf Ausgang 0. Auch hier steuert ein Zufallsgenerator die Dauer. Schließen Sie einen kleinen Lautsprecher an die Kontakte 0 und GND an, beginnt der Streich – und die hoffentlich erfolglose Suche nach dem Störenfried.
In Abbildung 3 verbinden Krokodilklemmen einen Klinkenstecker mit dem Line-In-Eingang eines Verstärkers. Die Leistung des Moduls reicht gerade aus, um auch einen keramischen Lautsprecher anzuschließen – in Abbildung 1 sehen Sie ein Exemplar als kleinen schwarzen Zylinder. Ein Summer, also ein keramischer Lautsprecher mit eingebautem Tongenerator, funktioniert auch. Dann genügt es, den Ausgang ein- und anschließend wieder auszuschalten, statt ihn mit 900 Hz zu modulieren.

Abbildung 3: Über Krokodilklemmen lässt sich auch ein Klinkenstecker an den BBC Micro:bit anschließen.
Funktionen
Die Tabelle “Die wichtigsten Befehle für den Micro:bit” fasst die wichtigsten Funktionen zusammen, mit denen sich die Sensoren des Micro:bit in MicroPython adressieren lassen. Es gibt passende Kommandos für das Matrix-Display (Abbildung 4), die Taster sowie den digitalen Ein- und Ausgang.
|
Funktion |
Wirkung |
|---|---|
|
|
zeigt auf der LED-Matrix ein Smiley |
|
|
zeigt auf der LED-Matrix ein trauriges Gesicht |
|
|
schaltet die LED in Position |
|
|
stellt fest, ob der Taster |
|
|
stellt fest, ob der Taster nach dem Einschalten oder der letzten Abfrage gedrückt wurde |
|
|
zählt, wie oft der Taster nach der letzten Abfrage gedrückt wurde |
|
|
liest die x-Koordinate des Lagesensors aus |
|
|
liest den digitalen Eingang an Pin 0 aus |
|
|
setzt den digitalen Ausgang an Pin 0 |
|
|
spielt eine Tonfolge, sofern ein Lautsprecher an Pin 0 angeschlossen ist |
|
Vor dem Kommando steht immer der Name der zugehörigen MicroPython-Bibliothek. |
|
Der Beschleunigungssensor dient, wenn sich das Modul in Ruhe befindet, gleichzeitig als Lagesensor. Um nicht mit den Orientierungswinkeln seiner drei Achsen hantieren zu müssen, gibt es den Befehl microbit.accelerometer.current_gesture(). Er versteht die Orientierungen up, down, left, right, face up, face down und shake.
Einen Kompass mit drei Achsen gibt es auch. Theoretisch wäre er empfindlich genug, um die Richtung des Erdmagnetfelds zu erkennen; in der Praxis tut er sich damit schwer. Ähnlich verhält es sich mit dem Temperatursensor: Er misst auch die Prozessortemperatur. Sie sollten also keinesfalls die Platine mit einem Föhn aufheizen, sondern sich mit der Messung der Umgebungstemperatur zufriedengeben.
Der Befehl microbin.pin0.is_touched() verbindet den Digitaleingang über einen 10-MOhm-Pullup-Widerstand. Darüber erkennt der Micro:bit, wenn ein nicht zu großer Widerstand gegen Masse anliegt. Typischerweise genügt dazu ein Finger, während ein anderer Finger gleichzeitig die Masseleitung des Micro:bit berührt – also GND, den rechten großen Kontakt auf der Platine.
Interface
Einmal geflasht, nimmt der Mikrocontroller keine Kommandos mehr entgegen. Dafür zeigt er sich selbst gesprächig und gibt seine Informationen seriell über die USB-Verbindung aus. In Abbildung 5 reicht der angeschlossene Micro:bit über den print()-Befehl den Helligkeitswert in das REPL-Command-Fenster des Mu-Editors weiter. Schließen Sie das Programm, erhalten Sie Direktzugriff auf die Daten.







