Skip to main content

Calliope mini - Vergabe von eindeutige IDs für Kommunikation

Beschreibung des Funk-ID-Protokolls mit Calliope mini

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 IdentifikationIDs 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 CalliopesSender.


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

uid_fuer_callibots.xml

uid_fuer_callibots.hex

Zwei oder mehrere Calliopes verbinden sich über Funk und handeln in der Gruppe eindeutige IDs aus, unter denen jeder einzelne Calliope erreichbar ist.

 

Dabei gibt es einen zentralen Sender und einen oder mehrere Empfänger. Das Protokoll funktioniert in so: 

 

Vorbereitung:

  • alle Calliopes haben sich unabhängig von einander eine eindeutige ID (Zufallszahl zwischen 10-100) gegeben.
  • alle Calliopes haben gemeinsamen einen allgemeinen Kommunikationskanal 

Phase 1: 

  • Empfänger 2 bis n sind durch drücken der Taste B m Empfangsmodus gestartet und lauschen auf dem allgemeinen Kanal 

Phase 2:

  • Der zentrale Sender ist durch drücken der Taste A im den Sendemodus gestartet und sendet seine ID (S-ID) in den allgemeinen Kanal
  • Der Sender wechselt den Kommunikationskanal mit der Nummer seiner S-ID und lauscht auf Antworten.

Phase 3:

  • Die Empfänger 2 bis n empfangen im allgemeinen Kanal die ID des Senders und wechseln Ihrerseits in den Kommunikationskanal des Senders und senden Ihre ID (E-ID1 - E-IDn) in den Kanal.
  • Die Empfänger lauschen auf Antwort.

Phase 4: 

  • Der Sender empfängt genau eine Nachricht in seinem Kommunikationskanal. Dabei handelt es sich die Empfänger ID des ersten sendenden Empfängers. 
  • Der Sender sendet diese Nachricht zurück in seinem Kommunikationskanal.
  • Der Sendet wechselt in den Kommunikationskanal des Empfängers (bspw. E-ID1) und lauscht dort auf Antworten.

Phase 5:

  • Die Empfänger 2 bis n empfangen im Kanal des Senders eine Nachricht mit einer Empfänger-ID und prüfen diese.
  • Fallunterscheidung:
    • empfangene ID entspricht NICHT der eigenen ID 
      • der Austausch zwischen Empfänger und Sender war nicht erfolgreich.
      • Der Empfänger lauscht daher weiterhin auf dem Kanal des Senders, bis er eine Reset-Nachricht von Empfänger erhält und das Programm beendet.
    • empfangene ID entspricht der eigenen ID
      • der Austausch zwischen Empfänger und Sender war erfolgreich. 
      • Der Empfänger wechselt in seinen Kanal (Nummer=eigene ID) und sendet dort die ID des Senders
      • Der Empfänger wechselt in den Empfängermodus lauscht auf Nachrichten in seinem Kommunikationskanal 

Phase 6:

  • der Sender empfängt seine S-ID im Kanal des Empfängers.
  • der Austausch zwischen Sender und Empfänger war erfolgreich
  • der Sender kann nun in den Kommunikationskanal des Empfängers weiter Nachrichten senden

Zusammenfassung

  • der Sender verfügt über die eindeutige ID eines Empfängers
  • ein Empfänger verfügt über die eindeutige ID des Senders
  • alle anderen Empfänger 
  • Einschränkung:
    • sollten zwei oder mehrere Empfänger dieselbe zufällige ID haben, dann werden alle diese Empfänger erfolgreich eingerichtet.
    • Da die Zufallszahl zwischen 10-100 liegt ist die Wahrscheinlichkeit jedoch sehr gering.