Codebug angetestet: Bug mit Feature

Das Codebug-Projekt(öffnet im neuen Fenster) begann als eine Kickstarter-Kampagne im März 2015. Mittlerweile ist die kleine programmierbare Experimentierplatine mit Minidisplay in Käferform auch im regulären Handel erhältlich. Wir haben ausprobiert, was sich damit anstellen lässt.
Der Käfer ist kein Arduino
Basis des Codebugs ist nicht wie mittlerweile üblich ein Atmega-Microcontroller, sondern ein Microcontroller der früher bei Elektronikeinsteigern sehr populären PIC-Familie: ein PIC18F25K50 von Microchip. Optischer Blickfang auf der Platine ist allerdings die Matrix aus 25 quadratisch angeordneten roten LEDs. Dazu kommen zwei Buttons und sechs als Beine bezeichnete ringförmige Kontakte. Vier dieser Kontakte dienen als GPIO und können unter anderem auch als kapazitive Sensoren verwendet werden.

Eigene Programme werden über eine Micro-USB-Schnittstelle aufgespielt. Darüber erhält die Platine auch Strom. Alternativ kann sie auch durch eine Knopfbatterie vom Typ 2023 versorgt werden. Über eine Buchsenleiste kann der Käfer auch per SPI angesprochen werden. Die Kontakte der Buchse sind so angeordnet, dass der Codebug direkt auf die korrespondierenden Pins der GPIO-Leiste eines Raspberry Pi gesteckt werden kann.
Schieben statt tippen
Eine Entwicklungsumgebung im klassischen Sinne oder vergleichbar mit der Arduino-IDE gibt es für den Codebug nicht. Stattdessen kommt ein visueller, webbasierter Programm-Editor(öffnet im neuen Fenster) zur Anwendung. Es handelt sich dabei um den Blocky-Editor(öffnet im neuen Fenster) von Google. Er listet alle Programmierkonstrukte wie auch Funktionsaufrufe in einem Menü und der gewünschte Block wird per Drag-and-Drop auf einem Zeichenblatt angeordnet. Dort werden sie dann mit anderen Blöcken zu einem Programmfluss kombiniert.









Ähnlich wie bei einem Puzzle kann dabei nicht jeder Block mit jedem beliebig kombiniert werden, vielmehr signalisieren Marker, wo welche Blöcke andocken können. Der Editor verhindert so zwar nicht, dass unsinniger Code entsteht, aber Syntaxfehler sind ausgeschlossen.
So haben wir ein kleines Programm erzeugt, das beim Berühren eines der vier Beine mit einem Pfeil auf dem Display anzeigt, wo es berührt wurde. Das dauerte keine zehn Minuten. Zugute kam uns dabei, dass ganze Blöcke im Editor auch kopiert und eingefügt werden können.
Das eigene Programm ausprobieren
Wer sein Programm testen will, muss es nicht sofort auf den Codebug herunterladen. Stattdessen steht ein Emulator zur Verfügung, mit dem das Programm getestet werden kann. Es läuft zwar langsamer als auf dem Codebug selbst, funktioniert aber ansonsten genauso wie das Original.
Die Übertragung des Programms auf den Codebug gestaltet sich recht einfach. Der A-Button muss auf der Platine gedrückt werden, während die USB-Verbindung zum Computer eingesteckt wird. Daraufhin erscheint es als USB-Laufwerk, ohne dass eine Treiberinstallation erforderlich wäre. Nach einem Klick auf den Download-Button im Web-Editor wird das kompilierte Programm zum Download angeboten. Durch Speichern auf dem simulierten USB-Laufwerk wird es übertragen. Das dauert nur Sekunden. Nach einem Druck auf die B-Taste wird unser Programm dann gestartet.









