I will translate these instructions into English, if you drop me a message at telefant@tychons.net

Bits and Bytes for Calliope mini

Bei der IdeenExpo 2019 in Hannover war das juFORUM als Aussteller mit dabei und bei einem unserer Mitmach­experimente konnten die Kinder kleine Programme in Make­Code aus Bausteinen zusammen­puzzeln und auf einer Calliope Mini ausprobieren. In der Leerlaufzeit sind ein paar Skripte von uns enstanden. Natürlich nur, um die Bausteine später besser erklären zu können :-D

Was ist eine Calliope mini?

Die Calliope mini ist ein kleiner Computer, der ganz einfach programmiert werden kann. Anleitungen dazu findet ihr auf der Calliope-Website.

Die Programme, die ihr hier herunterladen könnt, könnt ihr in MakeCode importieren (Projekte, Datei importieren), und auch auf die Calliope schreiben (wie bei einem USB-Stick).

Übrigens: Für Messe-Besucher in Eile, die noch nicht in die 4. Klasse gehen, sind die Standard-LED-Matrix Bausteine und die Melodiebausteine mit einem Knopfdruck auf A meist schon voll ausreichend für ein spaßiges Erlebnis. Von 4. bis 7. Klasse können den Kindern gut auch die beiden Knöpfe A und B erklärt werden, und wie man seinen eigenen Namen mit zeige Zeichenfolge über die LED-Matrix laufen lassen kann. Die RGB-LED wird meist auch gut angenommen. Ältere Schüler haben manchmal auch schon Informatik­unterricht gehabt und sind am besten ganz selbstständig experimentierend unterwegs, nachdem sie die wichtigsten Bausteine gezeigt bekommen haben. Selber denken macht schlau!

Kleinkram & Musik

All die schiefen Farben

Dieses Programm lässt die RGB-LED in alle Farben leuchten wenn die Calliope gekippt wird. Auf der Platine ist nämlich auch ein Beschleunigungssensor verbaut, der messen kann, in welche Richtung die Erdanziehungskraft (auch eine Art von Beschleunigung) wirkt.

Programm herunterladen

Die Erdbeschleunigung beträgt 1g. Die Sensordaten sind in mg, also milli-g angegeben. "Milli" ist die Vorsilbe für ein Tausendstel. Wenn der Sensor gekippt wird, sind seine Ausgebewerte also im Bereich von -1000mg bis +1000mg.


Dies ist auch schon das ganze Programm! Die minimal-Funktion stellt sicher, das der Wert niemals größer als 255 wird, dem maximalen Farbwert.

Wackel-Blues

Dies ist ein Programm, dass die Blues-Tonleiter erzeugt, wenn ihr die Calliope kippt. Wenn sie nach links gekippt ist, ist es still. Wenn sie nach rechts gekippt ist, kommt ein Ton. Die Tonhöhe wird über die Kippung nach vorn und hinten beeinflusst.

Programm herunterladen

Viel Spaß beim Jammen!

Spiele

Snake-Variante

In dieser Variante des klassischen Spiels wird die Schlange zwar nicht länger, aber schneller. Du kannst mit den beiden Knöpfen die Bewegungsrichtung um 90 Grad nach links und rechts drehen, als wärst du auf dem Punkt selbst drauf. Versuche die blinkenden Punkte einzusammeln und nicht gegen die Wände zu laufen.

Programm herunterladen

Mit der Zeit wird das Spiel immer schneller und die RGB-LED geht von grün immer weiter zu rot. Wie lange kommst du mit?

Code-Hinweise

Ob unsere Spielfigur („Sprite“) gegen den Rand stößt, testen wir nicht mit der touching edge-Funktion, weil wir auch parallel den Rand entlanglaufen wollen. Der Test funktioniert, indem wir einen Schritt vorwärts gehen und prüfen, ob sich unsere Koordinaten geändert haben. Wenn wir immer noch an der gleichen Stelle sind, dann läuft die Spielfigur gerade gegen eine Wand. Wenn nicht, gehen wir direkt wieder einen Schritt zurück, sodass der Mensch gar nichts gemerkt hat.


Diese Funktion führt den Test durch, ob wir gegen eine Wand laufen. Das Ergebnis wird als Wahrheitswert in der Variable stecktfest gespeichert.

