Infrarot Zugbus

Elektronisches und digitales - Bitte keine Fragen zum MZS

Moderator: fido

Antworten
Hermi
Beiträge: 16
Registriert: Do 30. Jan 2014, 12:43
Wohnort: München
Kontaktdaten:

Infrarot Zugbus

Beitrag von Hermi »

Hallo Forumsgemeinde,

ich möchte mal hier meinen Infrarot Zugbus vorstellen. Er ist aus dem Bestreben entstanden verschiedene Funktionen einzelner Waggons gezieht zu bedienen. Alles unter der Vorgabe, dass ich meine Lokomotiven per Funk steuere und Waggons beliebig an und abkoppeln möchte, ohne dass ich Kabel stöpseln muß.
Nachteil ist, dass jeder Wagen einen Akku benötigt. Dies könnte jedoch bei Versorgung über das Gleis vermieden werden.

Zum Aufbau:
Die Lok hat einen IR-Sender mit Emittern (IR-LEDs) an beiden Pufferbohlen.
Jeder Wagen hat eine IR-Auswerteeinheit mit je einem Empfänger und einem Emitter pro Pufferbohle.
Somit kann jeder Wagen, egal in welcher Richtung er läuft, an der einen Pufferbohle Kommandos der Lok empfangen und an der anderen Seite an den nächsten Wagen weiter geben.

Der Loksender besteht aus einem kleinen Arduino, der Fernsteuersignale bzw. Servosignale auswerten kann und dann die beiden IR-LEDs gleichzeitig bedient.
Die Waggoneinheit hat auch einen kleinen Arduino der die Signale empfängt, auswertet und an den nächsten weitergibt. Die Kommandos wandelt er dann in Servo oder Schaltsignale für verschiedene Funktionen.

