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

Propeller 8 Kern Controller - C Programmierung

Wer mehr über XBees, ihre Konfiguration unter XCTU und den Aufbau einer Kommunikationsstrecke erfahren möchte und wer sich für den API-Modus interessiert, erfährt mehr unter

Propeller Boards und XBees

 

Sowohl das Propeller-Activity Board als auch das Propeller-Education Board sind werksseitig bereits mit einem XBee-Adapter ausgestattet. Zu viel darf man davon aber nicht erwarten. Der Nachteil dieser Adapter ist, dass über sie kein direkter Zugriff auf die analogen und digitalen Eingänge der Funkmodule möglich ist und dass sich die aufgesteckten XBees über das Programm XCTU nicht ansprechen lassen. Zur Konfiguration der Funkmodule muss also fleißig umgestöpselt werden.

Der Hersteller Parallax Inc. hat leider nur acht der 20 verfügbaren Anschlüsse eines XBees für den Nutzer verfügbar gemacht:

 

  • DO (Data Out), DI (Data In), /RST (Reset), SSI (Signal Strength Indicator), /DTR, /CTS, ASOC (Associate) und /RTS.

 

Die analogen und digitalen I/O Ports sind direkt nicht beschaltbar. Der Nutzen eines solchen XBee-Sockets für experimentelle Zwecke und darüber hinaus ist deshalb nur gering und wird von mir hier nicht mehr weiter verfolgt.

Wer in die Welt der Vernetzung mit Funkmodulen einsteigen möchte ist mit einem Arduino UNO oder einem Raspberry Pi besser bedient. Einige der auf dem Markt angebotenen XBee-Shields werde ich in den entsprechenden Kapiteln vorstellen.

1 - XBee und Propeller-Boards

In diesem Abschnitt geht es um die Kommunikation zwischen einem Propeller Board mit XBee und einem zweiten XBee-Baustein, der sich auf einem XBee-USB Adapter befindet. Das Prop-Board ist zunächst über ein USB-Kabel mit einem PC verbunden und zusätzlich wird ein Schaltnetzteil angeschlossen. Nachdem ein Programm eingegeben und im EEPROM des Propeller-Controllers abgelegt wurde, wird die USB-Verbindung zum PC getrennt. Alle zwei Sekunden wird ein vorgegebener Text per Funk abgestrahlt und von einem zweiten XBee-Baustein, der mit einem USB-Kabel mit einem PC verbunden ist, empfangen und in einem Terminalprogramm ausgegeben. 

XBee und Propeller Boards
Material
  • 1x  Prop-BoE oder Prop-AB
  • 2x  USB-Verbindungskabel
  • 1x  Steckernetzteil für Propeller-Board
  • 1x  XBee-USB-Board
  • 2x  XBee 802.15.4 Modul - Serie 1
  • 2x  Steckdraht

Der Schaltungsaufbau

Abbildung 1 - Propeller-Board mit XBee-Modul. DO und DI des Moduls sind mit P8 und P9 des Propeller Controllers verbunden.
Vorbereitung der XBee-Bausteine
Aufgaben
  • Setze in einen XBee-USB-Modul ein XBee-Baustein ein.
  • Verbinde den XBee-USB-Modul mit dem PC. Es sollten keine weiteren USB-Verbindungen mit XBee-Modulen existieren.
  • Starte die Software XCTU.
  • Wähle über Discover Radio Modules den verbundenen XBee-Baustein aus.
  • Setze das Modul über das Icon Default zurück auf die Werkeinstellungen.
  • Löse die USB-Verbindung zum PC und nimm den zurückgesetzten XBee-Baustein aus der Fassung.
  • Verfahre jetzt genau so mit dem zweiten XBee-Baustein.
  • Am Ende sollten beide XBee-Bausteine auf die Werkseinstellungen zurückgesetzt sein.

Nachdem beide XBee-Bausteine auf die Werkseinstellungen zurückgesetzt worden sind, startet der  Versuchsaufbau.

Versuchsaufbau
Aufgaben
  • Der PWR-Schalter auf dem Propeller-Board ist in Stellung 0.
  • Setze einen XBee-Baustein in die Fassung auf dem Propeller-Board.
  • Baue die Schaltung auf dem Propeller-Board nach Abb. 1 auf.
  • Verbinde das Propeller-Board über ein USB-Kabel mit dem PC (Rechner1).
  • Verbinde das Propeller-Board mit einem Steckernetzteil. Schalte es ein.
  • Setze den zweiten XBee-Baustein in die Fassung eines XBee-USB-Moduls und verbinde es über ein USB-Kabel mit einem zweiten PC oder Laptop (Rechner2).
  • Starte auf Rechner1 die integrierte Entwicklungsumgebung SimpleIDE, gib das Programm XBee_1.c ein und speichere es anschließend ab.
  • Starte das Programm mit Load EEPROM & Run oder der Funktionstaste F11.
  • Starte auf Rechner2 die integrierte Entwicklungsumgebung SimpleIDE und öffne über Program - Open Terminal das Terminalfenster. Achte darauf, dass der richtige COM-Port aktiv ist.
  • Im Terminal sollte nach kurzer Zeit ein Text ausgegeben werden.