Das Blinken von dem einzusammelnden Punkt wird erzeugt, indem immer wieder eine neue Spielfigur erzeugt und kurz danach gelöscht wird. Das lässt sich schöner lösen, durch die blinken-Eigenschaft der Spielfigur. Probiere es mal selber aus, das zu verbessern.

Zwei Spieler über Funk

Wisst ihr, was magisch ist? Die spukhafte Fernwirkung. Und die ist in der Calliope verfügbar als Puzzlestein!

Programm herunterladen

Spielanleitung

  1. Auf zwei Calliopes das gleiche Programm laden.
  2. Calliopes einschalten. Bei beiden leuchtet die RGB-LED erst kurz blau, dann violett wenn nur einer an ist, und zum Schluss eine rot und die andere orange (wenn sie sich erfolgreich gefunden haben). Die mit der roten Lampe heißt jetzt „Master“, die andere „Slave“.
  3. Auf dem Master kann das Spiel gestartet werden mit einem Knopfdruck auf A. Der rote Punkt in der Mitte startet zufällig nach rechts oder links.
  4. Die Spielerin an der „Master“-Calliope kann nun mit Knopf A die Bewegungsrichtung um 90 Grad nach rechts drehen, während auf der "Slave"-Calliope mit Knopf A die Bewegungsrichtung nach links gedreht wird. Natürlich könnt ihr zwischen einem Schritt mehrmals auf den Knopf drücken!
  5. Die „Master“-Spielerin muss versuchen den roten Punkt in die linke obere Ecke zu lotsen, die „Slave“-Spielerin in die rechte untere.
  6. Wird eine der beiden Ecken erreicht ist das Spiel beendet und bei der Gewinnerin leuchtet die RGB-LED grün, bei der Verliererin rot.
  7. Neustart des Spiels per „Reset“-Knopf auf beiden Calliopes.

Wie gut könnt ihr hören, wie oft die Gegnerin gedrückt hat und kontern?

Tipp: Die Antenne ist unter dem Calliope-Mini-Logo. Deswegen da am besten nicht die Patschefinger dran halten, sonst sieht der „Slave“-Spieler nicht, was passiert.

Code-Hinweise

Es passieren mehrere spannende Dinge während ihr spielt. Vor allem am Anfang, denn da müssen sich die Calliopes verbinden und ausmachen wer Master und wer Slave ist.

Wenn dass Programm startet, geht es erstmal in eine Warteschleife. Allerdings ist während der Warteschleife auch der Block aktiviert, der Funk-Daten empfangen kann. Falls während der Wartezeit das Kommando search empfangen wird, wissen wir, dass es einen anderen Calliope gibt und werden selber Slave. Als Slave senden wir ein ack-Kommando, damit der andere weiß, dass wir reagieren. Falls kein Kommando kommt, ist noch keine andere Calliope aktiv und wir werden Master. Als Master fangen wir an selber search-Kommandos auszusenden, bis sich jemand darauf meldet mit einem ack-Kommando.

Anfang des Programms, in dem der "handshake" (engl. Handschlag) passiert. Links wartet die Calliope 500 ms lang und ruft laut search, während sie links Kommandos annimmt und auch ack antwortet.

Der aktuelle Zustand wird in der Variable mode gespeichert. Ungerade Werte für den Master, gerade Werte für den Slave. Diese Tabelle zeigt die Bedeutungen:

modeBedeutung
0Warte auf andere Calliope
1Master: Warte auf Spielstart
2Slave: Warte auf Spielstart
3Master: Spiel läuft
4Slave: Spiel läuft
5Master: Master hat Gewonnen
6Slave: Master hat gewonnen
7Master: Slave hat gewonnen
8Slave: Slave hat gewonnen

Tipp: Während der Slave auf Funksignale vom Master wartet, darf er nicht einfach nur in einer Endlosschleife laufen, bis sich mode auf das Spielende geändert hat, sondern muss immer ein bisschen pausieren. Erst dann hat der Block, der die Funksignale verarbeitet Zeit seine Anweisungen zu befolgen.

Wenn du Fragen oder Anmerkungen hast, erreichst du mich unter telefant@tychons.net
-- Hannes
Schrift: Work Sans von Wei Huang
Außerdem: Ja, die Calliope.