Verbindung mit Zusi
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 werden.
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. Zwei entsprechende Chips der auf solche Aufgaben spezialisierten Firma Code Mercenaries sollen hier näher vorgestellt werden:
JoyWarrior24 A8-16 Modul
Diese Variante mit 3 analogen Achsen und 16 Ein-/Aus-Schaltern hat den Vorteil, daß sie bereits inklusive Peripherie komplett auf einem Chip geliefert wird. Lediglich eine Diodenmatrix muß ggf. noch verdrahtet werden (Schaltpläne siehe Hersteller). Nachteil ist die begrenzte Kabellänge von ca. 30 cm, die für etliche Bahnfahrpulte nicht ausreicht. Verwendet man längere Kabel, kann es zu Geisterschaltungen kommen, also zu Signalen von Schaltern, die gar nicht betätigt wurden. Die Widerstandswerte der analogen Eingänge müssen im Bereich 100 kOhm liegen. Das ist so lange kein Problem, wie man die Potentiometer aussuchen kann. Bei manchen Originalschaltern sind allerdings andere Wertebereiche verbaut, die sich nicht ohne weiteres gegen passende Widerstände austauschen lassen.
Dieser Chip mit 4 analogen Achsen und 8 Ein-/Aus-Schaltern ist hinsichtlich der Kabellängen unkritisch und kann bei den analogen Eingängen auch Spannungen (0...5 V) und Potentiometer in sehr großen Widerstandsbereichen verarbeiten. In der Anwendung ist er damit deutlich universeller, wird allerdings nur als Einzelbauteil geliefert, so daß ein eigenes Platinenlayout zu entwickeln ist. Die Schaltpläne sind beim Hersteller zu finden.
Joysticks ausschlachten
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
Bei Eingabe über TCP muß die Auswertung der Schalterbetätigung in einem eigenen Programm erfolgen. Zur Übertragung der Daten an Zusi siehe Dokumentation des TCP-Protokolls.
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.
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.
Leuchtmelder: Diese benötigen eine eigene Energieversorgung. Zur elektrischen Trennung sollten sie per Relais oder Optokoppler angesteuert werden.
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.
Druckluftanzeiger: Für die Bremse werden in der Regel Manometer benutzt, die unmittelbar Druck in eine Zeigerposition umsetzen. Eine elektrische Ansteuerung könnte über Servos funktionieren. Erfahrungswerte liegen noch nicht vor.
Für die Schnittstelle zwischen Client und Hardware wird eine Ausgabehardware im PC benötigt. Dazu stehen verschiedene Möglichkeiten zur Verfügung.
Eine Möglichkeit ist der IO-Warrior der Firma Code Mercenaries. Es gibt mit dem IO-Warrior56 auch eine Variante mit Peripherie einbaufertig auf einer Platine. 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.
|