Allerdings klappt das nicht mit jedem Browser. Firefox zum Beispiel speichert eine Datei während des Downloads unter einem temporären Namen und benennt sie dann um. Das funktioniert mit dem Codebug nicht. Stattdessen muss die Datei zuerst normal auf der Festplatte gesichert und dann auf den Codebug kopiert werden.
Das Programm wird im 32 KByte großen Flash-Speicher des Microcontrollers hinterlegt und startet automatisch, sobald der Codebug Strom erhält, sei es per USB oder Batterie. Es wird nirgendwo dokumentiert, wie viel vom Flash-Speicher für eigene Programme verfügbar ist. Allerdings spielt das auch eine untergeordnete Rolle, längere Programme mit dem visuellen Editor zu erstellen, ist eher mühselig.
Dem Anfänger helfen Beispielprojekte
Allerdings muss nicht jedes Programm von Grund auf selbst zusammengeklickt werden. Die Webseite zum Projekt bietet nicht nur eine ganze Reihe von Anleitungen und vorbereiteten Projekten, sie können in Form von sogenannten Remixen auch als Basis für eigene Projekte benutzt werden.
Interessanterweise gibt es neben der visuellen Ansicht auch eine echte Code-Ansicht im Editor. Dabei handelt es sich aber tatsächlich um eine reine Ansicht: Bearbeitet werden kann der Code darin nicht. Allerdings verrät die Code-Ansicht, dass intern Javascript aus dem visuellen Editor erzeugt wird. Daraus generiert ein serverseitiger Compiler das Binary zum Überspielen auf den Codebug.
Leider gibt es keine Dokumention der Toolchain, um selbst Binarys für den Codebug zu erstellen. Der Nutzer hat derzeit keine Alternative zum visuellen Web-Editor.
Obwohl der visuelle Editor aus Sicht des klassischen Programmierers eher hinderlich scheint, an einer Stelle spielt er seinen Vorteil aus. Die LED-Matrix kann über eine ganze Reihe von Methoden sehr komfortabel verwendet werden. Statt zur Darstellung von Sprites und Text umständlich jede einzelne LED anzusteuern, wird das entsprechenden Blockelementen überlassen. Um ein Sprite zu erzeugen, wird dabei im Editor jede LED angeklickt, die leuchten soll. So ist im Programmcode stets direkt ersichtlich, was später auf der LED-Matrix zu sehen ist.
Ein Minidisplay für das Raspberry Pi
Wer doch komplexere Dinge mit dem Codebug anstellen will oder wem bei der serverseitigen Kompilierung unwohl ist, der kann den Codebug auch per Raspberry Pi und Python ansprechen. Dazu muss erst ein spezielles Programm auf der Platine aufgespielt werden. Danach wird der Codebug auf eine bestimmte Position der GPIO-Leiste des Raspberry Pi gesteckt, die Version des Raspberrys spielt dabei keine Rolle. Über diesen Kontakt erhält die Platine auch ihren Strom vom Raspberry.
Über eine Python-Bibliothek(öffnet im neuen Fenster) wird der Codebug dann per I2C-Bus angesprochen. Ein Python-Skript auf dem Raspberry kann dann die LED-Matrix ansteuern, aber auch die Buttons auswerten. So zeigt unser Raspberry Pi nun die aktuelle Uhrzeit und das Datum auf dem Codebug an.









Der Codebug ist in Deutschland bei Watterott Electronics für 20 Euro erhältlich(öffnet im neuen Fenster) .
Fazit
Der Codebug erfordert für eine Reihe von optisch unterhaltsamen Programmierexperimenten kein Zubehör, keine Installation und keine Kenntnisse in einer Programmiersprache. Die verfügbaren Beispiele bieten einen schnellen Einstieg und frühe Erfolgserlebnisse – vorausgesetzt, jemand mit Englischkenntnissen ist in der Nähe.
Leider fehlt derzeit ein "Upgrade"-Pfad nach oben. Will die neugierige Schülerin oder der neugierige Schüler die Kenntnisse vertiefen, muss doch zu einem Arduino oder vergleichbarem Board gegriffen werden. Oder als Nächstes steht doch ein Raspberry Pi an und der Codebug findet damit seine Zweitverwertung als Minidisplay.
So bietet sich der Codebug vor allem für (Groß-)Eltern an, die sich noch nicht sicher sind, ob sich der Nachwuchs fürs Programmieren oder Elektronik begeistern kann – oder die Begeisterung lange anhält.



