Mit den XBee Modulen können verschiedene Netzwerkarchitekturen aufgesetzt werden. Ich verwende nur eine direkte Verbindung zwischen den beiden Modulen. Dieser Verbindungstyp ist voreingestellt und funktioniert auf Anhieb mit den XBee Pro Modulen. Natürlich kann man hier noch eigene Einstellungen vornehmen wie der Name der Verbindung bzw. das Netzwerkes heißen soll. Das empfiehlt sich wenn mehrere XBee / ZigBee Netzwerke in direkter Nähe zueinander betrieben werden. Ich benötige die Datenübertragung zwischen meiner Basistation und der mobilen Einheit für die genaue differential GPS Positionierung mit der RTK Bibliothek meines Roboters.
Als erstes werden einfach die XBee Pro Module auf die XBee Explorer USB Adapter gesetzt und via USB-Kabel am Raspberry Pi angeschlossen. Ich habe meine beiden Module jeweils an die Basistation und an die mobile Einheit angeschlossen.
Das folgende Bild zeigt meine Basistation und die mobile Einheit bestückt mit den RasPiGNSS Modulen für die präzise GPS Navigation.
Hier ein Angebot bei Amazon für ein XBee Modul wie ich dieses an meinem Raspberry Pi in Verwendung habe. Von der Bauform unterscheiden sich die Module immer etwas leicht aber von der Funktion gibt es keinen Unterschied.
Mit einem XBee Explorer können die XBee Module einfach über USB an den Raspberry Pi angeschlossen werden.
Als Antennen habe ich die folgenden bei mir verbaut. Diese funktionieren ohne Probleme und konnen über die nachfolgende Werbung bei Amazon gekauft werden.
Gut ist auch das folgende Modell mit externen Antennenanschluss auch wenn es kein Pro Modell ist. Dieses hatte ich leider nicht auf Amazon gesehen gehabt als ich mein Modul bestellt habe. Jetzt würde ich deses kaufen da der Anschluss der externen Antenne einfacher ist auch wenn die Reichweite sicher geringer ausfällt.
Mit dem folgenden Befehl seht Ihr dann den angeschlossenen XBee Explorer am Raspberry Pi.
Befehl: lsusb
Jetzt wissen wir, dass der XBee Explorer erkannt wurde und als Gerät verfügbar ist. Welches USB Gerät er genau ist wissen wir noch nicht. Das bekommen wir mit dem folgenden Befehl heraus.
Befehl: dmesg | grep ttyUSB
Die Ausgabe sieht dann wie folgt aus.
Jetzt ist das Gerät unter Raspbian bekannt und das XBee Pro Modul kann verwendet werden mit einer Übertragungsrate von 9600 Baud. Das XBee Modul kann jetzt als serielles Schnittstelle verwendet werden für die Übertragung der GPS Information von der Basisstation hin zu der mobilen Einheit. Allerdings sind die 9600 Baud eine sehr niedrige Übertragungsrate die gerade einmal für das NMEA Format reicht.
Daher möchte erkläre ich im folgenden Abschnitt wie die Baudrate des XBee Moduls verändert werden kann.
Minicom Installation
Minicom ist ein Text basierter Emulator unter Linux für die Kommunikation über ein Modem oder der seriellen Schnittstelle. Diesen Emulator installieren Sie mit dem folgenden Befehl im Terminalfenster des Raspberry Pi.
Befehl: sudo apt-get install minicom
Nach der Installation von Minicom wird dieser mit dem folgenden Befehl mit einer Übertragungsrate von 9600 Baud gestartet. So ist es möglich auf das XBee Modul über dem Emulator Minicom zuzugreifen.
Befehl: sudo minicom -b 9600 -D /dev/ttyUSB0 -o
Die Konsole die jetzt angezeigt wird im Terminalfenster sieht wie auf dem nachfolgenden Bild gezeigt aus.
Damit Minicom auch Befehle von der Tastatur entgegen nimmt muss Minicom auf local Echo umgestellt werden. Dazu bitte die beiden folgenden Befehle eingeben.
Befehl 1: CTRL-A gefolgt von einem Z
Befehl 2: e (eintippen für „local Echo on/off“)
Ab jetzt kann mit dem XBee Modul über Minicom kommuniziert werden und es können Einstellungen vorgenommen werden.
XBee S1 Pro Modul Baudrate ändern
Nach dem der Terminalemulator Minicom auf „local Echo on“ gestellt wurde können Sie die folgenden Befehle eingeben um die Baudrate zu ändern. Es stehen die in der nachfolgenden Geschwindigkeit aufgezählten Geschwindigkeiten zur Verfügung.
Baud Code | Baud Rate | Notes |
---|---|---|
0 | 1200 | |
1 | 2400 | |
2 | 4800 | |
3 | 9600 | Okay for a NMEA transmission |
4 | 19200 | |
5 | 38400 | |
6 | 57600 | |
7 | 115200 | Okay for a RTCM3 transmission |
XBee Modul ansprechen:
Das XBee Modul wird mit drei +++ Zeichen angesprochen über das Terminalfenster Minicom. Es wird nach den drei + Zeichen nicht Enter getippt. Es sollte anschließend ein OK angezeigt werden das bestätigt, dass das XBee Modul jetzt für die Konfiguration bereit ist. Jetzt muss der nächste Befehl innerhalb von 10 Sekunden eingeben werden. Andernfalls wechselt das XBee Modul wieder in den Übertragungsmodus.
Befehl: +++ (anschließend erscheint ein OK)
XBee Modul Baudrate einstellen:
Aus der Tabelle oben können die möglichen Übertragungsraten nachgeschlagen werden. Mit dem Befehl ATBD wird die aktuell eingestellte Bautrate angezeigt. Es sollte die 3 sein für 9600 Baud.
Befehl: ATBD <ENTER> (zeigt die aktuelle Übertragungsrate als Zahl an)
Jetzt kann die Übertragungsrate mit dem folgenden Befehl geändert werden.
Befehl: ATBD7 <ENTER> (setzt die Übertragungsrate auf 115200 Baud)
Damit nach einem Neustart des XBee Moduls die geänderte Übertragungsrate noch eingestellt ist wird der folgende Befehl noch ausgeführt.
Befehl: ATWR <ENTER> (Speichert die eingestellte Übertragungsrate im ROM)
Die Änderung der Übertragungsrate wird an beiden Modulen vorgenommen. Mit dem Befehl CTRL- A gefolgt von einem x wird Minicom beendet.
XBee Modul Baudrate testen:
Nach dem Sie beide Raspberry Pi neugestartet haben öffnen Sie auf beiden wieder ein Terminal Fenster und starten Minicom mit dem folgenden Befehl.
Befehl: sudo minicom -b 115200 -D /dev/ttyUSB0 -o
Als nächstes muss in beiden Minicom Terminalfenstern der Echo Modus aktiviert werden. Anschließend können Sie jetzt einen Text in einem der beiden Minicom Fenstern tippen und der Text sollte im anderen Fenster erscheinen.
Bei mir sieht das jetzt wie folgt aus.
Ab jetzt kann die Kommunikation der RTK Bibliothek über die XBee Funkmodule erfolgen.
Zusammenfassung
Ich habe mehrere Stunden gebraucht bis ich verstanden hatte wie ich die XBee Module miteinander verbinden kann mit einer Übertragungsrate von 115200 Baud. Dazu musste ich mich einlesen wie die XBee Module konfiguriert werden können. Als ich das verstanden hatte war es ganz einfach die Einstellungen vorzunehmen und die Kommunikation hat sehr gut funktioniert. Jetzt kann ich die GPS Daten zwischen der Basisstation und meinem Roboter ohne Probleme übertragen.
Artikel Übersicht GPS Modul RasPiGNSS:
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – EinführungPräzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB - Theoretischer Aufbau
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – GPS Antennen Aufbau
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Software Installation
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Konfiguration RTK Basisstation
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Konfiguration RTK Mobile Einheit
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – XBee Funkverbindung Vorraussetzungen
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – XBee serielle Datenübertragung
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Navigation
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – RasPiGNSS im Dauer-Betrieb
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Erfahrungsbericht
Recent Comments