Modellbau: Mühldorfer Innfähre

Zusammenfassung:

    Hier wird eine Motoransteuerung mit Pulsweitenmodulation beschrieben, die per DCC oder Taster bedient wird. Im diesem Projekt geht es um eine Fähre, die Ansteuerung ist aber im Prinzip auch für eine Schiebebühne oder Drehscheibe anwendbar.

Hintergrund:

    In Mühldorf wird eine der letzten Innfähren betrieben. Diese verkehrt von der Anlegestelle an der B12 bei der Grundschule hinüber nach Starkheim.

Realisierung:

  • Bauplan:
    Erste Schwierigkeit war der Bauplan der Fähre "Joseph II". Weder die Stadtwerke Mühldorf als Betreiber noch die Stadtverwaltung verfügte über einen Bauplan. Erst nach einer Buchbinder-Wanninger-Telefonorgie haben wir den österreichischen Hersteller gefunden, der uns freundlicherweise eine Kopie des Bauplans zusandte.
    Planskizze Innfähre
    Nachdem eine solche Fähre offenbar in Jahrhunderte alter Tradition aus dem Kopf des Zillenbaumeisters ensteht, ist der Bauplan relativ übersichtlich, Länge, Breite, Höhe, das wars.
  • Antriebsmechanik:
    Natürlich soll unsere Fähre sich auch über das Wasser bewegen können, deshalb wurde zuerst ein Antriebsmodul gebaut. Die echte Fähre bewegt sich quer zum Fluß, wobei sie gegen Abtrieb mit einer Seilrolle an einem quer zum Fluß gespannten Seil gehalten wird. Bei Fahren wird das Boot schräg zum fließenden Wasser angestellt und bekommt so den Vortrieb. Erst am Rand wird der Anstellwinkel zurückgenommen.

    Um diese Bewegung nachzuahmen, wird die Modellfähre mit zwei gekoppelten Angelschnüren quer zu Fluß bewegt, wobei je nach Bewegungsrichtung ein Zugseil etwas voreilt, damit die Fähre schräg zur Wasserflußrichtung liegt. Erst kurz vor dem Anlegen soll die Voreilung aufgehoben werden, damit die Fähre gerade am Steg anlegt. Die Voreilung eines Zugseiles wird durch einen Kipphebel erreicht, welche je nach Bewegungsrichtung schräg gestellt wird.

    Als Antrieb habe ich einen Druckkopfantrieb aus einem Tintenspritzer recycled. Das Rahmenblech wurde von allen überflüssigen Nasen und Winkeln befreit bis nur noch die Wagenmechanik übrig war. Diese Mechanik besteht aus Führungsstange, Schlitten mit Bronzebuchsen und Riemenantrieb mit Spannrolle.


    Vom Schlitten habe ich alle Aufnahmen für die Druckköpfe abgefräst und mittig ein Lager (aus einer alten Festplatte) montiert, welches ein Flachaluminium trägt. An diesem werden später die Seilzüge für die Fähre befestigt. Der Schwenkbereich dieses Flachaluminiums entspricht dann der Schrägstellung der Fähre.


    In den Endpositionen läuft das Flachaluminium auf zwei Puffer auf, die für die Gerade-Stellung der Fähre sorgen. Bei der Fahrt der Fähre wird die Auslenkung des Flachaluminium und damit die Schrägstellung durch eine Bremsbürste erreicht.
  • Bewegen und Messen:
    Der Wagen wird mit einem Riemen bewegt, dieser war im Drucker direkt von der Motorachse angetrieben.
    Der Druckermotor wäre natürlich viel zu schnell für die Fähre gewesen, deshalb wurde der Motor durch einen Bühlermotor mit Vorsatzgetriebe ersetzt.
    Bühler Motor
    Dessen Daten (Bühler PA 66/94, Spannung 3...15V = bei ca. 6...30U/min) passen recht gut zur Bewegung: Das Antriebsritzel ist ca 8mm, was bei 30rpm etwa 12,5mm/s ergibt; Das entspricht etwa 3,8km/h im Vorbild.



    Die Position des Wagens wird an vier Stellen mit einer Gabellichtschranke erfaßt. Je eine Lichtschranke ist an den beiden Endpositionen und je eine Lichtschranke am Bremspunkt. Durchfährt der Wagen den Bremspunkt so wird von der Steuerung die Geschwindigkeit langsam bis auf eine Kriechgeschwindigkeit reduziert. Mit dieser wird dann weiter gefahren, bis der Stoppunkt erreicht ist. Die Gabellichtschranken sind auf kleinen Platinen montiert, welche längs einer Nutführung beliebig verschoben werden können. Damit ist eine genaue Justage von Bremspunkten und Endanschlägen möglich.
  • Steuerelektronik:
    Die Bewegung wird mit einem kleinen Prozessor gesteuert, wobei hier die Platine zu OpenDecoder übernommen wurde. Der für die Ansteuerung der Fähre nicht benötigte Ausgangstreiber ULN2803 wird entfernt und statt dessen ein 18-poliges Flachbandkabel mit DIL Steckern zur Fähre einsteckt. In der Schlittenführung ist eine kleine Verteilerplatine (Lochrasteraufbau) eingeschraubt, welche die Signale vom Prozessor auf die verschiedenen Sensoren und den Motor verteilt. (Gabellichtschranke: 1: Emitter, 2: Collector (Markierungspunkt), 3: Kathode, 4: Anode)


    Die Leitungen zum Prozessor sind dann wie folgt belegt:
      PinAderSignal
      1 1 PortB7, in: BRAKE B: Bremsmelder Richtung B
      2 3 PortB6, in: STOP B: Haltmelder Richtung B
      3 5 PortB5, in: BRAKE A: Bremsmelder Richtung A
      4 7 PortB4, in: STOP A: Haltmelder Richtung A
      5 9 PortB3, out: MOTOR DIR: Richtungsumschaltung: 1=Richtung A, 0=Richtung B
      6 11 PortB2, out: MOTOR_PWM: Einschaltpuls des Motors
      7 13 PortB1, in: KEY_GO_B: Tastendruck Richtung B
      8 15 PortB0, in: KEY_GO_A: Tastendruck Richtung A
      9 17 GND: Masse
      10 18 VSS: Versorgung +12V Motor
  • Steuerprogramm:
    Die Steuerung mit Atmel AVR ATtiny2313 basiert auf einem modifizierten OpenDecoder und ist wie dieser in C geschrieben.
    Der Motor wird mit einer PWM-Steuerung mit 19kHz betrieben. Diese wird mit Timer0 des ATtiny erzeugt. Dieser Timer hat 8 Bit, daher kann die PWM 255 verschiedene Spannungen abgeben. Zugleich wird mit dem Overflow des Timers 0 ein Interrupt ausgelöst, welcher das Timing für alle nachgelagerten Softwareroutinen kontrolliert.

    Für den Motor gibt es zwei Grenzgeschwindigkeiten: die maximale Geschwindigkeit (Vmax), welche auf freier "Strecke" verwendet wird, und die minimale Geschwindigkeit (Vmin), mit der an- und abgelegt wird.

    Nach Erhalt eines Fahrbefehles wird die Geschwindigkeit auf Vmin gestellt, und dann mit Hilfe des eines Rampengenerators, welcher den PWM-Schaltzeitpunkt gleitend verändert, langsam auf Vmax gesteigert. Die Zeit für diesen Übergang ist mit RAMP_TIME vorgebbar. Die Fähre fährt dann zum anderen Ufer und durchfährt etwa 8cm vor diesem Ufer eine Lichtschranke. Nun wird die Geschwindigkeit langsam von Vmax auf Vmin heruntergeregelt. Beim Erreichen des Ufers löst die Stoplichtschranke aus und die Fähre bleibt stehen.

    Softwareaufteilung, Module
    Das Hauptprogramm überwacht ob eine neue DCC-Nachricht vorliegt, ob der Decoder reprogrammiert werden soll und ruft die Überwachung der Gabellichtschranken und Taster ("move_control()") auf.

    "move_control()" steuert in Abhängigkeit von Rückmeldungen der Lichtschranken und der gegebenen Fahrbefehle die Fähre; hierzu wird eine Globale variable (move_state) benutzt, welche den aktuellen Bewegungszustand wiederspiegelt. Neue Geschwindigkeiten kann move_conrol einfach durch "set_speed()" einstellen, der Rampengenerator wird dabei automatisch aktiviert. "set_speed()" stellt die neue Sollgeschwindigkeit ein, und die mit der PWM verbundene Interruptroutine nähert die aktuelle PWM Einstellung langsam gemäß der Rampenzeit an die neue Sollgeschwindigkeit an.

    Der DCC-Empfang ist von OpenDecoder übernommen.

    Download Hexfile und Source Code (V0.2): MoveDecoder.zip