Das Programm XBee_1.c

Terminalausgabe

Abbildung 2 - Die empfangene Nachricht auf Rechner2 wird über das Terminal (in diesem Beispiel SimpleIDE Terminal) angezeigt. Es lässt sich jedes andere Terminalprogramm für diese Übung heranziehen; zum Beispiel auch das Terminalfenster des BASIC Stamp Ed

Wie arbeitet das Programm XBee_1.c

Zusätzlich zu simpletools wird in diesem Programm die Bibliotheksdatei fdserial geladen. Die in ihr enthaltenen Befehle ermöglichen einen schnellen Verbindungsaufbau über die serielle Schnittstelle des Propeller Boards.

  • fdserial *xbee

richtet eine Voll-Duplex Gerätekennung ein; mit

  • xbee = fdserial_open(9, 8, 0, 9600)  oder allgemein
  • fdserial_open(rxpin, txpin, mode, baudrate)

werden alle Parameter der seriellen Verbindung festgelegt. Die Bedeutung der Parameter im Einzelnen

9          Pin des seriellen Eingangs für eingehende Daten (rxpin)

8          Pin des seriellen Ausgangs für ausgehende Daten (txpin)

0          mode: 0 - invertiere rx

                       1 - invertiere tx

9600    Baudrate

 

Die nachfolgenden Endlosschleife (Zeilen 11 - 19) startet mit einer Wiederholungsschleife FOR ... (Zeilen 13 - 16). Der Laufparameter i geht von 0 bis 12 und wird nach jedem Durchlauf um 1 erhöht.

Der Laufindex des zweiten Parameters im Befehl der Zeile 15 (w[i]) durchläuft die Werte von 0 bis 12. w[i] ist ein Array vom Typ int, das in Zeile 5 deklariert wird. Es enthält 13 Zeichen in hexadezimaler Schreibweise, die den ASCII-Code einzelner Buchstaben darstellen (bitte in einer ASCII-Tabelle nachschlagen). Mit Hilfe des Befehls

  • fdserial_txChar(fdserial* term, int txbyte)

*term   Geräte ID, die von fdserial_open übergeben wird

txbyte  Byte, das übertragen wird.

 

wird jedes Zeichen dieses Arrays einzeln per Funk ausgesendet. Im Anschluss an die FOR-Schleife wird ein CR (carriage return oder Zeilenrücklauf codiert als ASCII-Zeichen) übertragen und nachfolgend eine Pause von 2s eingelegt.

2 - Das Terminalprogramm CoolTerm

Wer nicht mit dem Programm SimpleIDE arbeiten möchte, kann ein anderes Terminalprogramm benutzen. Auf dem Markt gibt es eine Reihe von kostenlosen Terminalprogrammen, wie zum Beispiel PuTTY oder CoolTerm. PuTTY lief bei mir zu instabil und hat eine spartanische Oberfläche, deshalb habe ich mich für CoolTerm entschieden. Es gibt eine Vielzahl von Anbietern im Netz (einfach googeln unter coolterm), über die das Programm downloadbar ist.

Installation des Programms

Nach dem Herunterladen aus dem Internet, wird das Programm entpackt und gestartet. Der Installationsvorgang dauert nur kurz; anschließend kann das Programm gestartet werden und es meldet sich der Eröffnungsbildschirm.

Abbildung 3 - Startbildschirm von CoolTerm

Über Connection - Options - Serial Port werden jetzt die Grundeinstellungen für eine Verbindung vorgenommen. Die Standardeinstellungen werden übernommen; wird kein COM-Port angezeigt, lassen sich über den Button Re-Scan Serial Ports noch einmal alle verfügbaren Ports des Rechners abfragen.

Abbildung 4 - Einstellungen des seriellen Ports; standardmäßige Vorgabe ist 8-N-1 bei 9600 Baud.

Im Einstellungsfenster Terminal wird das Kästchen Local Echo markiert; alle anderen Einstellungen werden übernommen und das Fenster mit OK verlassen.

Abbildung 5 - Einstellungen des seriellen Ports; standardmäßige Vorgabe ist 8-N-1 bei 9600 Baud.

Mit diesen Grundeinstellungen kann eine erste Verbindung zu einem XBee-Baustein auf einem XBee-USB-Adapter hergestellt werden.

 

Einfache AT-Kommunikation

Gib im Editorfenster von CoolTerm ein

  • +++

und warte so lange, bis das XBee Modul mit OK antwortet.

Mit den beiden folgenden AT-Befehlen wird die Seriennummer des aktuellen XBee-Moduls abgefragt.

  • ATSH <Rücklauftaste>
  • ATSL <Rücklauftaste>

Wie man in Abb. 6 erkennt, müssen unter CoolTerm die AT-Befehle nicht mit großen Buchstaben eingegeben werden.

Abbildung 6 - AT-Befehlseingabe im Editorfenster von CoolTerm
Druckversion | Sitemap
© Reinhard Rahner - Gettorf