Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Diese Übungen sollte man erst dann durcharbeiten, wenn man im Abschnitt Grundlagen die Kapitel XBee konfigurieren und XBee Kommunikation durchgearbeitet hat.

1 - Fernabfrage mit XBees

In diesem Versuch wird eine LED mit einem XBee-Empfänger-Modul verbunden und über Fernabfrage vom Sender-Modul mit Hilfe eines Tasters gesteuert. Die Konfigurationssoftware für die XBee-Module ist XCTU in der Version 6.3.2. Eine Einführung in die Handhabung findet sich bei den Grundlagen - Signale richtig verstehen im Kapitel XBee konfigurieren in Abschnitt 5.

Fernabfrage mit XBees
Material
  • 1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)
  • 1x  XBee-Adapter Board
  • 1x  Steckbrett
  • 1x  Widerstand, 220 Ohm
  • 1x  LED rot
  • 2x  Netzteil mit 3,3V - z. B. Arduino-UNO und Propeller Board of Education
  • 2x  USB Verbindungskabel
  • diverse Steckdrähte
  • 2x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnlichen (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)
Aufgaben
  • Baue die Schaltung nach Abbildung 1 und 2 auf.
  • Setze die XBee-Module in die entsprechenden Boards ein; achte darauf, dass Sender- und Empfänger-Modul nicht zu vertauschen.
  • Verbinde das XBee-USB-Board noch nicht mit dem PC.
  • Starte das Programm X-CTU auf dem PC.

Schaltungsaufbau Sender

Abbildung 1 - Sender-XBee mit einem Mikrotaster an DIO0.

Schaltungsaufbau Empfänger

Abbildung 2 - Anschluss der LED mit Vorwiderstand an DIO0.

2 - Konfiguration des Empfänger-XBee

Abbildung 3 - Wie man sehen kann, habe ich sowohl das Sender- als auch das Empfängermodul auf ein XBee-USB-Adapter Board gesteckt. Dadurch erspart man sich das mühsame Herauslösen der Module bei jeder Konfigurationsänderung und schont die Pinanschlüsse.

Bei einer unbekannten Konfiguration eines XBee-Bausteins sollte dieser auf die Werkseinstellung mit Reset zurückgesetzt und dann neu konfiguriert werden. Sind die vorhandenen Einstellungen bekannt, dann lassen sich mit wenigen Veränderungen die Neueinstellungen vornehmen. Sicherheitshalber werden die XBees für diesen Versuch auf die Werkseinstellungen zurückgesetzt.

Konfiguration des Empfängers
Aufgaben
  • Starte das Programm XCTU.
  • Verbinde das Empfänger-XBee über das USB-Kabel mit dem PC.
  • Setze das Modul auf die Werkseinstellungen zurück. Klicke dazu im Programm XCTU auf das Icon Default.
  • Ändere anschließend im Verzeichnis I/O Settings DO0 - DIO0 Configuration - von Disabled[0] in DO High [5]
  • Ändere im Verzeichnis I/O Line Passing IA - IO Input Address - in FFFF
  • Übertrage die Änderungen mit dem Befehl Write in das XBee Modul.
Abbildung 3 - XCTU Oberfläche mit den neuen Konfigurationseintragungen. Die blauen Dreiecke deuten an, dass die Änderungen in das Modul geschrieben wurden. Ein grünes Dreieck signalisiert eine Änderung, die noch nicht abgespeichert wurde.

3 - Konfiguration des Sender-XBee

Abbildung 4 - Wie man sehen kann, habe ich sowohl das Sender- als auch das Empfängermodul auf ein XBee-USB-Adapter Board gesteckt. Dadurch erspart man sich das mühsame Herauslösen der Module bei jeder Konfigurationsänderung und schont die Pinanschlüsse.

Für das Sender-Modul gilt das gleiche wie für den Empfänger. Wenn man sich nicht sicher ist, welche Konfiguration bei dem Modul eingestellt ist, ist es einfacher die Werkseinstellungen mit dem Programm XCTU über Default herzustellen und anschließend mit der Neukonfiguration zu beginnen.

Konfiguration des Senders
Aufgaben
  • Starte das Programm XCTU.
  • Verbinde das Empfänger-XBee über das USB-Kabel mit dem PC.
  • Setze das Modul auf die Werkseinstellungen zurück. Klicke dazu im Programm XCTU auf das Icon Default.
  • Ändere im Verzeichnis I/O Settings D0 - DIO0 Configuration - von Disabled[0] in DI [3].
  • Ändere im Verzeichnis I/O Settings D1 - DIO1 Configuration - von Disabled[0] in DI [3].
  • Ändere im Verzeichnis I/O Settings IR - Sample Rate den Wert von 0 auf  7D0.
  • Sobald alle Änderungen eingetragen worden sind, übertrage die neuen Konfigurationsdaten mit Write in den XBee Modul.
Abbildung 4 - XCTU Oberfläche mit den neuen Konfigurationseintragungen.

4 - Auswertung der Sendedaten