Bedienung:

    Das sanfte Ab- und Anlegen der Fähre mit weichen Geschwindigkeitsübergängen kann sowohl über Tasten als auch über DCC bedient werden. Es sind zwei Tasten vorgesehen:
       Taste A: Starten des Übersetzens Richtung A
       Taste B: Starten des Übersetzens Richtung B
    Ein Tastendruck wird nur bei Stillstand der Fähre in einer Endlage akzeptiert.
    Beide Tasten zugleich bedeutet Nothalt.

    Bei der Bedienung über DCC werden die üblichen 4 Weichenadressen belegt, folgende Aktionen können ausgelöst werden:
      Taste Wirkung
      1 Die Fähre ist komplett abgeschaltet, auch kein Betrieb per Tasten möglich.
      2 Die Fähre ist eingeschaltet, Betrieb per Tasten. (Default-Zustand nach Einschalten)
      3 Die Fähre setzt Richtung A über.
      4 Die Fähre setzt Richtung B über.
      5 Die Fähre pendelt alle 100s
      6 reserviert
      7 reserviert
      8 reserviert


    Der Controller ist in der Endgeschwindigkeit programmierbar, hierzu wird bei Programmieren der die lokale Adresse innerhalb der Vierergruppe als Betriebsart aufgefaßt. Einstellbar sind die maximale Geschwindigkeit (Vmax) und die minimale Geschwindigkeit. Der Einstellwert nach folgender Tabelle bezeichnet die Einschaltzeit des Stromes, bezogen auf 255.
      Taste Wirkung
      1 Vmax = 250, Vmin = 60
      2 Vmax = 225, Vmin = 60
      3 Vmax = 200, Vmin = 60
      4 Vmax = 175, Vmin = 60
      5 Vmax = 150, Vmin = 60
      6 Vmax = 200, Vmin = 50
      7 Vmax = 175, Vmin = 50
      8 Vmax = 150, Vmin = 50