Steuerung mit ZigBee

IPTRAIN Steuerung der Modelleisenbahn über andere Funktechnologien (nicht WLAN)
Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Steuerung mit ZigBee

Beitrag von ateshci » Di 3. Feb 2015, 14:35

Hallo allerseits,
ich möchte Euch in diesem Thread nach und nach meine Experimente mit einer dem WLAN sehr ähnlichen Technik für Funknetzwerke geringer Datenrate berichten. Die Steuerung einer Modellbahn ist so etwas, falls man auf permanentes Videostreaming ( Führerstandsmitfahrt etc. ) verzichtet. Es ist mehr etwas für diejenigen, die sich sowieso relativ dicht am Objekt bewegen und das Beobachten der Betriebsabläufe mit Bedienung ohne Hingucken, also Drehknöpfe, Taster etc.,der allgemeinen Wischfon-Mode vorziehen. Wenn man aber unbedingt will, kann man die Bedienung auch auf einem Tablet oder Smartphone ablaufen lassen.
Weshalb der ganzer Aufriss?
Dazu muss man sich den möglichen Aufbau von Netzwerken, in denen die Teilnehmer miteinander in Verbindung stehen, ansehen. Grundsätzlich haben Netzwerke mit ortsbeweglichen Teilnehmern mit Reichweitenproblemen zu kämpfen, auch wenn ein gewisser Herr das gerne herunterspielen möchte. Hinweise auf illegale Leistungsverstärker sind auch nicht besonders zielführend. Es gibt im WLAN die Möglichkeit, die sogenannte 'Roaming' Technik einzusetzen, d. h. wie bei den UMTS-Handies ein Netz von APs ( Zugangspunkten zum Netz ) die alle auf den gleichen Namen hören, aber sich gegenseitig auf der Hochfrequenzseite nicht stören. Sie müssen aber untereinander verbunden sein. Beim Telefon durch Kabel oder Richtfunkstrecken, beim WLAN durch Kabel. So erreicht man eine komplette 'Ausleuchtung ' des Gebietes, in dem sich die Teilnehmer bewegen. Konkret heißt das, hinter einem Hügel, hinter dem Haus, oder an einem Tunnel sollte man vor Einsatz von WLAN-gesteuerten Loks tunlichst einen AP aufbauen, damit es keine bösen Überraschungen gibt. Was nervt, sind dann die Kabel, die man legen muss. Quer durch die Anlage, besonders wie bei der IGG durch die Mitte, wo auch noch andere herumlaufen - malt Euch es selbst aus... Sicherlich kann man das auch permanent installieren, verbuddeln, Steckdosen installieren - irgendwie kennt man das doch von DCC im Garten her, wenn man mehrere Speisepunkte vorsehen muss :-)
Das ZigBee-Netzwerk ist speziell auf diese Probleme hin konzipiert worden, denn man kann dort jeden Teilnehmer in einer 'Router'-Funktion arbeiten lassen, indem er Nachrichten, die nicht für ihn bestimmt sind, einfach an einen für ihn 'sichtbaren' Partner mit der Bitte um Weiterleitung an den Empfänger weiterreicht. So kommt man besser in die abgelegenen Ecken ohne Kabelsalat usw.
So, bis später.
Gruß vom Heizer

Benutzeravatar
gatzi
User
Beiträge: 97
Registriert: Di 15. Jan 2013, 21:00
Wohnort: Bremen
Kontaktdaten:

Re: Steuerung mit ZigBee

Beitrag von gatzi » Mi 4. Feb 2015, 17:44

ateshci hat geschrieben: Das ZigBee-Netzwerk ist speziell auf diese Probleme hin konzipiert worden, denn man kann dort jeden Teilnehmer in einer 'Router'-Funktion arbeiten lassen, indem er Nachrichten, die nicht für ihn bestimmt sind, einfach an einen für ihn 'sichtbaren' Partner mit der Bitte um Weiterleitung an den Empfänger weiterreicht. So kommt man besser in die abgelegenen Ecken ohne Kabelsalat usw.
So, bis später.

Hallo Heizer und Interessierte,

