Die Engstelle der Strecke der 712 … pardon, ab 21.02.2016 heißt es ja U72 … am Bahndamm der S-Bahn, unmittelbar an der Stadtgrenze von Ratingen, ist im Original signalgesteuert. Diese Signalsteuerung wollte ich auch für mein Modell übernehmen:
Standardmäßig sind die Signale auf F0 (bei mir im Modell rot).
Nähert sich der Zug, so springt das Signal auf F1 (im Modell grün) um:
Nach Durchfahrt zeigen wieder beide Signale F0 (rot).
Dies möchte ich auch beim Modell umsetzen. Der erste Zug, der sich der Engstelle nähert, aktiviert seine Strecke und bekommt grün, um die Engstelle durchfahren zu können und danach das Signal wieder auf rot zu stellen.
Nährt sich ein zweiter Zug der Engstelle, so soll dies registriert werden und nach Durchfahrt des ersten erhält dieser dann grün, um weiterfahren zu können.
Die Umsetzung dieser Logik möchte ich mit Hilfe eines Microcontrollers umsetzen, da es mir sonst aufgrund der Speicherung des zweiten Impulses zu aufwendig erscheint. Da ein Arduino viel zu aufwendig und teuer ist, habe ich auf die kleine Ausführung, den ATtiny85 zurückgegriffen.
Mit dem Schaltungssimulator https://123d.circuits.io habe ich sowohl das Programm, als auch die Schaltung dazu entworfen:
Mit Hilfe eines Arduino Uno, der als Programmer programmiert ist, wurde der ATtiny85 programmiert.
Hier ergab sich die Schwierigkeit, dass bei diesem die Fuses umprogrammiert werden mussten, um alle 6 I/O Ports nutzen zu können. Hier ist große Sorgfalt nötig, denn wenn man sich vertan hat, muss der ATtiny mittels High Voltage Programming (siehe Link) zurückgesetzt werden. Auch ist es wichtig, dass die korrekte Baudrate bei der Programmierung angegeben wird, da es sonst nicht funktioniert:
avrdude -P /dev/cu.usbmodemFD121 -p attiny85 -c stk500v1 -b 19200 -v
Mit folgender Befehlzeile wird der Reset-Pin als I/O Port umgeschaltet. Danach muss der ATtiny mit der High Voltage Programming zurückgesetzt werden, bevor er erneut programmiert werden kann:
avrdude -P /dev/cu.usbmodemFD121 -p attiny85 -c stk500v1 -b 19200 -U hfuse:w:0x5f:m -v
(/dev/cu.usbmodemFD121 ist das USB Device an meinem Mac)
Für die Programmierung waren u.a. die folgenden Links sehr hilfsreich:
- http://popovic.info/html/arduino/arduinoUno_1.html (allgemein Arduino Programmierung)
- http://www.simsso.de/?type=arduino/attiny85 (allgemein ATtiny85)
- http://www.frag-duino.de/index.php/maker-faq/37-atmel-attiny-85-mit-arduino-arduinoisp-flashen-und-programmieren (Arduino als Programmer einrichten)
- https://arduinodiy.wordpress.com/2015/05/16/high-voltage-programmingunbricking-for-attiny/ (um den ATtiny85 wieder in den Ursprungszustand zurück versetzen zu können)
- https://dntruong.wordpress.com/2015/07/08/setting-and-reading-attiny85-fuses/ (Setzen und Lesen der Fuses)
- http://www.engbedded.com/fusecalc (Berechnung der Fuses)
- http://heliosoph.mit-links.info/arduinoisp-reading-writing-fuses-atmega328p/ (Programmieren der Fuses)
So ergab sich dann folgender Testaufbau:
Auf der Anlage wurden nun die ersten Signale gesetzt. Es handelt sich hierbei um Blocksignale von Busch in Baugröße N, da diese besser zur Stadtbahn passen, als Signale in Baugröße H0.
Wird fortgesetzt mit der Zugerkennung.
[…] Steuerung der Signalanlage […]
[…] Steuerung der Signalanlage […]