Zum Hauptinhalt Zur Navigation

Oxocards im Test: Minirechner, die andere Lerncomputer toppen

Leistungsstarkes Display , eigene Programmiersprache und pädagogischer Ansatz: Die Oxocards bieten eine einzigartige Kombination zum Lernen von Elektronik und Programmierung.
/ Thomas Ell
29 Kommentare News folgen (öffnet im neuen Fenster)
Die Oxocards haben ein eingebautes RGB-Display. (Bild: Thomas Ell)
Die Oxocards haben ein eingebautes RGB-Display. Bild: Thomas Ell

Im Laufe der Jahre habe ich schon einige Mikrocontroller ausprobiert: Arduino Uno, Adafruit Feather und Circuit Playground oder ein TTGO-T-Display. An alle kann man Elektronik wie Sensoren, LEDs oder Tasten anlöten und dann Programme schreiben, die diese Sensoren abfragen und damit Dinge steuern oder einfach nur die gemessenen Werte anzeigen. Dabei kann man viel lernen, muss aber vorab die Hürde Lötkolben meistern.

Alle haben indes dasselbe Problem – das Geheimnis ihrer Leistungsfähigkeit: Die Fähigkeit, eine Folge von durchdachten Anweisungen extrem schnell und ohne einen einzigen Fehler immer wieder zu wiederholen, ist völlig unsichtbar. Und für die Ausgabe von mit den eingebauten Sensoren gemessenen Werten muss ich kreativ werden (was grundsätzlich gut ist), um sie durch Farbverläufe oder das Aktivieren von einer bestimmten Anzahl der RGB-LEDs zu simulieren.

An dieser Stelle kommen die Oxocards ins Spiel, die mit einem eingebauten RGB-Display und der eigenen Programmiersprache Nanopy sogar die Ausgabe von 2D- und 3D-Grafik ermöglichen und so mühelos alle anderen Lerncomputer toppen.

Galaxy, Artwork und Science

Mit einer Auflösung von 240 x 240 RGB-Pixeln haben sie praktisch eingebaute 57.600 LEDs und können damit bei weitem mehr visualisieren als die anderen. So ist es möglich, Text – und damit von den Sensoren gemessene Werte – direkt auf das Display zu schreiben, aber auch Bilder darzustellen sowie 2D- und 3D-Animationen zu erzeugen.

Die Oxocards gibt es in drei Versionen(öffnet im neuen Fenster) : Galaxy, Artwork und Science. Galaxy und Artwork unterscheiden sich lediglich in der äußeren Gestaltung und den vorgeladenen Programmen, während die Hardware bei Science etwas anders ist.

Alle haben als Herz den ESP32, das tolle Display, fünf Tasten und einen Beschleunigungs- bzw. Neigungssensor, mit dem es möglich ist, Bewegungen festzustellen und interessante Experimente zu programmieren. Die Science-Version hat darüber hinaus sieben Sensoren, mit denen zwölf verschiedene Messgrößen abgefragt werden können. Dafür gibt es aber keinen Lautsprecher, den wiederum die Galaxy und Artwork haben.

Anzeige

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Die vielen Sensoren der Science machen über das reine Programmierenlernen hinaus Lust auf das Erforschen der Umwelt. So könnte man Wetterdaten erfassen und in einem Grafen darstellen oder Temperatur und Licht im Kühlschrank ermitteln. Der Lautsprecher ist vor allem bei Spielen zur akustischen Untermalung sinnvoll.

Die Oxocards haben allerdings noch weitere Besonderheiten: So wurde eine an Python angelehnte eigene Programmiersprache entwickelt, die nicht nur alle wesentlichen Elemente einer Programmiersprache hat. Sie enthält auch Befehle aus dem 2D- und 3D-Grafik-Bereich, mit denen es möglich ist, erste Erfahrungen in der Programmierung von 2D-Spielen oder Grafikanwendungen zu sammeln. Das ist erstaunlich, da das Display mit seinen 240 x 240 Pixeln nicht unbedingt üppig mit Auflösung ausgestattet ist. Die vielen beigefügten Anwendungen demonstrieren aber sehr schön, dass es geht.

Nanopy: eine eigene Programmiersprache