Übertragungsprotokoll:
Das Übertragungsprotokoll baut auf dem RC5-IR-Code auf. Obwohl eigentlich nur einzelne Bits übertragen werde und diese beliegig genutzt werden könnten, habe ich mich an den grundsätzlichen Aufbau gehalten.
Hier der Aufbau nach RC5 (Quelle: https://de.wikipedia.org/wiki/RC-5):
  • Ein Start-Bit, das immer logisch 1 ist und es dem Empfänger erlaubt, die korrekte Verstärkung für die nachfolgenden Datenbits zu wählen.
  • Ein Field-Bit, das verwendet wird, um zwischen einem unteren Kommandobereich mit einem Wertebereich von 0 bis 63 und einem oberen Kommandobereich mit einem Wertebereich von 64 bis 127 zu unterscheiden.
  • Ein Steuerbit, das bei jedem Tastendruck auf der Fernbedienung seinen Zustand wechselt. Damit kann zwischen dem permanenten gedrückt Halten einer Taste und dem wiederholten Drücken und Loslassen unterschieden werden.
  • Eine 5 Bit lange Systemadresse zur Auswahl zwischen 32 verschiedenen Gerätearten.
  • Ein 6 Bit langer Kommandowert, der eine Funktion aus einem Set von 64 Möglichkeiten (bzw. in Kombination mit dem Field-Bit 128) auswählt. Jeder Funktion, wie beispielsweise dem Verstellen der Lautstärke, ist dabei ein bestimmter Kommandowert zugeordnet.
Ich habe den Datenaufbau etwas verändert:
  • Das Start-Bit behält seine Funktion
  • Das Field-Bit definiert, ob die Funktion an oder abgeschlten werden soll
  • Das Steuerbit toggelt bei jeder neuen Übertragung (Ideal für eventuelle Tastfunktionen)
  • Die Systemadresse definiert die gewünschte Funktion. (z.B. Türen, Licht, Kippfunktion oder ähnliches)
  • Der Kommandowert sagt, welche Postion geschalten werden soll.
Für die Systemadresse hab ich aktuell folgendes definiert:
  • 0x00 Licht
  • 0x01 Zugschlusslicht
  • 0x10 Türen
  • 0x10 Klappen
Darüber hinaus wäre sicher noch weiteres denkbar. Z.B. bewegende Passagiere, Soundfunktionen,...

Woher weiss nun der Waggon, welche Tür gemeint ist?
Mal angenommen, der Waggon hängt mit Pufferbohle 2 an der Lok. An Pufferbohle 1 hängt der nächste Waggon. Der Waggon hat pro Seite 4 Türen, wie bei meinen 4yg-Wagen, also insgesamt 8 Türen.
Nun kommt der Befehl Tür 3 auf, also:
  • Field-Bit 1
  • Steuerbit 1
  • Systemadresse 0x10
  • Kommandowert 0x03
Der Wagen zählt nun seine Türen ab Pufferbohle 2 durch. In Fahrrichtung links beginnend. Somit wäre Tür 3 die 2. Tür auf der linken Seite.
Die Tür wird geöffnet.
Sollte Field-Bit 0 gesendet worden sein, geht die Tür zu.
Soweit alles gut.
Nun soll am 2. Waggon die 3. Tür auf der rechten Seite geöffnet werden. Also Befehl:
  • Field-Bit 1
  • Steuerbit 0
  • Systemadresse 0x10
  • Kommandowert 0x0C (12)
Der erste Wagen sieht nur das Kommando Tür mit der Nummer 12. Er hat aber nur 8. Also schickt er das Kommando weiter an Wagen 2. Dabei wird aber der Kommandowert verändert. Er zieht die Anzahl seiner Türen ab. Also sendet er weiter:
  • Field-Bit 1
  • Steuerbit 0
  • Systemadresse 0x10
  • Kommandowert 0x06
Der erste Wagen sieht nur das Kommando Tür mit der Nummer 6. Er öffnet daher die richtige Tür.
Das Spiel kann beliebig vorgesetzt werden.
Bei dem ganzen gibt es 2 besondere Kommandowerte:
  • 0 keine Funktion wird betätigt. Sollte von Waggon zu Waggon weitergegeben werden, wenn die betreffende Funktion bereits gefunden wurde. Nur um die IR-Detektion sicherzustellen (siehe dazu weiter unten mehr)
  • 0x3F alle Funktionen. Dieser Wert wird unverändert weitergegeben. Ideal um z.B. bei Abfahrt alle Türen gleichzeitig zu schließen.
Zur Sicherstellung der Übertragung:
Sofern die Lok im defineirtem Rythmus IR-Pakete versendet und auch von Wagen zu Wagen weitergegeben werden, kann der Wagendecoder erkennen, ob das Kommando von "seiner Lok" oder als Irrläufer kommt. Damit können z.B. vorbeifahrende Züge keine Störung verursachen.

Somit mal zum theoretischem Teil. Wenn interesse besteht, kann ich auch noch meine Umsetzung im Detail hier beschreiben.
Alles wird Gut. Is nicht alles Gut, Ist's noch nicht zu Ende
Benutzeravatar
GBMEGGTAL
Buntbahner
Buntbahner
Beiträge: 2000
Registriert: Mo 15. Aug 2005, 11:26
Wohnort: Basel

Re: Infrarot Zugbus

Beitrag von GBMEGGTAL »

Hallo Hermi

Bin erstaunt über die Idee Wagen so zu steuern. Finde es genial. :P
Die Akkus in den Wagen sind halt etwas umständlich.
Ennelop verwenden die haben eine kleine Selbstentladung.
Freue mich auf weitere Beschreibungen.
Gruss Sigi
Hermi
Beiträge: 16
Registriert: Do 30. Jan 2014, 12:43
Wohnort: München
Kontaktdaten:

Re: Infrarot Zugbus

Beitrag von Hermi »

Ich komme ja vom Funktionsmodellbau in 1:16 (Wedico/Tamiya) wieder zur Eisenbahn.
Diesmal Spur 3. Da muss dann auch Funktion an den Wägen sein. Was sich auch in der Baugröße gut realisieren läßt.
Aktuell habe ich Fans-Kippwagen und 4yg Umbauwagen
Die Kippwagen können beidseitig abkippen mit wählbahrer Klappenstellung
Bei den Umbauwägen lassen sich alle Türen (bis auf die Gepäcktür) öffnen und das Licht schalten

Ich denke, dass Funktion in Spur IIG auch möglich sein sollte.
Alles wird Gut. Is nicht alles Gut, Ist's noch nicht zu Ende
Antworten