Appearance
Zwei Calliopes kommunizieren miteinander
Nachrichten per Funk austauschen
Die Calliopes können sich per Funk Nachrichten schicken. Vielleicht kennst du Funksteckdosen. Wenn eine Lampe in einer Funksteckdose steckt, kann man die Steckdose bzw. die Lampe mithilfe einer kleinen Fernbedienung an- und ausschalten. Das können wir auch mit unserem Calliope simulieren.
Den einen Calliope verwenden wir als Fernbedienung, den anderen als Lampe. Wenn wir die Taste A beim Fernbedienungs-Calliope drücken, soll die Lampe (große LED) beim anderen Calliope angehen. Dazu benötigen wir zwei verschiedene Programme. Links in Abbildung 1 siehst du das Programm für den Fernbedienungs-Calliope. Rechts in Abbildung 2 das Programm für den Lampen-Calliope.
![]() | ![]() |
|---|---|
| Abbildung 1: Programm für den Fernbedieungs-Calliope (Sender)S | Abbildung 2: Programm für den Lampen-Calliope (Empfänger) |
Beide Calliopes müssen zuerst die gleiche Funkgruppe einstellen, damit sie per Funk miteinander kommunizieren können. Wenn ihr mehrere Teams in der Klasse habt, die mit Funk arbeiten, müsst ihr darauf achten, dass die Teams unterschiedliche Funkgruppen verwenden, damit nicht alle Calliopes durcheinanderreden.
Der Fernbedienungs-Calliope ist der Sender. Wenn der Anwender die Taste A drückt, sendet der Calliope mithilfe des Blocks sende Text die Nachricht „an*"*. Damit man sieht, ob der Calliope auf den Tastendruck reagiert hat, wird hier zusätzlich eine Ausgabe auf der LED-Matrix erzeugt. Das hat für das Versenden der Nachricht aber keine Bedeutung.
Der Lampen-Calliope ist der Empfänger. Mithilfe des Blocks wenn Text empfangen receivedString lauscht der Calliope, ob in seiner Funkgruppe Nachrichten eintreffen. Den Inhalt der Nachricht speichert er in der Variablen receivedString. Das bedeutet so viel wie empfangener Text. Den Block für die Variable receivedString kannst du einfach aus dem wenn Text empfangen-Block an eine andere Stelle im Programm ziehen, um eine Kopie des Blocks zu erhalten. Je nachdem, was in der Nachricht steht, kann der Lampen-Calliope nun reagieren. Wir prüfen, ob in der Variablen receivedString der Wert „an*"* steht. Wenn das der Fall ist, dann schalten wir die Lampe an. Verwende für den Vergleich den Block für den Vergleich von Texten. Du erkennst ihn an den Anführungszeichen in den weißen Feldern.
Die pinken Blöcke zum Senden und Empfangen von Nachrichten findest du im Bereich Funk. Dort siehst du, dass du sowohl Text als auch Zahlen versenden kannst. Allerdings musst du dazu unterschiedliche Blöcke verwenden.
![]() | |
|---|---|
| Abbildung 3: Blöcke zum Senden und Empfangen von Textnachrichten | |
![]() | |
| Abbildung 4: Blöcke zum Senden und Empfangen von Zahlen |
Aufgabe 1:
a) Du hast sicher schon gemerkt, dass wir die Lampe mit unserer Fernbedienung noch gar nicht ausschalten können. Erweitere das Skript für den Fernbedienungs-Calliope so, dass er bei Drücken der Taste B die Nachricht „aus" sendet. Wenn der Lampen-Calliope in der Variablen received String den Text „aus" findet, soll er die Lampe (LED) entsprechend ausschalten.
b) Überlege dir weitere Nachrichten, die der Sender (Fernbedienungs-Calliope) versendet und auf die der Empfänger (Lampen-Calliope) reagiert. Vielleicht soll die Lampe in unterschiedlichen Farben leuchten oder blinken. Für den Sender musst du dir auch überlegen, wie die Nachrichten ausgelöst werden, denn die Tasten A und B sind ja schon belegt. Auf der Seite des Empfängers musst du dir überlegen, wie der Calliope reagieren soll.
Aufgabe 2:
a) Wenn der Calliope geschüttelt wird, soll er zufällig eines der Symbole Stein, Schere oder Papier anzeigen. Erstelle für den Calliope ein entsprechendes Skript. Alternativ kannst du auch den Anwender eines der Symbole auswählen lassen.
b) Wenn ihr das Skript auf zwei Calliopes ausführt, könnt ihr gegeneinander spielen. Damit die Calliopes euch sagen können, wer gewonnen hat, müssen sie sich das ausgewählte Symbol gegenseitig als Nachricht senden. Wenn sie das empfangene Symbol mit dem eigenen vergleichen, können sie ermitteln, wer der Sieger ist. Erweitere dein Skript aus Aufgabenteil a) entsprechend.
Hinweis: Da jeder Calliope sein Symbol sowohl senden, als auch das Symbol des anderen Calliope empfangen soll, benötigst du hier nur ein Skript, das die Funktion des Senders und des Empfängers enthält. Dieses Skript wird dann auf beiden Calliopes ausgeführt.
Aufgabe 3:
Wenn wir das Haus verlassen, sollten alle Fenster geschlossen, der Herd ausgeschaltet und das Licht aus sein. Praktisch wäre es, wenn wir an der Haustür mit einem Gerät abfragen könnten, ob alles in Ordnung ist oder ob wir etwas vergessen haben. Verteilt das Überprüfen der Fenster, des Herdes und des Lichts auf verschiedene Calliopes in eurer Gruppe. Alle senden den Status an den Calliope an der Haustür, der den Bewohner beim Verlassen des Hauses entsprechend benachrichtigt. Fallen euch weitere Dinge ein, die beim Verlassen des Hauses überprüft werden sollten?
Details
Lizenz
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Von der Lizenz ausgenommen ist das InfSI-Logo.
Für die korrekte Ausführbarkeit der Quelltexte in diesem Leitfaden wird keine Garantie übernommen. Auch für Folgeschäden, die sich aus der Anwendung der Quelltexte oder durch eventuelle fehlerhafte Angaben ergeben, wird keine Haftung oder juristische Verantwortung übernommen.
Die Programme wurden mithilfe des online-Editors MS Makecode in der Version 3.0.33 erstellt.
Das gesamte Material wurde von dem Lehrerbildungszentrum für Informatik der Universität Göttingen erarbeitet.
Informatik NIGE