Sobald beide XBees an die Spannungsversorgungen angeschlossen sind, beginnt die Datenübertragung. Die schauen wir uns mit XCTU etwas genauer an.

Abbildung 5 - Sendeprotokoll für "Taster gedrückt" und "Taster nicht gedrückt".

Während der Übertragung der Datenpakete wurde am Sender der Taster gedrückt und wieder los gelassen. Dieser Effekt sollte sich auch in den Datenpaketen zeigen. Ein Vergleich der beiden gerahmten Bytefolgen zeigt, dass eine Veränderung an der 7. und 13. Stelle erfolgt. Die 7. Stelle steht für die Signalstärke des Funksignals und ist für die weitere Untersuchung hier nicht relevant; aber die 13. Stelle. Sie steht für das lower Byte des Datenpaketes.

Bei nicht gedrücktem Taster liegen die Signale am Eingang des XBees auf 1; da zwei Eingänge aktiv geschaltet sind, DI0 und DI1, ergibt sich die Zahl 3 nach der binär codierten Zahldarstellung. Wird der Taster an DI0 gedrückt, wird er auf 0 gezogen und nur DI1 verbleibt auf 1.

Bytefolge für Taster gedrückt

  • 7E 00 0A 83 08 15 31 00 01 00 03 00 02 28

Die Aktivsignal-Bytes teilen sich wie folgt auf

Wie zu Beginn angesprochen, sind die Ports DO0 und DO1 als Eingang aktiv geschaltet worden; dies wird mit je einer 1 in der stellenwertorientierten Tabelle markiert. Der Binärzahl 0b00000011 entspricht die Hexadezimalzahl 0x03 und die steht als lower Byte im Signalpaket. Die Datenpaket-Bytes unterscheiden sich nur an der Stelle D0 voneinander. Dort steht jetzt eine 0. Der Taster wurde gedrückt, damit wird D0 von 1 auf 0 heruntergezogen, während D1 unbeschaltet und damit auf HIGH oder 1 verbleibt.

Bytefolge für Taster nicht gedrückt

  • 7E 00 0A 83 08 15 3C 00 01 00 03 00 03 1C

Die Aktivsignal-Bytes teilen sich genau so auf wie bei der Besprechung über den gedrückten Taster. Ein Unterschied ist im LowD des Datenpaketes zu erkennen. Die Bits bei D0 und D1 sind beide gesetzt. Das ist richtig, da beide Eingänge offen oder nicht beschaltet sind und damit auf 1 liegen.

Sender und Empfänger im Betrieb

Sobald Sender und Empfänger an die Spannungsversorgung angeschlossen sind, wird vom Sender alle  zwei Sekunden ein Datenpaket an den Empfänger gesandt. Wird der Taster gedrückt, dann kann es bis zu zwei Sekunden Zeitverzögerung geben, bis die LED am Empfänger darauf reagiert und an geht.

Die Zeitverzögerung wurde bei der Konfiguration des Senders unter Sample Rate auf 0x7D0 eingestellt. Dieser Hexadezimalzahl 0x7D0 entspricht der Dezimalwert 2000. Die Sample Rate wird in der Einheit Millisekunden (ms) angegeben.

Soll eine kürzere Reaktionszeit erfolgen, muss die Sample Rate heruntergesetzt werden.

 

Reichweite des Funksignals

Der Abstand zwischen Sender und Empfänger (1mW Version) für einen noch sicheren Funkempfang muss ausprobiert werden. Innerhalb eines normalen Gebäudes (nicht zuviel Beton und/oder Metall) sollten 20 - 30m möglich sein. Im Freien erhöht sich der Wert auf  90 - 100m. Im Datenblatt des Herstellers werden 30m (indoor) und 100m (outdoor) angegeben. Probiere es selber aus.

Wer mit dieser Sendeleistung nicht zufrieden ist, muss auf die leistungsstärkeren PRO Modelle zurückgreifen, die bei 100m (indoor) und 1500m (outdoor) nach Herstellerangaben liegen.

Für den Schulbetrieb sollte die Normalversion ausreichend sein.

5 - Drei LEDs mit drei Tastern fernsteuern

Am Ende dieses Kapitels wird jetzt eine Schaltung aufgebaut, die auf der Senderseite aus drei Tastern besteht und bei der auf der Empfängerseite drei LEDs (rot, gelb, grün) mit Vorwiderstand aufgebaut sind. Sobald ein Taster gedrückt wird, leuchtet die entsprechende LED beim Empfänger auf.

Da miteinander kommunizierende XBees auf korrespondierende I/O Pin reagieren und in dieser Schaltung auf der Senderseite die I/O-Leitungen D0, D1 und D2 als Eingang eingebunden werden, müssen auf der Empfängerseite die entsprechenden Kanäle als Ausgang gewählt werden.

 

Drei LEDs mit drei Tastern fernsteuern
Material
  • 1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)
  • 1x  XBee-Adapter Board
  • 1x  Steckbrett
  • 3x  Taster
  • 1x  Netzteil mit 3,3V - z. B. Arduino-UNO und Propeller Board of Education
  • 1x  USB Verbindungskabel
  • 8x  Steckdraht
  • 1x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnlichen (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)