falls mein Einwurf hier fehl am Platze ist, bitte ich es zu entschuldigen, aber ich möchte den Unterschied zum WLAN-Netz für den Anwender noch einmal etwas deutlicher herausstellen als es in der treffenden Einleitung geschieht.

Das ZigBee-Netz erlaubt schon jetzt eine für unsere Belange der Steuerung optimierte Lösung. Die Möglichkeiten, die ZigBee allein schon aufgrund der kleinen Baugröße, der flexiblen Vernetzung und des geringen Strombedarfs bietet, lassen WLAN bei der Gartenbahnsteuerung doch recht "alt" aussehen, wenn nicht gerade aus jeder Lok heraus Videos gesendet werden sollen.

WLAN und ZigBee sind Industriestandards mit unterschiedlichen Zielsetzungen: ZigBee ist ein Netzwerk, dass für die automatische Kommunikation zwischen Maschinen und Geräten entworfen wurde und deren Teilnehmer untereinander direkt und flexibel kommunizieren können, nachdem sie sich an einen Server angemeldet haben; WLAN soll dagegen große Datenmengen innerhalb eines Netzwerks transportieren, dessen Verbindungswege statisch sind und das im Wesentlichen gedacht ist, verkabelte PC-Netze zu ersetzen, wobei die Kommunikation weiterhin und ständig von der Verbindung zu einen Server abhängig ist.

Unnützes weglassen?
Aber bei der durchschnittlichen Gartenbahnsteuerung fallen große Datenmengen (z.B. Videostreams) im laufenden Betrieb weniger an, dafür viele in der Regel nur kurze Befehle, die schnell, möglichst in Echtzeit umgesetzt werden sollen.
Darauf sind die ZigBee-Module optimiert: Klein, schnell, Strom sparend und von guter Reichweite (Hier geben Hersteller im Gegensatz zu anderen Funklösungen tatsächlich einmal Reichweiten an!).
Merke: Man kann in jede Lok einen ganzen Werkzeugkoffer einbauen, um immer und überall alles vorrätig zu haben, auch wenn man vieles tatsächlich nicht oder nur selten braucht. Man kann sich aber auch auf das beschränken, was tatsächlich benötigt wird, spart Platz, Strom und Netzwerk-Resourcen.

Verbrauch, Größe und Sendeleistung
Mit rund 30 mA Stromverbrauch beim Senden und Empfangen und einer Spannung zwischen 2 - 3,6 V genügen schon zwei AA-Batterien, um mit ZigBee den Funkbetrieb über lange Zeit aufrecht zu erhalten. Dementsprechend sind auch die Module je nach Funktion kaum größer: Gerade einmal die Grundfläche einer entsprechenden Doppel-AA-Batteriehalterung und wenige Millimeter Höhe genügt. Damit lassen sich Reichweiten von 30 m (Innen) bis 100 m (Außen) erreichen, in besserer Ausstattung natülich auch deutlich mehr.
Ein Raspi ist - aufgrund seiner nicht immer benötigten Zusatzfunktionen bzw. seines eigentlichen Aufgabenbereichs entsprechend größer und verbraucht teils mehr als das 10fache an Strom, fast soviel wie ein guter Motor in der Lok selbst, bietet aber letzlich keine bessere Sendeleistung.

Nie mehr Funklöcher?
Denkbar ist ein Postwagen oder eine Caboose, die vielfach am Zugende mitlaufen, mit einem ZigBee-Modul auszurüsten, das nicht nur separate Funktionen schaltet (Licht, Rauch für Ofen etc.), sondern gleichzeitig als Router dient, wenn die Lok z.B. in einem Tunnel ("Funkloch") steckt und "nur" noch den eigenen Schlußwagen erreicht.
Bei ZigBee übernimmt dieser dann automatisch die Weiterleitung der Befehle, bis die Lok eine neue oder bessere Verbindung herstellt, im Gegensatz zu WLAN, wo im beschriebenen Beispiel die notwendige Verbindung von der Lok zum Server abgeschnitten ist und somit keine weitere Kommunikation möglich wäre, außer die Lok bekäme selbst wieder eine Verbindung. Das macht klar, dass bei WLAN eine vollständige Netzabdeckung für die jeweilige Umgebung erst geplant oder ausprobiert werden sollte, um das Netz gegebenenfalls mit ensprechenden zusätzlichen (verkabelten) Zugangspunkten auszustatten.

-----

Aber zurück zur Einleitung.

Ich bin auf die weitere Darstellung (und Umsetzung?) gespannt.
Meine Gartenbahn-Website >>>
Mein Gartenbahn- und Modellbau-Blog >>>
Schmalspur 1:22,5 im Garten, Regelspur 1:160 im Haus

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » Mi 4. Feb 2015, 19:31

@gatzi
Das war ein sehr nützlicher Beitrag - besonders der Endwagen, der die Lok im Tunnel noch erreicht - besser kann man es nicht schildern. :!:
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » Mo 9. Feb 2015, 18:27

Die von mir verwendeten telegesis ETRX35x-LRS haben von Hause aus die Möglichkeit, ein PWM-Signal herauszugeben, das den uns interessierenden Frequenzbereich überstreicht, also zwischen 50 und 20 kHz. Außerdem gibt es 3 ADCs, 20 digitale I/Os, sowie eine serielle Schnittstelle, die man auch als I²C konfigurieren kann. Damit kann ohne weiteren µC-Einsatz die erreichte Funktionalität von WLANCROC darstellen, man braucht also das MC2561-Board nicht. Das Ganze ist 18mmx35mm groß.
Damit, dem H-Brücken-Print sowie einem 3V3-Schaltnetzteil für die Versorgung hat man schon ein funktionsfähiges Loksystem. Dieses baue ich gerade zusammen und berichte dann über die Testfahrten.
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » So 22. Feb 2015, 21:53

Ich beschreibe mal kurz, wie leicht sich ein Zigbee-Netzwerk erstellen lässt. Dazu schließt man ein ZigBee-Modul( ETRX3 oder ETRX2 heißen die bei Telegesis ) an 3,3V und einen TxD/RxD - USB-Umsetzer, also einen seriell-USB-Wandler wie im Projekt vorhanden, an.
Nach dem Laden der Treibersoftware für diesen Umsetzer kann man den Anschluss im Gerätemanager finden.
Mit irgendeiner Terminalsoftware, Hyperterminal oder Teraterm, öffnet man dann diesen COM-Port und stellt 19200baud 8N1 ein. hat man alles richtig verbunden, also auch darauf geachtet, dass RxD beim Modul TxD beim Umsetzer und umgekehrt ist, kommt auf das Kommando 'ATI' kommt sofort die Rückmeldung, also
ati
telegesis ETRX357
R308C
000D6F00028046CB

OK
Erläuterung:
1. Zeile - Modellbezeichnung
2. Zeile - Softwarestand
3. Zeile - 64bit-Adresse hexadezimal ( entsprechend der MAC-Adresse beim WLAN, wird vom Hersteller individuell festgelegt )
4. Zeile - Übertragungsquittierung

Wie baut man jetzt ein Netz auf?
Im 'jungfräulichen Zustand ist jedes Modul ein Router, aber es ist noch keinem PAN ( Personal Area Network ) zugeordnet. Um eines zu erstellen, macht man jetzt einfach dieses erste Modul zum Koordinator.
Man sendet über die Schnittstelle:
at+en
und das Modul antwortet nach ca. 4 sec:
JPAN xx PID 000D6F00028046C
xx ist der KHF-Kanal, der als der mit dem besten Signal/Rauschabstand vom Modul nach einem Scan aller ZigBee-Kanäle gefunden wird,
PID ist eine 4stellige HEX-Zufallszahl ( entspricht der IP-Adresse bei DHCP im WLAN ), damit lässt sich dann der der Koordinator anstatt mit der 64bit-Adresse im Netz ansprechen, und die schon bekannte 64bit-Adresse.

Nun kann man beliebig viele andere Module einschalten, sie verbinden sich automatisch nach spätestens 1 Minute mit dem PAN und können dann über das Netz konfiguriert werden.
Um festzustellen, wer alles da ist, gibt man am Koordinator ein:

