Calliope und Co

Durch Entwicklungsplattformen wie Blockly und anderen gibt es einige Kleinstcomputer, mit denen auch Kinder erste Gehversuche mit Programmieren und Hardware machen können. Im Jahr 2016/2017 hat sich hier einiges getan und insbesondere der Calliope ist eine sehr interessante Plattform, von welcher ich auch eine gewisse Beständigkeit erwarte.

Mittlerweile gibt es eine Version 2.0 mit größerem Flashspeicher.

Was ist drauf?

Auf einer kleinen Platine befinden sich ganz viele Komponenten, so dass ohne Löten oder externe Beschaltungen sehr viele Aufgabenstellungen bewältigt werden können. Neben dem eigentlichen Mikroprozessor (CPU, RAM, Flash) sind vorhanden:

  • Lautsprecher
    Zum Wiedergeben von einfachen Piep-Tönen. HiFi-Sound ist nicht zu erwarten aber unterschiedliche Töne helfen als Feedback und als "Debug-Ausgabe" bei der Fehlersuche und Statusanzeige
  • Mikrofon
    Primär zum Erfassen von Lautstärken
  • RGB-LED
    Eine LED die per Software unterschiedliche Farben annehmen kann
  • 5x5 LED Matrix/Helligkeit
    Die einfache Matrix erlaubt die Ausgabe von Zahlen, und geometrischen Figuren. Da jede LED zugleich auch etwas Fotodiode ist, kann das Feld auch als Helligkeitsmesser zweckentfremdet werden
  • Zwei Taster A und B
    Damit ist eine direkte Steuerung des Programms möglich.
  • 6 Anschlusskontakte
    An allen Ecken der Platine ist je ein Kontakt, der einfacher per Krokodilklemme, Schrauben, Bananenstecker o.ä. direkt genutzt werden kann. Abgesehen von den Die Funktionen sind
    • Masse
    • Vcc (3,3 Volt max.)
    • P0-P3
      Alle Anschlüsse sind Eingänge und Ausgänge. Die beiden unteren (P1/P2) sind sogar hochohmig und reagieren auf Fingerberührungen.
  • Lagesensor/Beschleunigungssensor
    Damit kann eine Software die Lage des Calliope im Raum erkennen und auch "Schütteln" erkennen
  • Kompass
    Erlaubt die Erfassung der Ausrichtung zum magnetischen Nordpol
  • Zwei Grove-Schnittstellen (UART/Seriell/Analog und I2C
    Für diese generischen Schnittstellen gibt es sehr viele Zusatzmodule
  • Temperatursensor über das CPU-Thermometer
    Die CPU hat einen eingebauten Temperaturfühler, der grob auch Rückschlüsse auf die Raumtemperatur zulässt.
  • Motorsteuerung
    Auf dem Board ist zudem ein Motortreiber, der zwei Motoren in eine Drehrichtung oder einen Motor in beide Richtungen steuern kann. Das reicht schon für einfache Fahrzeugsteuerungen
  • GPIO-Feld
    Wer in die Lochreihe einen Pfostenstecker/Stiftleiste einlötet, kann auf weitere Ports des Mikroprozessors zugreifen
  • Bluetooth
    Für die Kommunikation zwischen dem Modulen als auch zu Tablets, Smartphones etc.

Der Umfang ist also durchaus mächtig und flexibel einsetzbar. Ich bin sicher, dass der aktuelle Preis um die 35€ irgendwann noch sinken wird, wenn die Kosten für Design, Entwurf, Tests und Schulungsunterlagen eingespielt sind. Ursprünglich sollte das Board ja mal um die 16€ kosten und ich denke in dem Bereich dürfte ich letztlich auch der Materialpreis bewegen, wenn das Board wirklich für jedes Schulkind abgegeben werden soll. Der Schaltplan steht z.B. frei im Internet

Hinweis: Es gibt anscheinend mindestens zwei Versionen.

Bezugsquelle

Auch wenn eine Calliope gGmbH das Design und die Entwicklung macht, läuft der Vertrieb primär über den Cornelsen Verlagskonto, in dem es auch die entsprechenden Bücher gibt. Für ein "Schulprojekt" ist das vermutlich auch ein praktikabler Weg. Wenn Sie als Elternteil oder MINT-Verein aber eigene Workshops anbieten wollen, ist der Calliope seit Augist 2017 auch für Privatpersonen einzeln und als Klassensatz erhältlich. Mittlerweile gibt es auch andere Vertreiber.

Ich bin gespannt, ab wann entsprechende Nachbauten auf den Markt kommen.

Programmierung

Die Programmierung erfolgt einfach per Browser in einem webbasierten Editor. Davon gibt es sogar mehrere Plattformen. Am Ende kann man dann das Programm "Herunterladen" und kopiert es per USB einfach auf den Calliope. Der Calliope erscheint dabei als "Festplatte" auf einem PC, MAC oder Unix. Es kommen also weder serielle Port, JTAG-Adapter o.ä. zum Einsatz. Voraussetzung ist also ein PC mit Internetzugang. Der Zugang kann aber auf die entsprechenden URLs beschränkt werden.

Das Calliope-Buch
https://www.dpunkt.de/calliope
Das Buch für ca. 23€ gibt es online sogar kostenfrei und ist sehr gut für das Selbststudium von Kindern geeignet.

Die Programmierung selbst erfolgt erst einmal per "Blöcke Verketten" aber kann sehr schnell auch in JavaScript erfolgen. Mit der ersten Verbindung am PC erkennt Windows selbst die Treiber:

Und kurz drauf erscheint im Explorer ein neues Laufwerk, auf dem auch zwei Dateien vorliegen:

Die HTML-Seite enthält eigentlich nur einen Code, der einen individuellen Redirect auf die calliope-Webseite vornimmt. Die relevante Zeile ist. Ich denke die mit "xxxx" Unkenntlich gemachte ID ist eine Art Seriennummer über die Calliope tracken kann, welche Geräte genutzt werden.

window.location.replace("https://calliope.cc/mini/12A0/0242/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

Die Datei "Details.txt" enthält folgende Informationen über meinen Calliope:

# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: xxxxxxxxxxxxxxxxxxxxx
HIC ID: 97969901
Auto Reset: 1
Automation allowed: 0
Daplink Mode: Interface
Interface Version: 0242
Bootloader Version: 0242
Git SHA: eab079b8a1326f0a3647e3df33cf5dda13994a1f
Local Mods: 1
USB Interfaces: MSD, CDC, HID
Bootloader CRC: 0x459c23c8
Interface CRC: 0x772b65c8

Auch hier ist wieder die UniqueID (habe ich mit xxxx unkenntlich gemacht) zu sehen.

Schulungsmaterial

Wie nicht anders zu erwarten, gibt es eine Menge Handreichungen, Videos u.a. zum Calliope im Internet. Hier eine Auswahl. Ich bin sicher, die Liste würde ansonsten sehr lang werden.

Programmieren mit Open Roberta
https://www.roberta-home.de/initiative/youtube/
5 Folgen zur Programmierung des Calliope
https://www.youtube.com/user/RobIAIS

Der Calliope ist aus meiner Sicht eine erste kurzweilige Plattform um Kindern und Jugendlichen die Thematik näher zu bringen. Es müssen nicht alle "Computerfreaks" werden aber vielleicht verstehen Sie dann eher, welche Faszination davon ausgehen kann. Mit der Bluethooth-Verbindung steht der Weg zu ersten App-Entwicklungen oder Kopplungen offen. Aber auch wenn die Plattform für eigene Projekte im Vergleich zum ESP8266 PIC oder selbst Arduino-Klone teurer ist, ist sie doch ein guter Startpunkt für Eigenentwicklungen.

Ähnliche Systeme

Hier eine Auflistung weiterer Systeme

Allen soll gemeinsam sein, dass Sie, mit Hilfe eines Computers, auch von Kindern programmiert werden können und damit dem trockenen "Code" durch blinkende Lämpchen etc. etwas mehr Leben eingehaucht wird.

Calliope als Pflanzensensor

Fasziniert hat mich die Möglichkeit der direkten Ausgabe auf der 5x5 Matrix, das Thermometer samt Helligkeitsmesser und natürlich die Analogeingänge. Mit 8bit Auflösung werden Spannung von 0-3,3Volt auf die Werte 0-1023 umgesetzt. Allerdings ist dafür schon etwas externe Beschaltung erforderlich. Natürlich könnte man auch einen fertigen Sensor mit I2C-Schnittstelle an den Grove-Port anschließen. Ich würde einfach zwei verzinnte Drähte in den Boden stecken und ab und an messen. Einen Dauerstrom fände ich nicht gut, da das zum einen mehr Strom braucht und die Elektrolyse die Kontakte korrodieren lässt. Aber der Calliope hat ja vier Pins, die man auch setzen kann.

Bei den Link habe ich auch Verweise auf eine kapazitive Messung aufgeführt. Hierbei haben die Elektroden eben keinen Kontakt mit der Erde und korrodieren daher nicht. Über die Kapazitätsänderung anhand der Bodenfeuchte wird ein Frequenz gemessen. Für meine Gehversuche soll aber erst mal die Widerstandsmessung reichen.

Je nach Feuchte und Zusammensetzung des Erdbodens und Abstand der Elektroden kann der Widerstand zwischen wenigen Ohm und nahe mehreren Megaohm betragen. Das ist natürlich eine extreme Bandbreite. Daher ist eine "Eichung" erforderlich. Ich mache das derart, dass ein Druck auf "A" auf dem Display die aktuell gemessene Zahl (0-1023) ausgegeben wird. Ich sollte also erst einmal die Pflanze quasi "trocken" fallen lassen und dann den Wert messen. Nach dem Gießen und etwas Zeit zum Verteilen der Feuchtigkeit kann man noch mal den Wert messen. Beide Werte können dann im Code als Werte hinterlegt werden, die dann die Anzeige steuern. Leider hat der Calliope keinen Permanentspeicher um die ermittelten Werte zu hinterlegen.

Die Anzeige ist natürlich auch ein Grund für den Stromverbrauch. Laut SUB-Amperemeter sind da auch mal 70mA mit drin, wenn die Versorgung über ein USB-Netzteil erfolgt. Das ist aber immer noch besser als mit zwei AA-Zellen zu arbeiten. Leider kennt der Calliope selbst anscheinend keinen "DeepSleep"-Mode mit Aufwach-Timer. Ich bin sicher, dass die CPU das schon hätte aber die umfangreiche externe Beschaltung und bei dem Einsatzzweck war Energiesparen kein primäres Ziel. Insofern muss er dann doch richtig mit Strom versorgt werden.

In der ersten Version reicht mir die Anzeige der Feuchtigkeit und ein Lautsprechersignal bei Helligkeit.

Start
Setze Untergrenze auf Wert1
Setze Obergrenze auf Wert2
Setze PIN 1 auf LOW
Setze PIN 2 auf LOW
Wiederhole endlos
  Wenn

 

Code und fertige Bauanleitung liefert ich nach, wenn ich den Calliope mal wieder von meiner Tochter zurück bekommen habe

 

Calliope als Lautstärkemesser

Der Calliope hat ein eingebautes Mikrofon und eine RGB-LED. Da sollte man doch einfach zwei Lösungen einfach per Software entwickeln können:

  • Lärmampel
    Wenn es zu laut wird, ändert sich die Farbe von Grün zu Gelb und am Ende rot. Vielleicht hilft das ja z.B. einigen "lauten Zeitgenossen", die beim telefonieren mit Headset immer zu laut sprechen, wieder auf ein normales Level. Für den Kindergeburtstag oder Klassenraum hilft das natürlich nicht. Wen interessiert hier schon eine mini kleine LED. Wobei: Mit etwas Beschaltung könnte man ja ein DMX-Leichte ansteuern :-)
  • Beifallmesser
    Wie wäre es die Dauer und Lautstärke von Klatschen zu messen und anzuzeigen ?

Es gibt sicher noch viel mehr Ideen. Mittlerweile gibt es schon ein vergleichbares Projekt:

Weitere Links