Da die Sprache als Interpreter arbeitet, sind die damit ablaufenden Programme bei weitem nicht so schnell wie Programme sein können, die zum Beispiel mit C++, der Arduino-IDE für einen ESP32, kompiliert werden. Aber das ist auch nicht schlimm, da die Oxocards vor allem zur Schulung konzipiert wurden. Und dabei zeigt sich das Konzept mit dem direkt auf der Karte installierten Interpreter als weit überlegen. Bei der Arduino-IDE muss man immer erst den Programmcode kompilieren und anschließend per USB auf den ESP32 übertragen. Das dauert manchmal mehrere Minuten.

Ganz anders bei der Oxocard: In einer Sekunde sind Programme über die zur Entwicklung gedachten Webseite auf die Oxocards übertragen und gestartet. Eventuelle Fehler oder beim Arbeiten entstehende Ideen können in wenigen Sekunden beseitigt bzw. eingebaut und ausprobiert werden. Keine Zeit, um zwischendurch Social Media zu kontrollieren oder einen Youtube-Film anzusehen, wie es mir manchmal beim Arbeiten mit der Arduino-IDE passiert. So macht das Arbeiten Spaß und ein aufkommender Flow wird nicht durch Wartezeiten unterbrochen.

Ist das Erlernen von Nanopy sinnvoll?

Das Verständnis einer Programmiersprache ist immer sinnvoll. Die zum Programmieren erworbenen Kenntnisse der Planung einer algorithmischen Lösung und deren Umsetzung, mit egal welcher Programmiersprache, ist eine Fähigkeit, die im Leben grundsätzlich von Vorteil ist und auch bei Problemen, die scheinbar nichts mit Programmieren zu tun haben, eingesetzt werden kann. Und hat man eine prozedurale Programmiersprache wie Nanopy erst einmal verstanden, wird man auch jede andere prozedurale Programmiersprache wie C++, Java oder Javascript leichter erlernen können.

Anzeige

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Da Nanopy von der Syntax und den Möglichkeiten her Python ähnelt, erlernt man im Grunde auch eine aktuell gefragte Programmiersprache, die bei Webentwicklung, Datenanalyse und Datenvisualisierung, Machine Learning und künstlicher Intelligenz, Automatisierung und Scripting, wissenschaftlichem Rechnen und akademischer Forschung zum Einsatz kommt.

Progamme debuggen

Doch der Interpreter hat noch einen – gerade für das Erlernen einer Programmiersprache – größeren Vorteil. Es ist möglich, die Programme zu debuggen. Und wenn Anfänger jetzt denken, was ist denn das schon wieder, wird jeder Profi begeistert sein.

Für Neulinge: Der Debugger ermöglicht es, dem Interpreter beim Arbeiten zuzusehen. Das geht, indem man ein Programm nicht mit voller Geschwindigkeit ablaufen lässt, sondern stattdessen immer nur einen einzigen Befehl ausführt. So sieht man exakt, was der Interpreter gerade macht, kann den Befehl lesen und gleichzeitig sehen, was auf dem kleinen Display passiert. So versteht man den Ablauf eines Programms viel besser.

Es geht aber noch weiter: Gleichzeitig können auch die Inhalte der Variablen eingesehen werden – diese sind oft eine der größten Hürden für Anfänger. Denn wenn Programmcode auf den Inhalten von Variablen basiert – und das ist immer der Fall – basieren viele Fehler darauf, dass Programmierer beim Schreiben des Programmcodes zwar bestimmte Konstellationen von Werten in den Variablen annehmen, aber diese sich durch den Ablauf ändern – und das manchmal auch auf eine von den Programmierern nicht bedachte Weise.

Wenn man in dieser Situation aber genau nachsehen kann, was bei einem bestimmten Befehl mit dem Wert einer Variablen passiert, kann man Fehler viel schneller erkennen.

Ein Beispiel beim Arbeiten mit der Arduino-IDE: Wenn ich einen hartnäckigen Fehler suche, baue ich von Hand an bestimmten Stellen im Code 'Serial.println'-Anweisungen ein, muss anschließend neu kompilieren und hochladen und sehen, was das Programm für Werte ausgibt. So geht das manchmal eine ganze Weile; immer wieder baue ich an anderen Stellen Ausgaben ein, immer wieder muss ich kompilieren und hochladen, bis ich irgendwann den Fehler gefunden habe. Anders mit der Oxocard: Ich starte das Programm im Debug-Modus, kann mich in Einzelschritten durch den Code tasten und dabei die ganze Zeit die Variablen und das Geschehen auf dem Display im Auge behalten.

Leider kann diese bedeutende Möglichkeit bei vielen zu den Oxocards mitgelieferten Beispielen nicht gut genutzt werden. Denn bei diesen Demos verursachen viele Befehle keine Veränderung auf dem Display, obwohl die Bezeichnungen der Befehle (z.B. drawLine, drawRectangle, drawTriangle, drawCircle) dies suggerieren. Das liegt daran, dass erst beim 'update()'-Befehl tatsächlich etwas auf das Display gezeichnet wird.

Pädagogischer Ansatz

Die Methode zur Wissensvermittlung ist bei den Oxocards völlig anders als bei anderen mir bekannten Mikrocontrollern zum Lernen. Anstatt erst etwas zu erklären und dann darauf aufbauend die Idee eines kleinen Programms zu entwickeln, sind die Oxocards gespickt mit kleinen Programmen, die unmittelbar ausführbar sind. Wenn sie nicht schon auf den Oxocards gespeichert sind, können sie binnen einer Sekunde mit einem einzigen Mausklick auf die Karte gebracht und gestartet werden. Da nahezu alle Programme durch den Einsatz des Displays attraktive Ausgaben bieten, bin ich neugierig zu erfahren, wie das gemacht wird.

Dies ist mit der erwähnten Webseite möglich. Sie dient als Integrierte Entwicklungsumgebung (IDE) für die Oxocards. Sie teilt sich in drei Teile auf, auf denen ganz links alle Beispiele und eventuell schon eigene Programme aufgeführt, in der Mitte der aktuell bearbeitete Programmcode und rechts zusätzliche Erklärungen sind. Mit dieser Webseite können Programme angesehen, verändert und neu geschrieben sowie Variablen angesehen und mit dem Debugger untersucht werden. Die Seite ist modern und ansprechend designt und größtenteils selbsterklärend.

Anzeige

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Aber zurück zum pädagogischen Ansatz. Die IDE ist der Ort, an dem alle mitgelieferten Programme verändert werden können. In der zartesten Form geschieht dies über das Tab Konstanten im rechten Teil der Seite. Dort werden automatisch Regler für im Programmcode gefundene Konstanten dargestellt, die mit der Maus verändert werden können. Überträgt man anschließend den Programmcode wieder zur Oxocard, wirken sich die durch die Regler vorgenommenen Änderungen direkt auf die Ausgabe des Programms auf dem Display aus.

Oxocard-Anwender (normalerweise Lernende) haben durch eine durch sie ausgelöste Aktion etwas bis zu diesem Moment schwer Vorstellbares erreicht: Sie haben selbst ein Programm manipuliert, ohne dass dieses anschließend abstürzt. Im Idealfall führt das zu einer intrinsischen Motivation, die mit viel Glück selbsterhaltend ist und zu immer weiterführenden Änderungen führt, die nebenbei das Wissen über Programmierung deutlich verbessern oder überhaupt erst aufbauen.

Die Programmbeispiele sind vielfältig

Die Programmbeispiele sind klug gewählt. Entsprechend der drei verschiedenen Karten sind bei Science viele Programme enthalten, die Sensoren abfragen und deren Werte in verschiedener und ansprechender Art und Weise auf dem Display ausgeben werden. Die Artwork enthält vor allem Beispiele aus dem Bereich Algorithmische Kunst, hier findet eine Symbiose aus Kunst, Mathematik und Informatik statt. Die Galaxy hingegen bedient sich am Spieltrieb des Menschen, der ein wichtiger Faktor bei Entwicklungs- und Lernprozessen sein kann.

Die Artwork- und Galaxy-Karten unterscheiden sich sowieso nur im optischen Design und sind in der Hardware gleich. Lediglich die Science ist etwas anders aufgebaut und enthält vor allem Sensoren und dafür keinen Lautsprecher. Das heißt, Spiele auf der Science haben keine Soundausgabe.

Bei den Spielen hat man sich viel Mühe gegeben und teilweise berühmte Klassiker nachprogrammiert. Besonders hervorheben möchte ich Frogger, Asteroids, Lunar Lander und Miner, eine Scrambler Variante. Dass diese berühmten Spiele unter Nanopy auf den Oxocards laufen, gibt einem die Möglichkeit, sie selbst nach eigenen Vorstellungen umzubauen oder weiterzuentwickeln. Das finde ich eine großartige Motivation, wobei zu berücksichtigen ist, dass das dann schon etwas für Fortgeschrittene ist.

Anzeige

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Aber auch viele Demos sind außergewöhnlich. Ein paar Beispiele, die mir besonders gefallen haben:

  • Bücher→Informatikmagie-Ordnung und Chaos: Eine Vielzahl von bunten Bällen fliegen hin und her und prallen von den Seiten ab.
  • Bücher→Informatikmagie-Schneeflocke: Es werden immer wieder Schneeflocken erzeugt.
  • Galaxy→Demos→Aliens: Es werden außerirdische Lebensformen als 2D-Darstellung generiert.
  • Galaxy→Demos→Speed: Animation, die an den Blick aus einem Fenster der Star Trek Voyager erinnert.
  • Beispiele→2D→Isometrie: Animation von dreidimensional dargestellten Quadern, die auf dem Display vorbeilaufen. Erinnert an das Spiel Zaxxon auf dem C-64.
  • Beispiele→3D→Endless: Eine Animation einer virtuellen Landschaft, über die man scheinbar fliegt.
  • Science→Demos→Game of life: Conway's Life, eine Lebensimulation.

Ein bisschen Magie

Speziell für die Oxocards hat der Unternehmer, Erfinder und Designer Thomas Garaio ein Lehrbuch(öffnet im neuen Fenster) geschrieben, in dem direkt anhand der Programmbeispiele einzelne Aspekte der Programmiersprache Nanopy besprochen werden.

Die ersten Kapitel bzw. Seiten behandeln die Möglichkeiten der Einrichtung und grundsätzliche Erklärungen. So richtig los geht es erst ab Seite 37 mit dem Kapitel Lernen am Beispiel. Ab da werden einige der Beispielprogramme genau erklärt. Es gibt immer auch Information zu Hintergründen und auch die zugrunde liegende Mathematik oder Physik wird knapp, aber meist ausreichend erläutert. Das gefällt mir sehr gut.

Wenn man dieses Kapitel durchgearbeitet und so schon einiges an Erfahrung mit der Oxocard, der IDE und dem Arbeiten mit beidem gesammelt hat, geht es auf Seite 95 weiter mit einer detaillierten Erklärung der Programmiersprache Oxoscript (Nanopy). Mit der ab Seite 129 beginnenden Klassen-, Funktions- und Sprachreferenz werden alle Möglichkeiten noch einmal detailliert vorgestellt.

Das Informatikmagie-Buch ist eine hervorragende Ergänzung zu den Oxocards und unbedingt zu empfehlen. Schade, dass es den Oxocards nicht einfach beliegt, das würde das Lernangebot rund machen. Ich finde sogar, dass es für Nutzer, die mit den Oxocards das Programmieren und darüber hinaus weitere Konzepte der Informatik lernen wollen, unabdingbar ist.

Für mich als erfahrenen Entwickler geht es auch ohne Buch, und die Oxocards sind schicke Gadgets für den Schreibtisch, aber zusammen mit dem Buch sind sie auf jeden Fall ernstzunehmende Teilnehmer im Markt der Lerncomputer. Leider finden sich im Buch keine Erklärungen zu den Spielen. Eine ausführliche Erklärung des Aufbaus von Frogger oder Lunarlander wäre eine tolle weitere Motivation gewesen. Aber zugegeben, daraus hätte man vielleicht sogar ein eigenes Buch machen können. Vielleicht kommt das ja noch?

Beispielprogramm

Interessanterweise gibt es in den ganzen Beispielen kein einziges, das sich mit der grafischen Darstellung eines Verlaufs von Sensordaten beschäftigt. Gerade für die Science-Karte und ihre Sensoren ist das aber eine nützliche Sache. Darum habe ich mir erlaubt, etwas dafür zu programmieren. Das Programm soll als Beispiel für eigene Versuche dienen. Im Programm habe ich allerdings die eigentliche Temperaturabfrage auskommentiert, um stattdessen durch Zufallswerte eine gute Demonstration der Möglichkeiten zu zeigen. 'delay' sollte an die eigenen Anforderungen angepasst werden.

Logger:

        temps:int[24]

stroke (11, 255, 11)
fill (11, 255, 11)

pointer = 0

def onDraw():
    clear
    //temps[pointer] = getTemperature()
    temps[pointer] = random(20, 50)
    pointer = pointer + 1
    if pointer > 23
        pointer = 0
    for i in [0..23]
        drawPointer = pointer + i
        if drawPointer > 23
            drawPointer = drawPointer - 24
        drawRectangle(i*10, 239 - temps[drawPointer], 6, temps[drawPointer])
    delay(100)
    update()

Etwas Hardware

Wie erwähnt basieren die Oxocards auf dem von mir geschätzten ESP32-Mikrocontroller. Wahrscheinlich ist es möglich, diesen und auch das eingebaute Display sowie das Fünftastenkeyboard mit der Arduino-IDE in C++ zu programmieren. Aber wozu sollte man das machen? Es geht hier nicht um maximale Geschwindigkeit, sondern um den maximalen Lernerfolg – und da bin ich mir sicher, dass dieser mit dem auf den Oxocards befindlichen Nanopy Interpreter eher erreicht wird. Man sollte Nanopy aber auch nicht nur als für Lernzwecke entwickelten Interpreter abtun. Für eine Vielzahl von ernsthaften Anwendungen ist die Sprache mehr als ausreichend.

Anzeige

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Eine nette Idee ist der mitgelieferte Ständer aus Pappe, um die Oxocards auf dem Schreibtisch aufzustellen. Dazu passend wird ein einfaches USB-Kabel mit einem 90-Grad-Stecker mitgeliefert, so dass das Kabel bei auf dem Ständer befindlichen Oxocards nicht nach unten, sondern nach hinten abgeführt wird. Für dieses Kabel, das an einem Ende einen USB-A-Anschluss hat, gibt es noch einen kleinen Adapter, mit dem der USB-A Anschluss in einen USB-C Anschluss konvertiert werden kann.

Die Schweizer Oxon AG bietet in ihrem Shop weitere Artikel an, von denen ich noch das Gooseneck-USB-Kabel erwähnen möchte. Damit kann man die Oxocards in einen USB-Anschluss stecken und nach Belieben ausrichten. Es gibt auch einen Oxocharger, der aber auch durch eine beliebige andere Powerbank ersetzt werden kann.

Verfügbarkeit und Fazit

Zurzeit kostet eine der beiden günstigeren Oxocards, die Artwork, bei Thalia knapp 60 Euro, die Science knapp 90 Euro. Die Galaxy scheint im Moment nicht lieferbar zu sein. Wer noch das wirklich gute Buch Informatikmagie dazu haben möchte, zahlt noch einmal 40 Euro extra – also mit Versand knapp über 100 Euro.

Anzeige

Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.

Fazit

Die Oxocards sind leistungsstarke Lerncomputer mit einem eingebauten RGB-Display, die sich von anderen Mikrocontrollern abheben. Mit ihrer eigenen Programmiersprache Nanopy und einem Debugger bieten sie ein interaktives und spielerisches Lernerlebnis. Die vielfältigen Programmbeispiele, darunter Spiele, Sensorabfragen und algorithmische Kunst, ermöglichen es Lernenden, ihre Programmierkenntnisse zu erweitern.

Thomas Ell interessiert sich für Fotografie, 3D-Drucker, Roboter, technische Gadgets und Technik allgemein. Er kann mit Delphi, Lazarus, ArduinoIDE, Visual Studio und Eclipse in Object Pascal, C++, VB.NET, Java, Javascript und Maschinensprache programmieren. Er hat ein Blog, Steinlaus.de(öffnet im neuen Fenster) .


Relevante Themen