Schaltungsaufbau Sender

Abbildung 5 - Drei Drucktaster sind auf der Senderseite mit den Pins 20, 19 und 18 eines XBees verbunden. Bei offenem Taster liegen die Eingänge auf 1 und werden mit dem Schließen der Taster auf 0 gezogen.

Schaltungsaufbau Empfänger

Drei LEDs mit drei Tastern fernsteuern
Material
  • 1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)
  • 1x  XBee-Adapter Board
  • 1x  Steckbrett
  • 3x  LED, rot, grün, gelb
  • 1x  Netzteil mit 3,3V - z. B. Arduino-UNO und Propeller Board of Education
  • 1x  USB Verbindungskabel
  • 3x  Steckdraht
  • 1x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnlichen (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)
Abbildung 6 - Drei LEDs mit Vorwiderstand werden an die Pins 20, 19 und 18 des XBees angeschlossen.

Konfiguration Empfänger-XBee

Konfiguration des Empfänger-XBee Moduls
Aufgaben
  • Starte das Programm XCTU.
  • Verbinde das Empfänger-XBee über das USB-Kabel mit dem PC.
  • Setze das Modul mit Default auf die Werkseinstellungen zurück.
  • Ändere im Verzeichnis Networking & Security MY - 16-Bit Source Address in 4711
  • Ändere im Verzeichnis Networking & Security DL- Destination Address in 0815
  • Ändere im Verzeichnis I/O Settings D0 - DIO0 Configuration - von Disabled[0] in DO High[5].
  • Ändere im Verzeichnis I/O Settings D1 - DIO1 Configuration - von Disabled[0] in DO High[5].
  • Ändere im Verzeichnis I/O Settings D2 - DIO2 Configuration - von Disabled[0] in DO High[5].
  • Ändere im Verzeichnis I/O Line Passing IA - I/O Input Address den Wert auf FFFF.
  • Übertrage die neuen Konfigurationsdaten mit Write in das XBee Modul.

Konfiguration Sender-XBee

Konfiguration des Sender-XBee Moduls
Aufgaben
  • Starte das Programm XCTU.
  • Verbinde das Sender-XBee über das USB-Kabel mit dem PC.
  • Setze das Modul mit Default auf die Werkseinstellungen zurück.
  • Ändere im Verzeichnis Networking & Security MY - 16-Bit Source Address in 0815
  • Ändere im Verzeichnis Networking & Security DL- Destination Address in 4711
  • Ändere im Verzeichnis I/O Settings D0 - DIO0 Configuration - von Disabled[0] in DI[3].
  • Ändere im Verzeichnis I/O Settings D1 - DIO1 Configuration - von Disabled[0] in DI[3].
  • Ändere im Verzeichnis I/O Settings D2 - DIO2 Configuration - von Disabled[0] in DI[3].
  • Ändere im Verzeichnis I/O Settings IT Samples before TX auf 1.
  • Ändere im Verzeichnis I/O Settings IR - Sample Rate in 3E8.
  • Übertrage die neuen Konfigurationsdaten mit Write in das XBee Modul.
  • Nachdem alle Konfigurationseintragungen auf die XBees übertragen wurden, schalte Sender und Empfänger ein.
  • Mit jedem Tastendruck muss eine entsprechende LED auf der Empfängerseite angehen und beim Loslassen der Taste auch wieder ausgehen. Die Übertragung dauert ca. 1 Sekunde, so dass die Reaktion der LEDs etwas zeitverzögert ist.
  • Was passiert, wenn zwei oder drei Taster gleichzeitig gedrückt werden?
  • Das folgende Bild (Abb. 7) zeigt die übertragene und vom Empfänger aufgenommene Bytefolge zu unbekannten Tasterzuständen am Sender. Finde über das Übertragungsprotokoll heraus, welche Taster am Sender gedrückt wurden.
Abbildung 7 - Übertragungsprotokoll

Die Lösung

Die Erklärung zu den einzelnen Bytes gibt die folgende Tabelle.

Welche Taster auf der Senderseite gedrückt wurden, ergibt sich aus dem Bytepaaren 00 07 und 00 02.

Die Aktivsignal-Bytes (00 07) teilen sich wie folgt auf

Die Eingänge D0, D1 und D2 sind aktiv geschaltet (symbolisiert durch die 1). Schauen wir uns dazu jetzt die Datenpaket-Bytes an. Von den drei aktiven Tastern an D0, D1 und D2 ist nach den Informationen aus dem Datenpaket nur D1 auf 1, während D0 und D2 auf 0 gezogen wurden. Das heißt, dass die beiden Taster D0 und D2 gedrückt sind und die LEDs rot und grün leuchten.

Die meisten der hier durchgeführten Experimente gehen zurück auf Vorschläge von J. A. Titus, die er in seinem Buch The Hands-on XBee Lab Manual veröffentlicht hat.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf