Startseite>Der BBC Micro:bit für Schüler und Elektronik-Einsteiger
Aus Raspberry Pi Geek 10/2019

Der BBC Micro:bit für Schüler und Elektronik-Einsteiger

© Iulia Cozlenco, 123RF

Macro-Mini-Micro-Bit

Dr. Roland Pleger

Was dem Raspberry Pi für die Computerwelt gelungen ist, versucht der BBC Micro:bit für Mikrocontroller zu wiederholen. Das für Schüler entwickelte Kit hilft beim Einstieg in die hardwarenahe Programmierung.

Die Idee, einen Mikrocontroller für die Schule zu entwickeln, geht auf das Jahr 2012 zurück. Vier Jahre später erschien dann der BBC Micro:bit [1] auf dem Markt. Die britische Rundfunkanstalt entwickelte ihn in Zusammenarbeit mit der Universität Lancaster und mehreren Dutzend Industriepartnern für Schüler der siebten Klasse. In Deutschland erhalten Sie den Micro:bit für rund 22 Euro im einschlägigen Versandhandel.

Der Mikrocontroller findet mit seinen Komponenten Platz auf einer Platine der Größe 4 x 5 cm2 (Abbildung 1). Der 32-Bit-Prozessor, ein ARM Cortex-M0, läuft mit einer Taktfrequenz von 16 MHz. Er arbeitet mit 16 KByte RAM und adressiert einen 256 KByte großen Flash-Speicher. Im Prinzip steht auch eine Bluetooth-LE-Schnittstelle (BLE) zur Verfügung.

Abbildung 1: Das Micro:bit-Set samt Verbindungskabeln, Breadboard und Komponenten.

Abbildung 1: Das Micro:bit-Set samt Verbindungskabeln, Breadboard und Komponenten.

Verbinden Sie einen Micro:bit über ein Micro-USB-Kabel mit dem Raspberry Pi, erkennt der Rechner einen USB-Stick von 64 MByte Größe. Dabei gibt sich der USB-Interface-Baustein des Micro:bit über den Befehl lsusb als LPC1768-Chip von NXP zu erkennen. Im Beispiel aus Listing 1 meldet er sich mit dem Gerätenamen ttyACM3.

Listing 1

$ lsusb
[...]
Bus 002 Device 019: ID 0d28:0204 NXP LPC1768
[...]
$ dmesg | grep tty
[...]
[17860.723466] cdc_acm 2-1.2.1:1.1: ttyACM3: USB ACM device

Über einen Pfostenstecker lässt sich das Modul auch autark mit Strom versorgen. Der Spannungsbereich liegt zwischen 1,8 und 3,6 Volt. Abbildung 1 zeigt links im Bild eine Box für zwei Batterien oder Akkus der Baugröße Micro. Das sehr speicherhungrige Bluetooth-Modul lässt sich zwar unter MicroPython nicht als Standard-BLE ansprechen, aber eine Funkverbindung zwischen Modulen sollte zumindest klappen.

25 frei programmierbare LEDs (5×5-Matrix)

3-Achsen-Beschleunigungssensor

3-Achsen-Magnetometer

Lichtsensor, Temperatursensor

2 Drucktaster, Reset-Taster

Micro-USB-Buchse für Stromversorgung und Datenübertragung

Steckkontakt für externe 3V-Stromversorgung

5 Kontakte für Krokodilklemmen (Ground, 3V, 3 I/O)

Weitere Ein- und Ausgänge über Spezialstecker

Software

Das Micro:bit-Modul lässt sich über verschiedene Programmiersprachen ansprechen. Dieser Artikel beschränkt sich auf Python, genauer gesagt auf MicroPython. Der Ansatz deckt sich mit dem Anspruch, schnell in die Welt der Mikroprozessorprogrammierung einzusteigen.

Wer Mikrocontroller auf Registerebene programmieren möchte, kommt mit MicroPython nicht weit, wird aber auch am Konzept des Micro:bit nicht allzu große Freude haben. In diesem Fall wäre ein Arduino [2] die bessere Wahl. Anders als beim Micro:bit stehen hier auch Schaltpläne und Platinenlayouts zur Verfügung.

Das Betriebssystem des Mikrocontrollers überwacht ständig den USB-Speicher. Entdeckt es dort eine Hex-Datei, übernimmt das System sie als Byte-Sequenz in den internen Speicher und führt sie aus.

MicroPython bringt ein sehr einfaches Dateisystem mit, über das Programme Dateien auf den Mikrocontroller schreiben und von dort auslesen können. Bereits das Anhängen von Daten an bestehende Dateien überfordert das System jedoch. Das Größenlimit beträgt 30 KByte. Da die Dateien innerhalb des internen Speichers liegen, lassen sie sich nur vom laufenden Programm aus adressieren, nicht aber über die USB-Schnittstelle.

Mu-Editor

Im Folgenden sollen zwei Beispiele die Programmierung und den Einsatz von MicroPython unter der IDE Mu-Editor [3] erläutern. Der Mu-Editor erkennt den Micro:bit beim Start, sofern der Mikrocontroller über ein USB-Kabel am Rechner hängt. Der Editor fragt daraufhin nach, ob er in den MicroPython-Editiermodus wechseln soll.

Aufgrund der eingebundenen Bibliotheken sind die resultierenden Programme nur auf dem Micro:bit lauffähig. Deshalb lassen sich auch nur dort Laufzeitfehler analysieren und ausgeben. Sobald Sie den Button Code Check aktivieren, fahndet der Editor nach Syntaxfehlern. Im Beispiel aus Listing 2 kann er mit dem Wort hallo in der zweiten Zeile nichts anfangen. Als Lösung kommentieren Sie die Zeile aus oder setzen die Zeichenkette in Anführungszeichen (Abbildung 2).

Listing 2

import microbit
print(hallo)
print(1/0)
Abbildung 2: Ein MicroPython-Programm mit Laufzeitfehlermeldung im Mu-Editor.

Abbildung 2: Ein MicroPython-Programm mit Laufzeitfehlermeldung im Mu-Editor.

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).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland