Snap! und Calliope

Snap! ist eine Programmiersprache, die sich als Weiterentwicklung von Scratch versteht. https://de.wikipedia.org/wiki/Snap!_(Programmiersprache)

Die Programmierung findet im Browser statt und ist unter der Webadresse https://snap.berkeley.edu/snap/snap.html zu finden. Die Basisblöcke sind identisch mit Scratch, so dass sich eigentlich jeder, der Scratch kennt, sofort auch in Snap! programmieren kann. Der erweiterte Sprachumfang von Snap! hat es allerdings in sich! Ach ja, Snap! ist natürlich Open Source.

Neben dem erweiterten Sprachumfang gibt es aber auch interessante Hardware-Erweiterungen für Snap! https://snap.berkeley.edu/extensions
Die wohl bekannteste Erweiterung ist Snap4Arduino (S4A). Angefangen haben die Programmierer/innen aus Catalonien bereits 2014 mit S4A. https://s4a.cat Schon sehr bald sind sie von Scratch 1.4 auf Snap! als Basis für ihre Software umgestiegen. https://snap4arduino.rocks.

Aber warum hole ich so weit aus? Ja, ich würde gerne mit Snap! eine Programmiermöglichkeit für den Calliope haben wollen. :slight_smile: Für den Micro:bit gibt es übrigens eine Ansteuerung mit Snap!. Leider funktioniert die nicht 1:1 mit dem Calliope. Und leider handelt es sich bei dem Projekt im eine öffentlich gefördertes Projekt, dessen Source Code wohl nicht öffentlich verfügbar ist. Für die Software, die zur Verbindung mit Snap! auf den Micro:bit geladen werden muss, habe ich jedenfalls keinen Source Code gefunden. Aber vielleicht geht es ja einfacher als ich denke.

Mein Beispiel zur Ansteuerung des Micro:bit stelle ich gerne hier zur Verfügung. https://snap.berkeley.edu/snap/snap.html#present:Username=machmitnetz&ProjectName=MicrobitStarterProject&editMode&noRun&lang=de

Der Micro:bit braucht dafür die Software von Birdbrian Technologies https://www.birdbraintechnologies.com/downloads/installers/BBTFirmware.hex

Lässt sich die Programmierung mit Snap! auf den Calliope übertragen? Es wäre toll!

Beste Grüße
Ralf

2 „Gefällt mir“

Snap ist großartig. Der Entwickler von Snap4Arduino ist auch Mitentwickler von MicroBlocks, aber auch von Beetleblocks und anderen Snap! Bibliotheken. Beetleblocks werden bald als Bibliothek im kommenden Snap v10 verfügbar sein. Ich denke, dass dies um Snap!shot 2024 herum veröffentlicht wird.

Snap!shot findet online statt, aber die Leute, darunter auch ich, gehen auch nach Walldorf, in die SAP-Zentrale.

Man kann von Snap aus mit einem micro:bit, calliope mini, ESP32, Raspberry Pico etc. kommunizieren, dafür benötigt man aber zum Beispiel MicroBlocks, die die Kommunikation zwischen Mikrocontroller und Snap! gewährleisten. Das konnte man an den Beispielen sehen, die ich im Forum gepostet habe. In meinen Beispielen erfolgt diese Kommunikation über BLE.

Hallo Peter,
ich habe den Beitrag geschrieben, weil es für dem Micro:bit eine Software gibt, bei der eben der Micro:bit alleine mit Snap! Interagiert. Auf den Micro:bit wird eine Firmware geladen, die die die Platine mit Snap! koppelt und die Befehle von Snap! überträgt. Ja, zwischengeschaltet ist noch ein Javascript-Paket, das in das Snap!-Projekt eingebaut ist. Ja, es macht Spaß, wenn der Micro:bit und Snap! kommunizieren. Wer steuert wen?

Genau so wird es auch für Snap4Arduino gemacht. Snap4Arduino funktioniert mit allen Arduino-Boards, die Firmata oder SA5Firmata geladen haben.

Mir geht es darum, dass die Programmierumgebung für Einsteiger geeignet ist. Ich denke, dass die Hürde mit der gleichzeitigen Verwendung zweier Programme Snap! und MicroBlocks zu hoch ist, um Einsteiger einzufangen.

Beste Grüße
Ralf

Hier ist ein Beitrag aus dem Jahr 2020, der den Micro:bit wohl mit MicroBlocks und Snap! steuert, wobei ich den MicroBlocks-Code nicht finden konnte.

Aus dem Jahr 2022 stammt der Beitrag, bei dem ein Snap!-Connector mit Firmware.hex und Javascript-Library beschrieben wird. Die ebenfalls verlinkte Präsentation auf YouTube zu Snap! und Micro:bit stammt von der Snap!Con 2022.

https://www.youtube.com/watch?v=MBlvIzC7Lxc

Der Snap!-Connector für Micro:bit wurde offensichtlich mit Unterstützung der National Science Foundation finanziert, ist aber bereits kurze Zeit nach Abschluss des Projekts unter den genannten Adressen nicht mehr verfügbar. Ist der Snap!-Connector für Micro:bit wirklich Open Source, so dass man ihn für den Calliope mini anpassen kann? Wo finde ich den entsprechenden Quellcode?

Über den Link https://snap.berkeley.edu/extensions am unteren Rand der Startseite gelangt man zu zahlreichen Snap!-Erweiterungen. Die Materialien zum Micro:bit werden jetzt von der Firma BirdBrain Technologies für deren Produkt Hummingbird angeboten.

Aus Sicht des Informatiklehrers muss ich sagen, dass wir für die Schule einen solchen Snap!-Connector für den Calliope mini brauchen, wenn Snap! als Programmierumgebung in Frage kommen soll. Mit MicroBlocks kann gezeigt werden, was möglich ist. Aber handhabbar mit 20 Calliope im Unterricht scheint mir nur eine installierbare Firmware zu sein, um sich dann ablenkungsfrei mit der Snap!-Programmierung zu beschäftigen.

Beste Grüße
Ralf

Mittlerweile hat sich bei Snap einiges verändert und auch bei MicroBlocks. Beide Parteien arbeiten eng zusammen.

Was Sie möchten, ist möglich. Sie können einen Calliope mit MicroBlocks genau so programmieren, wie Sie es möchten. Sie geben Ihren Schülern dieses Calliope, damit sie es in Ihrem Unterrichtsprogramm mit Ihren Schülern verwenden können. Sie brauchen keine MicroBlocks mehr, sondern nur noch Snap!. Für eine weitere Lektion muss der Calliope möglicherweise andere Dinge tun, sodass Sie ihn erneut mit MicroBlocks vorbereiten können. Etwas später können die Schüler beginnen, sowohl MicroBlocks als auch Snap zu verwenden.

Gehst du zum Snap!shot in Walldorf? Dann können wir dort weiter diskutieren und experimentieren und uns bei Bedarf mit den Machern von Snap! beraten.

Hallo Peter,
mittlerweile habe ich zusätzliche Infos gefunden, die mich hoffen lassen.

In seiner Präsentation bei der Snap!Con2023 zeigt John Maloney ausführlich die Verbindung zwischen MicroBlocks und Snap!, und zwar am Beispiel des Micro:bit. John weist ausdrücklich darauf hin, dass MicroBlocks und Snap! nicht gleichzeitig versuchen sollten, auf die USB-Schnittstelle zuzugreifen.
https://www.youtube.com/watch?v=ONr9_Mpw4bM

Mit der Dokumention im MicroBlocks-Wiki und der Präsentation gelingt es mir, die gezeigten Dinge auf dem Micro:bit selber auszuprobieren. Der Einstieg sieht gut aus! Vermutlich muss ich den MicroBlocks-Code ändern, damit die Snap!Bridge auch mit dem Calliope mini funktioniert.

Natürlich bin ich anspruchsvoll … gibt es irgendwo Infos, wie diese Snap!Bridge kabellos über Bluetooth funktionieren kann?

Ralf

Die Entwicklung von MicroBlocks geht zügig voran, die BLE-Option kam erst 2024 hinzu, sodass auch die Snap Bridge in mancher Hinsicht veraltet ist.

Jetzt benötigen Sie nur noch die MicroBlocks-Bibliothek in Snap und einen Mikrocontroller, der über BLE arbeiten kann, wie zum Beispiel den Calliope Mini 3.

Das BLE-System funktioniert daher nur in einem Chrome-Browser. Es ist jedoch möglich, über Snap und MicroBlocks gleichzeitig mit dem Mikrocontroller verbunden zu sein.

1 „Gefällt mir“

Ich habe kein Problem damit, mir Gedanken über die Erstellung von Aufgaben für Studierende oder die Durchführung von Tests zu machen. Ich bin auch ein CoderDojo-Champion in den Niederlanden, sodass ich die Aufgaben nach der Übersetzung möglicherweise selbst verwenden kann.

@ralf.krause Dieser Artikel könnte für Sie sehr interessant sein MicroBlocks Client for Snap! - 夜行人

1 „Gefällt mir“

Hi Peter,
die Beschreibung für die Verbindung zwischen MicroBlocks und Snap! Ist für den Micro:bit geschrieben. https://wiki.microblocks.fun/en/snap/snap_bridge

Kannst du mir bitte sagen, was ich in der Datei microblocks_bridge_v1.3.xml ändern muss, damit alle Eingänge, Ausgänge und Sensoren des Calliope 3 richtig angesteuert werden.

Beste Grüße
Ralf

Hi,

I wouldn’t know what you should change, I didn’t write it and never used it with Calliope. I once tested it with a micro:bit but never with a calliope. I always use the MicroBlocks library in Snap! using BLE and works for me. Maybe you could ask on the MicroBlocks Discord or the Snap! community.