Zur Programmierung der beiden Mikrocontroller-Boards stehen verschiedene Möglichkeiten zur Verfügung. Einen einfachen Einstieg findet man über die jeweilige Website.
Über die Website https://microbit.org/code/ findet man Zugang zu den Editoren, die in erster Linie eingesetzt werden.
Neben dem JavaScript-Blocks-Editor und Python gibt es auch die Möglichkeit über eine Android- beziehungsweise iOS-App zu programmieren und diese Programme drahtlos auf den BBC micro:bit zu übertragen. Ich möchte es mit der Nennung dieser Möglichkeit belassen, da mich die Programmierung übers Handy und dessen »Tastatur« wenig überzeugt.
In der mbed Entwicklungsumgebung (https://developer.mbed.org/platforms/Microbit/) ist der BBC micro:bit bereits als Board hinterlegt und kann über deren IDE komfortabel in C/C++ programmiert werden.
JavaScript-Blocks-Editor
Micro:bits neuer JavaScript-Blocks-Editor ermöglicht einen sehr einfachen Zugang zur Programmierung des BBC micro:bit und ist wohl der für die Belange der schulischen Ausbildung bevorzugte Weg. Der JavaScript-Blocks-Editor baut auf Microsofts MakeCode auf, was auch deutlich in der Oberfläche des Editors zu erkennen ist (Bild 3).
Die Oberfläche des Editors teilt sich in drei Bereiche. Auf der linken Seite ist der Simulationsbereich zu sehen. In der Mitte findet man Zugang zu den einzelnen Funktionsblöcken, die auf der rechten Seite angeordnet und verknüpft werden können.
In Bild 1 ist auf der rechten Seite ein einfaches Programmbeispiel in der Blocks-Darstellung zu sehen, welches nach dem Programmstart den Text »Measuring On-Board Temperature…« über die serielle Schnittstelle ausgibt und in einer Endlos-schleife dann drei Punkte (…) über die LED-Matrix laufen lässt und sowohl Temperatur als auch Helligkeit erfasst und ebenfalls seriell ausgibt. Nach diesen Aktionen ruht sich der Controller für eine Sekunde aus und wiederholt das Ganze. Auf die adäquate JavaScript-Darstellung komme ich später.
Im Simulator kann das Programm getestet werden. Verschiebt man die Eingabe für das Thermometer oder die Helligkeitseingabe, dann sieht man sich ändernde Werte in der Ausgabe als Text und der daneben angeordneten grafischen Ausgabe.
Verbindet man ein auf dem PC laufendes Terminalprogramm mit dem COM-Port, welches durch den BBC micro:bit eingerichtet wurde, dann erhält man die in Bild 4 gezeigte Terminalausgabe. Durch Berührung der CPU wird sehr rasch die Temperatur verändert, während die Abdeckung der LED-Matrix, die hier als Lichtsensor dient, sofort den ausgegebenen Helligkeitswert beeinflusst.
Python
Der Python-Editor für den BBC micro:bit kann über die URL http://python.microbit.org/editor.html erreicht werden. Der Python-Editor ist perfekt für diejenigen, die mehr Freiheiten bei der Programmierung haben wollen. Der Quelltext wird in das Editorfenster kopiert beziehungsweise dort erstellt und kann abgespeichert werden. Das erzeugte Hex-File kann dann via Download auf den BBC micro:bit übertragen werden. Die seriellen Ausgaben des Programmbeispiels lassen sich dann wieder mit Hilfe eines Terminalprogramms auf dem PC darstellen.
Neben dem Online-Python-Editor kann man aber auch den Mu-Editor (https://codewith.mu/) auf seinem PC installieren und hat dann auch offline eine Möglichkeit zum Programmieren, die zudem noch mehr Komfort bietet. Mu läuft unter Windows, OSX und Linux.
Calliope mini
Über die Website http://calliope.cc/editor findet man Zugang zu den Editoren, die in erster Linie eingesetzt werden.
Neben dem JavaScript-Blocks-Editor, der hier noch als PXT-Editor bezeichnet ist, gibt es einen Calliope-Mini-Editor, der für ein allererstes Herantasten an den Calliope mini gedacht zu sein scheint, und Open Roberta Lab, eine cloudbasierte grafische Programmierumgebung.
Das Open-Roberta-Lab ist eine Open-Source-Entwicklung des Fraunhofer-Instituts IAIS im Kontext der Initiative »Roberta – Lernen mit Robotern« (https://roberta-home.de/de) und wurde gemeinsam mit Google Deutschland initiiert, um die Hürden zur Programmierung von Robotern für Schülerinnen, Schüler und Lehrkräfte abzubauen. Finanziert wird Open-Roberta von Google.org (2014 - 2015) mit 1 Mio. Euro.
Unter Beachtung der unterschiedlichen Pinbelegung kann Calliope mini, wie der BBC micro:bit auch, in Python programmiert werden. Ein Beispiel hierzu ist in meinem Blog zu finden [6].
In der mbed Entwicklungsumgebung (https://developer.mbed.org/platforms/Microbit/) ist der Calliope mini noch nicht als Board hinterlegt kann aber über deren IDE als CPU in C/C++ programmiert werden.
JavaScript-Blocks-Editor
Der JavaScript-Blocks-Editor (PXT-Editor) ermöglicht auch beim Calliope mini einen sehr einfachen Zugang zur Programmierung und wird nach ersten Versuchen mit dem Calliope-mini-Editor diesem sehr schnell den Rang ablaufen.
Auch dieser JavaScript-Blocks-Editor baut auf Microsofts MakeCode auf, was deutlich in der Oberfläche des Editors zu erkennen ist. Bis auf kleine gestalterische Abweichungen sind die beiden JavaScript-Blocks-Editoren praktisch identisch.
Open-Roberta-Lab
Open-Roberta-Lab unterstützt verschiedene Systeme, die zur Steuerung unterschiedlichster Roboter geeignet sind. Programmiert wird in der grafischen Programmiersprache NEPO.
Die Oberfläche des Editors ist wenig verschieden zum bereits betrachteten JavaScript-Blocks-Editor. Die Programmierung erfolgt vergleichbar.
Wie Bild 3 zeigt, kann das zusammengestellte Programm, welches hier nur die RGB-LED verschiedenfarbig leuchten lässt, im rechten Fenster simuliert werden. Im Screenshot dargestellt ist die gelb leuchtende LED. Interessiert man sich hingegen für den generierten C-Code, dann kann dieser ebenfalls angezeigt werden. Weiter möchte ich die Arbeit mit Open-Roberta-Lab nicht vertiefen, aber auf eine Reihe von Beispielprogrammen verweisen [7].