Calliope mini - eindeutige IDs für Kommunikation
Verfahren zu Vergabe von eindeutigen IDs
Um mehrere Calliope in einer Gruppe gezielt ansprechen zu können, benötigen diese eindeutige IDs. Da die Calliopes diese nicht zur Laufzeit aus einem lokalen Speicher auslesen können, wird ein Verfahren zur Vergabe von eindeutigen IDs benötigt. Dieses ist im folgenden beschrieben.
Mehrere Calliope mini verbinden sich per Funk. Dabei handelt es sich um ein einfaches Kommunikationsprotokoll, bei dem ein zentraler Sender (Master) und mehrere Empfänger (Slaves) miteinander kommunizieren. Ziel ist es, dass sich alle Geräte gegenseitig über eindeutige IDs identifizieren können.
Vorbereitung
-
Jeder Calliope vergibt sich selbstständig eine zufällige ID zwischen 10 und 100.
-
Alle Geräte verwenden zunächst denselben allgemeinen Funkkanal zur Kommunikation.
Phase 1: Empfänger aktivieren
-
Die Empfänger (Calliopes 2 bis n) werden durch Drücken der Taste B in den Empfangsmodus versetzt.
-
Sie hören nun auf dem allgemeinen Kanal auf Nachrichten.
Phase 2: Sender aktivieren
-
Der zentrale Sender (Calliope 1) wird durch Drücken der Taste A in den Sendemodus versetzt.
-
Er sendet seine eigene ID (S-ID) über den allgemeinen Kanal.
-
Danach wechselt der Sender in einen Kanal mit der Nummer seiner S-ID und wartet dort auf Antworten.
Phase 3: Antwort der Empfänger
-
Die Empfänger empfangen die S-ID des Senders im allgemeinen Kanal.
-
Sie wechseln nun in den Kanal des Senders (S-ID) und senden dort ihre eigene ID (E-ID).
-
Anschließend warten sie auf eine Antwort vom Sender.
Phase 4: Auswahl eines Empfängers
-
Der Sender empfängt die erste Antwort von einem der Empfänger.
-
Er schickt diese empfangene Empfänger-ID als Bestätigung zurück in seinen Kanal.
-
Danach sendet der Sender zusätzlich ein Reset-Signal (z. B.
"RESET"
) an alle übrigen Empfänger in diesem Kanal, um ihnen mitzuteilen, dass sie nicht ausgewählt wurden.
Phase 5: Reaktion der Empfänger
Die Empfänger, die die Nachricht des Senders erhalten, prüfen den Inhalt:
-
Wenn die Nachricht „RESET“ ist:
→ Der Empfänger wurde nicht ausgewählt. Das Programm wird gezielt beendet. -
Wenn die Nachricht der eigenen ID entspricht:
→ Der Empfänger wurde ausgewählt.
Er:-
wechselt in seinen eigenen Kanal (E-ID),
-
sendet dort die S-ID des Senders,
-
und bleibt im Empfangsmodus, um weitere Nachrichten zu erhalten.
-
Phase 6: Abschluss durch den Sender
-
Der Sender empfängt seine eigene ID (S-ID) im Kanal des Empfängers.
-
Damit ist der Austausch bestätigt.
-
Der Sender kann nun direkt mit dem Empfänger über dessen Kanal kommunizieren.
Ergebnis
-
Der Sender kennt nun die eindeutige ID eines Empfängers.
-
Der ausgewählte Empfänger kennt die ID des Senders.
-
Alle anderen Empfänger erhalten ein Reset-Signal und beenden ihr Programm gezielt.
Hinweis zur Eindeutigkeit
Wenn zwei oder mehr Empfänger zufällig die gleiche ID gewählt haben, können sie gleichzeitig erfolgreich eingerichtetwerden.
Da die möglichen IDs im Bereich von 10–100 liegen, ist die Wahrscheinlichkeit einer Kollision jedoch sehr gering.
Programm | Code | Beschreibung |
UID zuweisen |
|
|