at+sn
und als Rückmeldung kommt z.B.
FFD: 000D6F0001EFA31B, C7D8
.....

für jedes vorhandene und verbundene Modul
Die zweite Hexzahl ist wieder die Netzwerkadresse, unter der man das Modul jetzt ansprechen und parametrieren kann.

Das Wichtigste ist, dass jetzt nach dem Ausschalten diese Netzwerkdaten permanent in allen beteiligten Modulen gespeichert sind und beim nächsten Einschalten braucht man sich um nichts kümmern - selbst wenn ein weiteres PAN vorhanden wäre, würde sich das Modul 'seinem' PAN anschließen.
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » Di 3. Mär 2015, 20:53

Hallo allerseits,
hier mal ein Bild der Testschaltung, die in die Lok kommt. Ich habe als Motortreiber doch den L6202 genommen, denn der kann im Gegensatz zum WLANCROC-Schaltkreis echten TTL-Pegel und ist damit auch 3,3V-tauglich. Ich kann also locker auf den Level-shifter und das 5V-Netzteil verzichten. Benutzt habe ich ein PA2-Modul von telegesis, weil es als 2,54mm-SMD daherkommt und deshalb leicht in das 'Breadboard' einzulöten ist. Die neue Reihe ETX357 hat 1,27mm-Raster und da braucht man einen Print. Von der Funktion gibt es keinen Unterschied.
Was habe ich drauf?
Eine PWM, die in weitesten Grenzen einstellbar ist, also von 50 Hz bis 16kHz zum Ansteuern des L6202 ( Der kann zwar nur 1,5A, aber für die Testzwecke reicht das allemal ) Acht digitale I/Os, die ich hier als Ausgänge an einen 2803 gehängt habe ( auch der kommt direkt mit 3V-Signalen zurecht ). Zwei analoge Eingänge, die für 24V ausgelegt sind, ein 3,3V-Schaltnetzteil und einen Filterkondensator- fertig ist die Loksteuerung! Im Gegensatz zum Kabelsalat von WLANCROC doch ein echter Gewinn, oder nicht?
Der Befehlssatz des Moduls erlaubt mir, direkt die Geschwindigkeit, Richtung und die Werte der I/Os auszugeben/einzulesen. ich brauche dazu keinen µC in der Lok. In bekannter Weise baut sich das Netz 1min nach dem Einschalten auf, ich brauche nichts anzugeben.
Dateianhänge
ZigBee-Board2.gif
ZigBee-Board.gif
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » Di 10. Mär 2015, 21:08

Es ist zwar eine allgemeine Tatsache,aber ich schreibe es mal hierhin:
Mit den 620x ist kein vernünftiges Enable-Chopping, also das 'normale' Pulsen von Motoren, bei dem in der Impulspause alle Transistoren abgeschaltet sind, für Frequenzen über ~1000Hz möglich. Der Grund liegt darin, dass bei induktiver Last unabhängig von Snubbernetzwerk und Schottky-Freilaufdioden zusätzlich zu den intrinsischen, die Brücke grundsätzlich sich für ca. 100µsec von selbst umpolt, nachdem der EN-Puls auf '0' gegangen ist. Erst dann werden alle Transistoren gesperrt. Fazit: Umpolrelais + ein MOSFET und alle Sorgen sind vorbei.
IMG_0008.gif
Was Ihr hier seht: Links die Anschlüsse für Versorgung und Motor mit Relais und MOSFET für max. Motorstrom von 3A. In der Mitte das ZigBee-Modul, links oben davon das 3,3V-SNT, ein 1000µF-Kondensator und rechts dann der ULN 2803. Darunter das Netzwerk für den Analogeingang.
Ich kann alles mit den AT-Befehlen über das Netzwerk ansteuern bzw. auslesen! Ich brauche keinen zusätzlichen µP. Die PWM lässt sich von 50..20kHz frei wählbar einstellen. Es gibt S-Register, die ähnlich den CVs bei DCC z.B. die beim Einschalten geladenen Werte für PWM permanent speichern bzw. Ausgänge schon gleich auf 'H' setzen.
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Steuerung mit ZigBee

