­­Es sind zunächst zwei grundsätzlich unterschiedliche Vorgänge zu betrachten: Eingaben in Richtung Zusi, also z.B. Schalterbetätigungen an Fahrpulten und als zweiter Punkt Ausgaben aus Zusi, z.B. die Anzeige der Geschwindigkeit in entsprechender Hardware. ­

Eingaben in Richtung Zusi

Für Eingaben an Zusi sollte die integrierte Schnittstelle für Gamecontroller oder die Sendung von Schalterbedienungen per TCP benutzt werden.

Eingabe per Gamecontroller

Als Gamecontroller kann alles benutzt werden, was auch in der Windows-Systemsteuerung als Gamecontroller erkannt wird, z.B. Joysticks, Joypads, Flugsimulatorensteuerung usw.

Diese Geräte werden über USB mit dem Zusi-Rechner verbunden, werden automatisch von Zusi erkannt und können direkt benutzt werden. Auch mehrere Geräte können angeschlossen und parallel in Zusi genutzt wer­den.

bsb_fahrpult_usb.png

Anstelle handelsüblicher Joysticks kann auch andere Hardware über diese Schnittstelle benutzt werden. Die Schnittstelle kann eine Vielzahl von Gerätekonfigurationen verarbeiten, welche automatisch erkannt werden. Für Zusi relevant sind Schalter und analoge Achsen. Fahrschalter, Bremsventile usw. werden über die analogen Eingänge eingespeist, Kippschalter, Taster usw. werden über die Schalter eingespeist. Entsprechende Chips liefert z.B. die auf solche Aufgaben spezialisierten Firma Code Mercenaries. Einen Bausatz mit Platine gibt es im Zusi-Shop.

Fertige Module gibt es z.B.auch von Leo Bodnar.

Zu beachten ist bei allen Chips die maximale Kabellänge. Manche Chips können nur recht kurze Kabellängen verarbeiten, die für typische Bahnfahrpulte nicht ausreichen. Verwendet man längere Kabel, kann es zu Geisterschaltungen kommen, also zu Signalen von Schaltern, die gar nicht betätigt wurden.

Außerdem ist bei den analogen Eingängen der Wertebereich der Widerstände zu beachten. Nicht alle Chips beherrschen große Wertebereiche.

Eine weitere - und evtl. die preiswerteste - Möglichkeit ist die Ausschlachtung eines alten Joysticks. Allerdings wird es dazu in der Regel keine genauen Spezifikationen geben, so daß das Thema Kabellängen und Arbeitsbereich der Potentiometer nach der Zerlegung zunächst erforscht werden muß.

Eingabe per TCP

Ebenfalls möglich ist die Übertragung der Eingaben über die Zusi-TCP-Schnittstelle. Dazu muss eine individuelle Lösung programmiert werden, die sich als TCP-Client mit Zusi verbindet. Details zum Protokoll, Programmierbeispiele usw. finden sich in der Dokumentation.

Ausgaben aus Zusi

Der aufwendigere Fall ist die Darstellung von Fahrdaten auf externen Anzeigen. Hier sind vertiefte Programmier- und Elektronikkenntnisse unumgänglich. Es muß zunächst ein Client programmiert werden, der auf der einen Seite per TCP die Daten aus Zusi ausliest. Der Client wird dann permanent mit den aktuellen Fahrdaten versorgt. Die beiden rechten Elemente des folgenden Blockschaubilds müssen in Hard- und Software für das jeweilige Fahrpult erstellt werden.

bsb_fahrpult_basis.png

Ausgabegeräte

Zunächst sollen typische Ausgabegeräte und deren Ansteuerung näher betrachtet werden.

Drehspulinstrument: Gängige Technik für Zeiger sind Drehspulinstrumente. Diese schlagen weiter aus, je höher die angelegte Spannung ist. Der Arbeitsbereich liegt oft zwischen 0 und 5V, es gibt aber auch Geräte im Bereich 0...30V. Statt mit konstantem Gleichstrom kann so ein Geräte auch mit Pulsweitenmodulation (PWM) angesteuert werden, was sich meist einfacher realisieren läßt.

LED: In 7-Segmentanzeigen oder LZB-Zielwegbalken finden LEDs Verwendung. Diese lassen sich wegen ihrer geringen Leistungsaufnahme ggf. ohne Verstärkerschaltung direkt aus dem Mikrocontroller ansteuern.

Leuchtmelder: Diese benötigen bei Verwendung der origfinalen Leuctmittel (typisch 110 oder 24V) eine eigene Energieversorgung. Zur elektrischen Trennung sollten sie per Relais oder Optokoppler angesteuert werden. Leuchtmelderglühlampen lassen sich häufig durch LEDs mit passenden Sockeln ersetzen, die dann direkt ohne Verstärker betrieben werden können (häufig lassen sich eher LEDs für 6V als 5V finden, was aber erfahrungsgemäß für ausreichende Helligkeit reicht).

Druckluftanzeiger: Für die Bremse werden in der Regel Manometer benutzt, die unmittelbar Druck in eine Zeigerposition umsetzen. Eine elektrische Ansteuerung kann über Servos oder Schrittmotoren erfolgen, wobei ein entsprechender Umbau der Mechanik notwendig ist. 

Ausgabehardware

Für die Schnittstelle zwischen Client und Hardware wird eine Ausgabehardware im PC benötigt. Dazu stehen verschiedene Möglichkeiten zur Verfügung:

Arduino: Die von Arduino angebotenen Platinen bieten eine relativ einfach zu handhabende Datenausgabe. Der Chip kann frei programmiert werden und z.B. direkt einen Servo oder ein Drehspulinstrument mit PWM ansteuern.

IO-Warrior: Eine weitere Möglichkeit ist der IO-Warrior der Firma Code Mercenaries. Der IO-Warrior kann aber lediglich Pins zwischen an und aus schalten. Die mögliche Leistungsabgabe ist gering. Für die Ansteuerung von Relais für Leuchtmeldern usw. ist daher eine entsprechende Verstärkerschaltung nötig. Instrumente, die kontinuierliche Größen anzeigen, brauchen entsprechend viele Pins für eine ausreichende Auflösung. 8 Pins, also 8 bit, reichen z.B. für eine Auflösung von 2^8 = 256 Werten, was bei einem 140 km/h-Tacho zu 0,56 km/h-Schritten führen würde. Zur Umsetzung zwischen IO-Warrior und Drehspulinstrument ist ein entsprechend zu programmierender Mikrocontroller nötig, der die Pinbelegung in PWM-Signale umsetzt.

Der Weg vom Client zu Drehspulinstrumenten (Zeigeranzeigen) oder Leuchtmeldern wird durch das folgende Schema verdeutlicht.

bsb_fahrpult_detail.png