CALLIOPE Funk - Sender und Empfänger

Funk Empfänger

Durch klicken auf ein Bild kann das gezeigte Programm direkt auf CALLIOPE kopiert werden.

Sender und Empfänger

Wenn ein Computer an einen anderen Computer Daten schickt, dann ist ein Computer der Sender und der andere Computer ist der Empfänger. Funk bedeutet, dass die Daten drahtlos übertragen werden, ohne Kabel zwischen den zwei Computern. Diesen Funk verstehen alle CALLIOPE. Mit einem PC oder anderen Geräten kann CALLIOPE keine Daten senden und empfangen. Mit den Blöcken aus der Gruppe 'Funk' kann ganz einfach eine Zahl oder ein Text gesendet und empfangen werden.

Das Programm im Titelbild sendet und empfängt eine Zahl. Das Ereignis 'wenn Knopf A gedrückt' ist der Sender. Das Ereignis 'wenn Datenpaket empfangen' ist der Empfänger. Wenn Sender und Empfänger auf dem selben Gerät programmiert sind, dann funktioniert beides. Ein CALLIOPE kann aber nicht an sich selbst senden. Zwei CALLIOPE können sich gegenseitig Daten senden.

Funk ohne CALLIOPE im Simulator testen

Der Simulator im Editor MakeCode sendet nicht wirklich über Funk. Weil ein CALLIOPE nicht an sich selbst senden kann, zeigt der Simulator einfach zwei CALLIOPE untereinander auf dem PC Bildschirm an. Wenn mit der Maus auf Knopf A gedrückt wird, erhöht sich die Zahl a um 1 und wird gesendet. Der andere Simulator empfängt die Zahl in der Variable b und zeigt sie an. Das funktioniert in beide Richtungen. Wird oben geklickt, zählt es unten. Wird unten geklickt, zählt es oben.

FunkSimulator

Durch klicken auf das Bild kann das Programm als .hex-Datei herunter geladen und auf zwei CALLIOPE kopiert werden. Durch drücken auf Knopf A wird auf dem anderen die Zahl angezeigt. Das funktioniert in beide Richtungen.

Über welche Entfernung funktioniert das noch?

Was passiert, wenn mehr als zwei CALLIOPE durcheinander funken? Das Problem lässt sich durch kleine Änderungen am Programm lösen.

Datenpakete von einem CALLIOPE zu einem anderen CALLIOPE senden

Hier wird der Schrittezähler weiter entwickelt. Ein CALLIOPE kann schlecht die Beschleunigung messen und gleichzeitig anzeigen. Ans Bein gebunden oder in der Hosentasche lässt sich die Zahl schlecht ablesen. Es ist auch nicht zu erkennen, welche Bewegung gezählt wurde und welche nicht. Das ist aber wichtig, um das Programm weiter zu verbessern. Das Programm liefert nämlich nicht immer das richtige Ergebnis.

Funk Sender

Sender

In das Programm vom Schrittezähler wird eigentlich nur ein Block eingefügt, der die aktuelle Variable 'Schritte' sendet. Das ist der Block 'sende Zahl Schritte' gleich nachdem die Variable um 1 erhöht wurde.

'beim Start' wird noch die Funkgruppe auf eine beliebige Zahl gesetzt, die bei Sender und Empfänger gleich sein muss. Gemeint ist natürlich nur der Empfänger, der von diesem Sender die Datenpakete empfangen soll. Wenn andere CALLIOPE in der Nähe sind, die auch senden, sollen diese auf eine andere Funkgruppe eingestellt werden, damit sie sich nicht gegenseitig stören.

Empfänger

Für das Programm Empfänger wird ein zweiter CALLIOPE benötigt. Der Empfänger soll genau das selbe anzeigen wie der Sender. Eine Person hält den Empfänger in der Hand und kann in der Anzeige genau erkennen, welche Bewegung der Sender gezählt hat und welche nicht. Die andere Person kann den Sender mit Beschleunigungssensor in die Tasche stecken, ans Beim binden, mit der Hand schütteln. Der Empfänger sieht immer die aktuelle Zahl, die auf dem Sender gezählt wird.

Empfänger

Im Ereigins 'beim Start' wird die selbe Funkgruppe eingestellt und das selbe Symbol angezeigt wie beim Sender.

Wenn der Sender eine Zahl gesendet hat, wird beim Empfänger immer das Ereignis 'wenn Datenpaket empfangen empfangeneZahl' ausgelöst. Also wenn der Sender einen Schritt gezählt hat. Die 'empfangeneZahl' wird in der Variable 'Schritte' gespeichert. Wie beim Sender auch, wird von der Zahl aber nur die letzte Ziffer angezeigt. (Das ist auf der Seite Schrittezähler erklärt.)

Das Ereignis 'wenn Knopf B gedrückt' zeigt die gesamte Anzahl der Schritte an. Weil Zahlen ab 10 durch die Anzeige laufen, lassen sie sich schwer ablesen. Deshalb kann mit Knopf B die Anzeige wiederholt werden. Das funktioniert beim Empfänger genau so wie beim Sender.

Am Sender wird 'wenn Knopf A gedrückt' die Variable 'Schritte' auf 0 gesetzt. Warum würde das beim Empfänger nicht funktionieren?

Ganz oben im Titelbild ist das Programm vom Empfänger noch einmal zu sehen. Dort wurde noch das Ereignis 'wenn Knopf A gedrückt' hinzu gefügt. Der Empfänger sendet dann an den Sender zurück den Text 'KnopfA'. Es wird also ein Datenpaket in entgegengesetzte Richtung gesendet. Das nennt man Response.

Was müsste beim Sender noch programmiert werden, um das Datenpaket zu empfangen und den Zähler auf 0 zu stellen?

Hinweise und Fehlermeldungen können hier anonym oder - wenn eine Antwort erwartet wird - per E-Mail gesendet werden. Impressum