Aus Raspberry Pi Geek 08/2019

Programmieren mit dem Python-Editor Mu und dem BBC Micro:bit (Seite 2)

Wenn Pygame eine gedrückte Maustaste erkennt, holt es sich die Anweisungen aus der Funktion on_mouse_down(). Die Methode collidepoint() bemerkt, wenn das zugehörige Objekt angeklickt wurde. In diesem Fall steuert die globale Variable hit in update(), ob sich das Männchen weiterbewegt. Der Befehl sounds.eep.play() unterlegt den Treffer mit dem Abspielen der Sounddatei ~/mu_code/sounds/eep.wav. Die Datei fehlt in der aktuellen Mu-Installation auf einem Raspberry Pi, was zu einem Abbruch des Spiels führt. Sie reparieren diesen Fehler mit der Anweisung aus Listing 3.

Listing 3

$ wget https://pygame-zero.readthedocs.io/en/stable/_static/eep.wav -P ~/mu_code/sounds

Mikrosensoren mit Mu ansteuern

Mu begleitet den Programmierer auch bei seinen ersten Ausflügen in das Reich der Mikrosensoren. Der Mikrocontroller BBC Micro:bit bildet dazu die Hardware-Grundlage (Abbildung 4). In England gibt es eine Initiative, die den Chip an Schüler verschenkt. In Deutschland findet sich der Chip für einen ein- bis zweistelligen Euro-Betrag im Handel.

Abbildung 4: Der Mikrocontroller BBC Micro:bit lässt sich direkt aus Mu heraus ansteuern.

Abbildung 4: Der Mikrocontroller BBC Micro:bit lässt sich direkt aus Mu heraus ansteuern.

Der integrierte ARM-Cortex-MO-Mikrocontroller mit 16 MHz, 16 KByte RAM und 256 KByte Flash-Speicher ist leistungsfähig genug, um MicroPython auszuführen. Puristen wenden ein, dass das Einbetten eines MicroPython-Interpreters in den Code wertvollen Speicher belegt. Wie oben beschrieben, bilden Programmieranfänger die Zielgruppe von Mu und Micro:bit, es kommt also nicht auf jedes Bit Speicher an. Erfahrene Entwickler greifen eher auf die IDE eines Arduino zurück.

Die Programmierung eines Mikrocontrollers mit Mu gelingt genauso einfach wie die Spieleentwicklung unter Pygame Zero. Die Arbeitsschritte sehen aus wie folgt:

  • Einschalten des Raspberry und Verbinden des Micro:bit über ein USB-Kabel.
  • Starten des Mu-Editors und Wechsel in den Modus MicroBit.
  • Eingabe des Programms (Beispiel: Listing 4).
  • Flashen des Programms auf den Mikrocontroller.
  • Drücken des Reset-Knopfs auf dem Mikrocontroller.
  • Nach Wechsel in den REPL-Modus überträgt der Mikrocontroller seine Messdaten.

Listing 4

from microbit import *
flag = True
while True:
  sleep(20)
  if button_a.was_pressed():
    flag = not flag
  if flag:
    print((accelerometer.get_x(), ))
  else:
    print(accelerometer.get_values())

Der Knopf Files öffnet das Dateiverzeichnis des Micro:bit und des Raspberry Pi. Das Programm, das der Controller nach einem Reset ausführt, heißt main.py. Der Knopf Flash macht nichts anderes, als das aktuelle Programm aus dem Mu-Editor in die Datei main.py auf dem Controller zu übertragen.

Wird der Controller wie in Abbildung 5 nicht bewegt, messen die Lagesensoren ausschließlich die Erdbeschleunigung. Läge der Controller horizontal und wären die Signale nicht verrauscht, würde die Z-Komponente den Wert 980 anzeigen, entsprechend der Erdbeschleunigung von 9,8 m/s2. Aber wie in Abbildung 4 zu sehen, steht der Controller auf dem Kopf und leicht schräg. Deshalb liefert die Auswertung der Z-Komponente negative Werte und die der x- und y-Achse Werte ungleich null.

Abbildung 5: Lagesensordaten, gemessen mit dem Micro:bit aus <a href="#artRef-f4">Abbildung 4</a>.

Abbildung 5: Lagesensordaten, gemessen mit dem Micro:bit aus Abbildung 4.

Wegen fehlender Qt-Unterstützung beherrscht Mu auf dem Raspberry die Plotterfunktion noch nicht, kann also Werte nicht in Form einer Grafik ausgeben. Der praktische Nutzen wäre aber ohnehin begrenzt, da die Zeitachse dimensionslos ist.

Ausblick auf kommende Versionen

Die Entwicklung des Mu-Editors steht nicht still. Die Version 1.1 lässt sich bereits in Form einer Vorabversion ausprobieren. Sie bietet weitere Funktionen, etwa das Aufhübschen des Quellcodes beispielsweise durch Umbrüche in Listendeklarationen. Zudem gibt es die Anwendung nun auch in weiteren Sprachen – bislang spricht Mu ausschließlich Englisch.

Es steht auch auf dem Plan, Python-Bibliotheken lokal in Mu ablegen zu können. Besonders für den Einsatz in einer Lernumgebung soll es so möglich sein, auch eigene Bibliotheken zu installieren, ohne das Python-Gefüge auf dem Rechner durcheinanderzubringen.

Neben dem Micro:bit-Interface soll Mu in Zukunft auch Schnittstellen für andere Mikrocontroller bieten, beispielsweise für WLAN-fähige Module auf Basis des populären ESP8266-Chips. Erst mit einer Funkkopplung ins Internet werden die Boards zu einem Teil des Internets der Dinge (IoT). Auch den Calliope [5], eine erweiterte Version des Micro:bit, soll Mu in Zukunft integrieren.

Bislang ist der Speicher des ARM-Mikrocontrollers auf 16 KByte begrenzt. Wenn sich der verfügbare Speicher verdoppelt, wird auch Bluetooth LE (BLE) vollständig unterstützt.

Fazit

Der Mu-Editor macht es auch Einsteigern recht leicht, Programme für ein komplexes Umfeld zu schreiben. Das Konzept des Programms konzentriert sich auf den Einsatz in der Lehre; Mu hat nicht den Anspruch, in die Profi-Liga professioneller Editoren wie Pycharm aufzusteigen. Dafür gelingt es bereits Anfängern, in Mu zügig grafische Elemente zusammenzustellen und über Bedienungselemente anzusteuern. Gleiches gilt für die Programmierung des Mikrocontrollers Micro:bit. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben