XBEE 2.5: point-to-point Verbindung
Für mein aktuelles Bastelprojekt „Kurbelino“ (Leistungsdatenerfasssung am Rennrad mit Echtzeitdarstellung auf dem PC) brauchte ich eine Funkverbindung, um serielle Daten von den Sensoren am Rad an meinen PC zu übertragen. Aktuell verwende ich dazu eine selbst gelötete Kabelverbindung; aber das ist nervig. Die Reichweite der Funkverbindung spielt eher eine untergeordnete Rolle, da das Fahrrad auf meiner Antares und der Rechner nur einen Meter weit weg und in Sichtweite steht. Also entschied ich mich für die günstigen Digi XBEE Module in der Version 2.5. Dazu bestellte ich noch einen Arduino FIO (weil der direkt einen Sockel für das XBEE Modul hat) und ein XBEE Explorer Board um die Daten am Rechner empfangen zu können. Ich war mal wieder erstaunt, wie schnell Watterott liefert – Sonntag vormittag um 11:00 bestellt und am Dienstag um 07:00 schon in der Packstation! Also, den Laden kann man nur empfehlen!
Während ich am Montag so auf mein Paket wartete, habe ich mich schon mal durch diverse Foren gelesen und wurde dabei ein wenig nervös, weil dort davon berichtet wurde, dass die neuen XBEEs (Version 2.5) keine direkte serielle Verbindung unterstützen würden und zudem noch schwierig zu konfigurieren seien. Fehlkauf? Im Gegenteil – wie sich später herausstellte!
Am Dienstag abend hielt ich die guten Teile also in der Hand, pöppelte alles zusammen und stellte zuerst einmal eine Verbindung mit der bei digi.com runterladbaren Software X-CTU her. Wenn man auf dem Reiter „PC Settings“ den richtigen Com-Port erwischt und dann auf „Test/Query“ klickt, dann bekommt man schon mal ein paar Infos zu seinem XBEE: z.B. Board-Typ, Firmware und Version. Wie dies genau geht und wie man dann eine einfache point-to-point Verbindung zwischen zwei XBEEs herstellt, ist auf Poldis Website mit Screenshots gut beschrieben. Er verfolgt dabei den bei ZigBees und den „alten“ XBEEs üblichen Weg des direkten Pairing. Dabei werden beide XBEEs als EndDevice konfiguriert und Ihnen die (ich nenn’s mal) Partner-ID „hart verdrahtet“. Diese Lösung ist so lange ausreichend, wie man nur zwei XBEEs verbinden will.
Nachdem ich diese Variante des Pairings erfolgreich getestet hatte, habe ich mich mal an das automatische Pairing mit einem Coordinator-XBEEgetraut. Das hat den Vorteil, dass dieser Coordinator (das ist der XBEE, der bei mir später mit dem Rechner verbunden wird), Signale von mehreren XBEEs empfangen kann. Mann könnte also die Daten mehrerer Fahrrad-Sender gleichzeitig empfangen und verarbeiten. Eine (englische) Anleitung wie das genau geht, habe ich in der Schweiz gefunden und gerade jetzt, wo ich diesen Text hier tippe, auch noch ein interessantes Dokument in Deutsch. Bei meinen Experimenten hat sich aber gezeigt, dass die Reaktionszeit der XBEEs beim direkten Pairing besser ist. Das mag daran liegen, dass ich die Bereiche für Channel und Broadcastrange nicht begrenzt habe. Egal. Zurück zu Variante 1 – die funktioniert ja.
Nachdem ich nun alle technischen Voraussetzung geprüft und alle benötigten Teile besammen habe kann der Aufbau beginnen. Die Umdrehungen des Vorderrades sowie der Kurbel werden per Reed-Schalter abgenommen und vom Arduino FIO zur Berechnug von Geschwindigkeit und Kadenz verwendet. Auf dem FIO steckt einer der XBEEs und sendet die gewonnenen Informationen an den zweiten XBEE, der die Daten an den PC weiterleitet, wo sie mit Processing als Grafik dargestellt wird. FIO und XBEE am Rad werden dabei von einem LiPo-Akku (900mA) für einige Stunden mit Strom versorgt.
Hier noch die AT-Befehle zum Setzen der benötigten Einstellungen auf einem nagelneuen XBEE
+++ (wechselt in den Kommando-Modus)
ATDH13A200 (High Adresse des Gegenstücks)
ATDL403ADCCA (Low Adresse des Gegenstücks
ATNINAME (Setzt den Namen des Geräts)
ATID1975 (Setzt die PAN ID)
ATBD6 (Setzt die BAUD-Rate auf 57600)
ATDB (fragt die Signalstärke des letzten Pakets ab)
ATND (fragt ab, welche Gegenstelle verbunden ist)
Antwort