Digitale Eisenbahnsteuerung Selbstgemacht

Die Station hat zwei Eisenbahnplatten (Größe TT) und daher liegt die Idee nahe, diese mit Sensoren und Computersteuerung auszustatten. Sigmar Geier leitet zur Zeit die Modelleisenbahn-AG, so dass eine optimale Zusammenarbeit möglich ist.

1) Sensorik

Zuerst müssen wir rausfinden, wo die Züge denn gerade sind. Ohne dieser Grundlage wird es schwer möglich sein, Weichen passend zu stellen oder Fahrpläne einzuhalten. Es gibt mindestens zwei einfache Wege, um Züge auf der Schiene zu finden. Die originale TT-Version hat Schienensegmente mit einem Kontakt, der durch die Metallräder der Lock geschlossen wird. Ein anderer Weg sind Magnetkontakte unter den Schienen mit einem kleinen Magneten an der Lock.

Kontakte überwachen und Zugmeldungen sammeln

Vorschlag 1: Wir nehmen Schieberegister (Parallel-In-Seriell-Out mit SPI-Anschluss) und ketten diese aneinander. Die Schieberegister sind mit einem AVR Mikroprozessor verbunden, der regelmäßig den Zustand der Kontakte ausliest. Pro Schieberegister kann man so 8 Kontakten überwachen. Damit dies funktioniert muss der das Verhältnis zwischen Abtastrate und der Verschlusszeit der Kontakte stimmen. Zu schnelle Züge werden wir übersehen wenn der Mikroprozessor die Schieberegister nicht schnell und häufig genug auslesen kann.

Vorschlag 2: Statt Schieberegistern verwenden wir mehrere kleine Prozessoren. Die Kontakte werden direkt mit IO-Pins der Prozessoren verbunden, so dass ein Prozessor 5 :?: oder mehr Kontakte überwachen kann. Einige AVRs erlauben es, dass automatisch ein Interrupt ausgelöst wird, sobald ich der Zustand an einem IO-Pin ändert. So können die Prozessoren schlafen bis ein Zug einen Kontakt kurzzeitig schließt. Eine Herausforderung bei diesem Ansatz ist, dass wir die Zugmeldungen von mehreren Prozessoren an einen Haupt-Prozessor schicken müssen. Hier könnte der I2C-Bus helfen: Alle Helfer-Prozessoren sind I2C-Master und der Haupt-Prozessor ist I2C-Slave. In dieser Kombination können die Helfer dem Haupt-Prozessor eine kleine Nachricht schicken, wenn immer ein Zug über einen seiner Kontakte gefahren ist.

Vorschlag 3: PCF 8574 AP :: Philips I²C-Bus Microcontroller & Peripherie DIL ist eine 8Bit IO Porterweiterung die über I2C gelesen und beschrieben werden kann. Der Clou ist, dass der Chip auch ein Interrupt-Signal produziert, wenn sich ein Port verändert hat.

Vorschlag 4: Stromüberwachung. Auf den Schienen kann nur ein Strom fließen, wenn Spannung angelegt ist und eine darauf steht äh fährt. Daher lässt sich durch eine Stromüberwachung der Gleissegmente erkennen wo eine Lock fährt. Hier kann sogar ein recht großer Shunt-Widerstand genutzt werden, da die Ströme wahrscheinlich nicht so groß sind. Können wir ja mal an einer Platte ausmessen. Der Aufbau wäre dann ähnlich wie bei dem L200-Strombegrenzer: Ein Shunt-Widerstand in Reihe zu dem +Gleis, den Spannungsabfall darüber mit einem OpAmp verstärken. vielleicht kann man das gleich an einen Opto-Koppler machen, der einen Logiksignal liefert High solange der Spannungsabfall groß genug ist um den Opto-Koppler zu aktivieren, dh. ein gewisser Mindeststrom fließt. Im Netz gibt es Beispiele die Optokoppler und Dioden statt Widerstand verwenden. Der Trick mit den Dioden ist, dass der Spannungsabfall über diese ein fester Wert ist statt wie bei Shunt-Widerständen mit dem Strom zu steigen. Die Dioden sind so auf den Optokoppler abgestimmt, dass die von ihm benötigte Spannung anliegt. Siehe z.B. http://www.hpw-modellbahn.de/eisenbahntechnik/dioden.htm

Statt Reed-Kontakten können Hall-Sensoren verwendet werden. Diese sind deutlich kleiner, und empfindlicher, daher leichter einbaubar. Zum Beispiel „TLE 4935L :: Hallsensor, 3,8-24V“ 0,63€ oder „TLE 4905L :: Hallsensor, 3,8-24V“ 0,60€. Beide liefern am Ausgang ein Logiksignal das High ist solange das Magnetfeld am Sensor stark genug ist. Siehe auch http://epoche3modellbahn.de/modellbahn_Hall_Sensoren_14.html ⇒ unipolare Hall-Sensoren.

Für Modellbahnen gibt es den S88 Standard für Gleisbesetzt-Rückmeldungen. Mit dem Stichwort findet man einige Schaltungen, z.B. http://pgahtow.de/wiki/index.php?title=Lok_Rückmeldung#S88N-G8_.28v2.0.29, http://www.modellbahnfreaks.de/s88/s88main.php. Sehr gute Einführung ist tams elektronik: Rückmeldung mit s88: genial einfach, sicher und flexibel ⇒ sieht aus wie periodisch schnell ausgelesene Schieberegister. Scheint also mit Schieberegistern problemlos machbar zu sein.

Zugmeldungen mit Streckenplan kombinieren

Der Haupt-Prozessor braucht einen Plan, wie die Kontakte zum Streckennetz passen. Wir unterteilen die Strecken in Abschnitte (wie bei der richtigen Eisenbahn) und Zugmeldungen von den Kontakten geben uns Auskunft welcher Abschnitt gerade betreten bzw. verlassen wurde. Wahrscheinlich müssen wir das mit der Fahrtrichtung der Züge kombinieren oder die Richtung aus den vergangenen Meldungen erraten.

Daraus können wir eine Anzeigetafel der gerade belegten Abschnitte bauen. Die Tafel stellt Abschnitte mit einer LED dar, die solange leuchtet, wie der Abschnitt belegt ist. Der Haupt-Prozessor schaltet diese LEDs über Schieberegister (Seriell-In-Parallel-Out mit SPI-Anschluss). Wenn wir Low-Power LEDs verwenden können wir diese wahrscheinlich direkt an die Ausgänge der Schieberegister anschließen.

2) Das DB-Spiel

Sobald wir die Sensoren eingebaut haben, können wir diese auch zur Überwachung von Verspätungen gegenüber dem „Fahrplan“ benutzen. Das endet in folgendem sehr realistischen Spiel: Der Spieler muss einen Zug und die Weichen steuern und dabei weder zu schnell noch zu langsam fahren. Strafpunkte gibt es für Verspätungen und Überschreitungen der zugelassenen Höchstgeschwindigkeiten :)

3) Automatisches Stellwerk

FIXME