Python und Bluetooth Low Energy lernen mit dem Lego Boost Roboter

Mit dem hier vorgestellten Hack wird ein Lego Boost Roboter mit der kostenlosen und Open Source Programmierumgebung Python 3 gesteuert. Die Programmentwicklung wie auch das Steuern ist unter Windows, Mac oder Linux möglich. Ein Raspberry Pi 3 zum Programmieren reicht völlig aus.

Softwareentwicklung und Steuerung des Lego Boost mit einem Raspberry Pi 3

Lego ist ein faszinierendes Spielzeug, mit dem man viel lernen kann. Speziell für die Mechatronik sind die verschiedenen Legoroboter interessant. Leider ist Mindstorms-Roboter von Lego sehr teuer und benötigt einen leistungsstarken PC für deren Programmierung. Auch ist die auf LabView basierte grafische Programmiersprache nicht „Jedermanns Sache“. Darüber hinaus stehen aber viele andere Programmiersprachen wie C, Basic, Java oder Python zur Verfügung, wenn auf den Mindstorms-Brick eine andere Firmware bzw. ein anderes Betriebssystem aufgespielt wird.

Für Schülertechnikprojekte ist sicher der Legonio die beste Alternative zu Lego Mindstorms: Die Hardwarekosten sind fast vernachlässigbar, und zum Programmieren reicht ein ausrangierter PC oder auch ein Raspberry Pi. Außerdem erlernt man hierbei die Programmiersprache C sowie grundlegende Elektronikkompetenzen.

Fortgeschrittene Lego-Robotik-Fans möchten vielleicht ohne Mindstorms objektorientiert in Python programmieren, die moderne Bluetooth Low Energy Kommunikation verwenden und haben weniger Lust am Umgang mit einem Arduino und dessen Peripherie.
Für solche „Lego-Nerds“ ist der hier vorgestellte Hack des Lego Boost Roboters die Lösung: Die umfangreiche Lego-Hardware kostet nur ca. 100 €. Zum Programmieren wird die kostenlose Programmierumgebung Python 3 verwendet, die es für Windows, Mac und Linux gibt. Ein Raspberry Pi 3 zum Programmieren reicht völlig aus. Und wenn man möchte, dann kann man den Steuerrechner in Form eines 10 € Raspberry Pi Zero Rechners auf dem Lego Boost Roboter gleich mitfahren lassen!

Da Python inzwischen weit verbreitet ist, sind der Roboterhardware keine Grenzen gesetzt: Steuerung via Bildverarbeitung, Kommunikation mit einer Cloud oder das grafische Darstellen von Messdaten sind ohne großen Aufwand möglich, um nur einige Potentiale dieses Konzepts zu nennen. Da Python ähnlich wie Java auf einer virtuellen Maschine läuft, kann man den selben Python Code auf unterschiedlichen Rechnerplattformen ausführen. Z.B. kann man das Roboterprogramm auf einem Windows 7 PC entwickeln und dann auf einen Raspberry Pi Zero übertragen, der schlussendlich den Lego Boost Roboter steuert.

Das Konzept vom Lego Boost sah ursprünglich vor, dass dieser Roboter ausschließlich zusammen mit ei­nem Tablet genutzt wird, welches als Master-Rechner für die Steuerung, für die Programmierum­gebung als auch für die Darstellung der Bauanleitungen verwendet wird. Zwischenzeitlich gab es diese Programmierumgebung auch für ein Windows 10 Betriebssystem, sie wurde jedoch in 2019 wieder eingestellt. Im PC-Bereich kann man Stand März 2020 den Lego Boost leider nur mit einem Apple-PC programmieren - von Linux ganz zu schweigen. Generell steht weniger das eigenständige Konstruieren und Programmieren im Vordergrund, sondern das Nachbauen von vor­gegebenen Modellen sowie ein anschließendes vorgegebenes schrittweises Programmieren nach Plan. Kreatives Konstruieren und Programmieren steht nicht im Vordergrund. Es ist aber möglich über die sogenannte "creative canvas" .

Andere Programmierumgebungen als diese grafikbasierte und recht rudimentäre werden von Lego wohl im Hinblick auf die Alterszielgruppe bewusst nicht angeboten und auch nicht unterstützt.

Zum Glück gab es von Anfang an kreative Hacker, die die unverschlüsselte Bluetooth Low Energy (BLE) Kommunika­tion der Lego-App mit dem Boost Roboters belauscht haben. Mit dem dadurch gewon­nen Wissen wurden von mehreren Personen quelloffene Softwarebibliotheken erstellt. Dadurch wurde es möglich, den Lego Boost mit der kostenlosen Open Source Programmiersprache Py­thon zu betreiben bzw. programmieren. Anders als bei der Lego-App ist hier die Rechnerplatt­form egal, denn Python gibt es auf PCs mit Windows, Linux oder Mac OS, sowie auf den meisten Einplatinen­computern wie beispielsweise dem Raspberry Pi.

Inzwischen (Stand 2019) hat Lego jedoch das Kommunikationsprotokoll offengelegt. Der hier vorgestellte Hack ist daher mehr von historischer Natur.
Zum Programmieren des Lego Boost unter Python steht unter GitHub auch die exzellente Bibliothek "pylgbst" bereit.

Die Bibliothek pylgbst sollte - wenn sie auf Anhieb einwandfrei funktioniert - dem auf dieser Seite zum Download angebotene Bibliothek "pylegoboost" vorgezogen werden. Möchte man den Code nachvollziehen, dann eignet sich pylegoboost besser, da der Code überschaubarer und besser kommentiert ist. Die PDF-Doku im Download hilft, die technischen Hintergründe beider Bibliotheken besser zu verstehen.