Beitrag von ateshci » So 5. Apr 2015, 15:32

Es bleibt bei allem die Frage nach dem Steuergerät. Ich bin kein Fan von Wischfon-Eingabe, ich brauche einen Drehknopf und Taster/Schalter. Dazu gibt es bei telegesis eine schon in der Firmware eingebaute Möglichkeit, alle digtalen Eingänge und die beiden ADCs an den Netzkoordinator automatisch mit einem einstellbaren Zeitintervall zu übertragen. Mit einem kleinen PC-programm muss man diese Daten einer Lokadresse zuordnen und dann an diese wieder übers Netz verschicken. Also brauche ich nur ein ZigBee-Modul in ein Gehäuse mit Poti und Tastern/Schaltern einbauen und diese Firmware-Option aktivieren. Das PC-Programm ist für mich noch zu lösen und dann können die Tests auf der Anlage in z. B. Stockheim beginnen.
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » Mi 8. Apr 2015, 22:32

Am 11.4. werde ich zum Fahrtag Mitte mit dem schon 'berüchtigten Schienenbus', der jetzt auf ZigBee läuft, aufkreuzen. Ich habe mir im Terminalprogramm ein paar Makros geschrieben, die drei verschiedene Lichtfunktionen und sogar relativ langsames Hochfahren auf die Endgeschwindigkeit bzw. Abbremsen durch Antippen von Softkeys erlauben. Da führe ich das Ganze mit Schleppi dann mal vor.
Korrektur: Datum war falsch eingetragen
Gruß vom Heizer

Benutzeravatar
ateshci
Senior
Beiträge: 193
Registriert: Mi 16. Jan 2013, 15:12
Wohnort: Friedberg(Hessen)
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: Steuerung mit ZigBee

Beitrag von ateshci » So 12. Apr 2015, 16:39

Gestern also bin ich zum ersten Mal mit ZigBee auf einer relativ ausgedehnten Anlage mit HF-Abschattungen gefahren. Sie ist L-förmig um ein Haus herum angelegt. Die Terasse, von der aus man den einen Schenkel des L einsehen kann, ist hinten am Haus. Der andere Schenkel des L verläuft an der Längsseite und ist nicht einsehbar. Ich habe im Empfänger einen Timer aktiviert, der alle 10sec eine Statusmeldung absetzt - Zustand aller 8 digital I/Os ( egal, ob Ein-oder Ausgang ), Versorgungsspannung und ADCs ( auf einem lag der Ausgang der H-Brücke und meldete so die Motorspannung ). Gefahren wurde vom Schleppi aus, auf dem auch die abgehenden und ankommenden Telegramme des Gesamtsystems angezeigt wurden. Es lief problemlos. Selbst auf dem abgeschatteten Teil blieb die Verbindung weiter bestehen, als ich das bisher mit WLAN hatte. Den Abriss erkannte man daran, dass 1. keine Meldungen mehr kamen und 2. ein abgesetztes Telegramm mit NACK+Fehlercode angezeigt wird. Da schaltete ich einfach ein anderes batteriebetriebenes ZigBee-device ein, wartete, bis es sich ins Netz eingebucht hatte und stellt es an die Ecke ins Gras. Flugs liefen die Meldungen wieder ein, mit Anzeige des Umweges. Es steht im Telegramm, sowohl beim Senden wie auch Empfang, immer mit dabei, von und über welche Netzadressen es kommt. Wenn also statt einer deren zwei oder mehr zu sehen sind, weiß man, dass es über die Zwischenstation läuft. Bei ZigBee können bis zu 30 solcher 'Hops' (Sprünge ) vorkommen. Die Sendeleistung der beteiligten ZigBee-Elemente lag bei 19dBm, knapp 100mW.
Mein Fazit: So stressfrei bin ich bisher mit WLAN im Freien nicht gefahren.
Gruß vom Heizer

Antworten
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Zurück zu „Steuerung der Modelleisenbahn über andere Funktechnologien (nicht WLAN)“