21MTC Adapterplatine zur Funktionserweiterung

    • Offizieller Beitrag

    Guten Abend Kollegen,


    zuerst möchte ich mich als Neuer kurz vorstellen. Ich heiße Thomas und bin über eine nette Begegnung mit Andreas B auf den Lahnsteiner Modellbahntagen auf dieses Forum aufmerksam gemacht worden. Beim Stöbern haben mir die Themen und der sachliche Umgang miteinander sehr gefallen. Ich freue mich das mich Rainer so schnell aufgenommen hat. Ich hoffe ich kann hier etwas von dem Zurückgeben was mir andere Kollegen haben zukommen lassen. Etwas mehr zu meiner Person habe ich auf der "Über Mich" Seite hinterlassen.


    Jetzt aber zur Vorstellung meines aktuellen Projektes,


    entstanden ist das Ganze im Zusammenhang mit dem Umbau, bzw. der Restaurierung eines alten Schätzchens von Märklin. Eine BR103 Artikelnummer 3054. Das Modell habe ich auf einer Tauschbörse für 30€ in einem ziemlich desolaten Zustand gekauft. Nach der vollständigen Entlackung und Neulackierung ging es an den Aufbau. Das gute Stück sollte auf jeden Fall zwei Führerstände, eine vollständige Beleuchtung (rot/weiß, Führerstand, Maschinenraum) erhalten und zwei funktionsfähige Pantographen. Das Alles natürlich besser als es von Märklin jemals gebaut wurde. :) Über die Lackierarbeiten gibt es leider keine Fotostrecke. Ich habe aber im Zuge der Aufbringung der Decals eine Methode mit Valejo Produkten ausprobiert und das als Tutorial zusammengefasst. Wen es interessiert der schaue bitte auf der Seite von Andreas Nothaft unter diesem Link hier. Den Umbau mit den Pantographen zeige ich in einem neuen Thread.


    Ich bin zwar Dreileiterfahrer (hoffentlich gelte ich jetzt nicht als Aussätzig) jedoch spricht und hört alles incl. Zentrale auf DCC. Somit setze ich in allen meinen Loks normalerweise 21MTC ESU-Decoder mit der Adapterplatine 2 ein. Bei Dampf und Diesel ist das auch völlig ausreichend um genügend Schaltausgänge zu haben. Allerdings haben die auch keine Pantographen und brauchen keine Servos. Zuerst wollte ich die neue Adapterplatine von ESU einsetzen, jedoch kann man da die Servos nur zwischen zwei Zuständen hin und herfahren lassen. Mir schwebt aber eine Massensimulation vor, die den Panto realitätsnah wippen lässt. Eine blaue Microled unter den Pantos die blau blitzt......... Außerdem ist mir das Ding einfach zu teuer.


    Die Grundüberlegung war also: 6 verstärkte Schaltausgänge, davon 4 mit mindestens 1,5A Laststrom, falls da mal ein Entkuppler dran muß, vorzusehen. Außerdem zwei Servoausgänge für Panto's oder sonstige Bewegungsabläufe. Jetzt zur Ansteuerung der Ausgänge. Der 21er von ESU verfügt über die Möglichkeit die beiden Ausgänge Aux5 und Aux6 als SUSI-Schnittstelle zu konfigurieren. Somit werden alle relevanten Daten über Funktionstastenstatus, Geschwindigkeit und Richtung übertragen. Ein Microcontroller muß also als SUSI-Decoder und Motioncontroller für die Servos auch noch her. Zum Schluß sollte auch noch der Lautsprecher und ein entsprechender Stützkondensator, bzw. Batteriepack (GoldCap) auf der Platine Platz haben. Das Alles sollte so klein wie möglich gehalten sein, das darüber viel Platz für den Einbau von Servos zur Verfügung steht und in so viele wie mögliche Modelle passt. :verrueckt: Und weil das noch nicht genug ist, dachte ich mir, ein Anschluß an den PC wäre nicht schlecht um menügeführt z.B. die Bewegungssequenz der einzelnen Servos zu programmieren und die Funktionsausgänge zuzuordnen.



    Herausgekommen ist das hier.


    Vorderseite der Platine


    Und die Rückseite


    Bei meiner 103 musste ich die Platine im Rahmen versenken um oben drüber genügend Platz für die Servos zu haben.

    Man verzeihe mir die "abgenagten" Vertiefungen in der Tasche, die habe ich nachträglich mit der Hand da rein gefräst, da ich nicht bedacht habe, dass die Spannungsversorgung für den Controller ja dicker aufträgt.


    Danach wurde das Lokgehäuse neu lackiert und die Platine eingebaut.


    Der Jumper links im Bild dient dazu den Kondensator während der Programmierung des ESU-Decoders, wie von ESU empfohlen, abzuschalten.
    Alle Verbindungen zum Stromabnehmer Motor, Lampen usw. sind, wie zu sehen, mit Ministeckverbindern ausgerüstet. Das sieht nachher sehr schön aufgeräumt aus und das Gehäuse läßt sich leicht entfernen, so das mal nötig ist.



    Wie ich oben schon erwähnte werde ich auf die Servomechanik im Dach der Lok noch näher eingehen. Anbei aber schon mal für die Interessierten die Fotos.


    Hier zu sehen der Bowdenzug bestehend aus einer frisierten 0,3mm Injektionsnadel aus der Apotheke und einem 0,1mm Poliamidfaden aus dem Nähgeschäft nebenan. An den Servos habe ich den Faden mit einer umgebogenen Nähnadel eingehängt. In der Öse läßt sich der Faden super fest knoten

    Der Panto bekommt ein 0,2mm Loch am unteren Bügel spendiert durch den der Faden gesteckt und mit einem doppelten Knoten fixiert wird. Die Position der Anlenkung habe ich so gewählt, das 4mm Weg ausreichen den Panto aus- bzw. einzufahren. Da die Servos nur 80 Gramm ziehen habe ich noch einen Hebel mit 1:2 Untersetzung eingebaut. Als Servos sind Linearservos von Hobbyking mit 10mm Weg eingebaut. Somit kann ich fast den ganzen Weg des Servos ausnutzen. Die hohe Stellgeschwindigkeit der Servos läßt das vorbildgerecht aussehen.
    Hier noch schnell ein Bild der Servoplatine im Dach der Lok.

    Im Moment bin ich an der Software für den Microcontroller. Hier noch ein paar Infos für die Spezialisten: Zum Einsatz kommt ein Microchip PIC16F628. Ich habe lange überlegt ob ich einen größeren Typen einsetze und muß mir eingestehen, dass bei den nächsten Platinen ein PIC18F... zum Einsatz kommt. Die Servoansteuerung und die SUSI-Decodierung sind Interruptgesteuert. Der kleine Typ verfügt aber nur über einen Interruptvektor, was das Gesamttiming beim Auswerten der Interrupts stark beeinflusst. Rein theoretisch könnte ich 10 Servos an dem Controller betreiben, jedoch bekomme ich mit Ach und Krach die 20ms Widerholrate bei 2 Servos hin. Bei drei Servos sind es schon 30ms. Meine Servos machen das komischerweise anstandslos mit, aber bei 40ms ist dann wohl Schluß. Zu lösen wäre dies sicherlich mit eimem externen Quarz und 20MHz Takt, jedoch hätte ich dann E/A's zu wenig gehabt.



    Nun ja, wenn Interesse besteht, dann liefere ich noch die Schaltpläne zu dem Projekt. Controller dazu selbstredend.


    So, ich hoffe es gefällt Euch und mein Einstand ist gelungen.



    Bis dahin mit freundlichen Modellbahnergrüßen
    Thomas

    "Wer sich nicht an die Vergangenheit erinnern kann, ist dazu verdammt, sie zu wiederholen." Jorge Augustín Nicolás Ruiz de Santayana

    Einmal editiert, zuletzt von Thomas S () aus folgendem Grund: Bilder neu eingerichtet

    • Offizieller Beitrag

    Hallo Thomas,


    vielen Dank für den interessanten Einstand.


    Gestatte mir einen Hinweis zur Handhabung der Bilder bei abload.de und zur Verlinkung im Forum:
    Bereits beim hochladen der Bilder die Verkleinerung auswählen: "Verkleinern" und die Größe in "Passend für 1024*780" oder "800*600".
    Wenn die Bilder alle hochgeladen sind die Verlinkung auswählen: "Meine Bilder | Aktionen | Links & Codes" und hier dann unbedingt den "Direktlink für Foren" nehmen, kopieren und in Deinen Beitrag einfügen. Dann wird Dein Bild direkt im Beitrag angezeigt.


    Gruß Rainer :thumbup:

  • Hallo Thomas
    Ich glaube man kann den Umbau als sehr gelungenen Einstand hier im Forum betrachten :thumbup:
    Herzlich Willkommen!


    Offensichtlich hast Du SMD Löterei, PCB Entwicklung und Embedded Software Entwicklung in Deinem Portfolio. Da wirst Du sicher viel Input geben können. (Ich habe da auch schon ein paar Fragen - das hat aber Zeit).


    Eine Bitte habe ich - könntest Du die Bilder nicht so als Briefmarke einfügen sondern direkt als Link? Wenn ich auf das Bild klicke, geht Abload auf und Dein Bild wird mit Werbung zugedeckt. Ich finde es angenehmer, wenn die Bilder im Text sind... wobei das keine Kritik an dem Beitrag hier ist.


    LG,
    Axel

    • Offizieller Beitrag

    Hallo Kollegen.


    Heute habe ich ein kleines Update zur 21MTC Adapterplatine. Gestern ist die Controllersoftware soweit fertig geworden. Ich ärgere mich im Nachhinein etwas den kleinen PIC genommen zu haben. Es läßt sich zwar die gesamte Funktionalität abbilden, jedoch ist es in dem Ding verdammt eng georden was den Code angeht. Außerdem war das Timing für die Servos und die Bewegungskurve eine große Herausforderung, weil der 16F628 über nur einen Interruptvektor verfügt. Das hat zur Folge, dass innerhalb der Interruptroutine erst einmal nachgesehen werden muss wer die Quelle des Interrupts ist. Lange Rede wenig Sinn, ich habe die Routinen für das Servohandling in Assembler geschrieben. Assembler ist eine Methode, Programme die zu langsam laufen, so zu beschleunigen, dass sie gar nicht mehr laufen. Dieser alte Programmiererweisheit hat sich mal wieder voll bestätigt. Nichts desto Trotz es geht und das sogar einigermaßen Soundsynchron.


    Die Führerstands- und Maschinenraumbeleuchtung werden ebenfalls über die Adapterplatine gesteuert. Die Signale kommen also von SUSI-Bus des Decoders und werden auf der Adapterplatine verarbeitet. Anbei mal ein erstes Video der Softwareversion 1.0. Die Geschwindigkeit und die Bewegung der Pantos läßt sich über eine Kurve einstellen, so das auch das Nachwippen dargestellt werden kann. Ist aber noch nicht drin, da ich die Sequenz im EEProm des PIC ablege. Das nächste was kommt ist ein kleiner Editor auf dem PC mit dem ich die Kurve einstellen und mittels seriellem Kabel auf den PIC übertragen kann.


    Hier in bewegten Bildern und in Farbe. Man verzeihe mir das gewackel, aber ich habe noch kein Stativ und die Kamera wiegt ein bisschen was.......

    Externer Inhalt
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.



    Hier noch ein Bild der Servomechanik. Besonders die mechanische 2:1 Untersetzung. Auf dem Bild auch zu erkennen die LED's der Maschinenraumbeleuchtung.


    Wer Fragen zum Programm, Elektronik, PIC usw. hat, der fühle sich bitte frei sich zu melden.


    Bis dahin viel Spaß mit dem Beitrag.


    Mit freundlichen Modellbahnergrüßen


    Thomas

    • Offizieller Beitrag

    Hallo Modellbahner,


    die Kinderkrankheiten sind aus dem Adapter entfernt und das kleine Ding arbeitet hervorragend. Blieb eine kleine Sache; Wie die Servokurve und die Verzögerungszeiten ohne Programmierkenntnisse und Entwicklungsumgebung in den Adapter bekommen? Die erste Überlegung das über CV-Variablen zu lösen wäre zwar mit dem kleinen PIC gegangen, aber die Bedienung wäre sehr kryptisch und fehleranfällig gewesen. Also musste ein Adapterprogrammer auf Windows-Basis her, mit dem man einfach seine Kurve gestalten, ansehen und in den Adapter laden oder auslesen kann. Außerdem sollten die Parameterdateien für die unterschiedlichsten Loks in einer Datei abgelegt und bei Bedarf geladen werden können.


    Herausgekommen ist der "21MTC Adapter-Programmer" den ich jetzt kurz vorstellen will.


    Vorweg ist noch zu sagen, dass die Verbindung zwischen dem 21MTC-Adapter und dem PC mit einem kleinen "USB zu TTL Konverter" bewerkstelligt wird. So etwas gibt es bei Denen, die ursprünglich mal Bücher verkauft haben, für ca. 8 Euro.
    serieller_adapterigrwy.jpg
    So sieht der aus. (Das rote Ding in der Mitte. Die Kabel rechts sind von mir.)


    Jetzt aber zum Adapterprogrammer. Die Applikation kommt mit einem Fenster aus und die meisten Funktionen sind selbsterklärend.
    programmer_grundbildsn0oov.jpg


    Oben rechts werden die Kommunikationsparameter zum Adapter eingestellt. Baudrate und Timeout sind schon richtig eingestellt, lediglich der COM-Port muß noch ausgewählt werden. Bei den Meisten wird da zuerst einmal "No Port" stehen, da die meisten PC's heutzutage über keine serielle Schnittstelle mehr verfügen. Wird aber der USB zu TTL Adapter via USB mit dem PC verbunden erscheint nach kurzer Zeit ein verfügbarer COM-Port in der Liste. Also zuerst den USB zu TTL Adapter installieren und dann den Adapterprogrammer starten.


    Wenn der Port ausgewählt worden ist und der USB zu TTL Konverter mit dem 21MTC-Adapter verbunden wurde kann man über den "Verbinden"-Button die Kommunikation starten. Die dicke rote LED wird grün und dann kann man das Adapter EEProm laden oder schreiben.


    Über die "Panto Sequenz Parameter" kann man die 20 möglichen Kurvenparameter, jeweils für die Aufwärts- und die Abwärtsbewegung, eingeben. Ebenso die Verzögerungszeit in Millisekunden, die der Adapter einlegt, um den nächsten Parameter aus der Liste an den Servo zu übertragen.


    Noch ein paar Erläuterungen zu den Servoparametern. Mögliche Tabelleneinträge sind Werte zwischen 500 und 2500. Was bedeuten nun diese Werte und wie kann man damit umgehen:
    Bei den Werten handelt es sich um Millisekunden die die Länge eines Stellimpulses an das Servo repräsentieren. Das heißt ein Standardservo von der Stange kann normalerweise Werte zwischen 1000 und 2000 Millisekunden (ms). Damit fährt das Servo einen Winkel von 60Grad ab. 1000ms voll links, 1500ms Mittelstellung und 2000ms voll rechts. Das ist der Industriestandard der mal so festgelegt wurde. Mittlerweile sind aber jede Menge (fast alle) Servos auf dem Markt, die mehr als diese 60 Grad darstellen können. Die von mir verwendeten Linearservos können z.B. von 500ms bis 2100ms fahren, meine Futaba Servos sogar 500ms bis 2500ms. Dabei überdecken Sie einen Winkel von 180Grad. Um dieser Besonderheit Rechnung zu tragen habe ich Werte von 500 bis 2500ms als Eingabe zugelassen. Damit sollte der 21MTC-Adapter flexibel genug sein um mit den verschiedensten Servos umgehen zu können.
    Wie man sehen kann gibt es jeweils nur eine Kurve für die Aufwärtsbewegung und eine Kurve für Abwärts die für beide Servos gilt. Jedoch für beide Servos eine unterschiedliche Verzögerung. Der Grund dafür ist der, dass die Kurven für Auf und Ab wohl für beide Pantos immer gleich ist, da der mechanische Aufbau, also die Kinematik, ebenfalls baugleich ist. Jedoch laufen die Servos trotz Baugleichheit nicht immer gleich schnell. Durch die unterschiedliche Verzögerung läßt sich dieser Unterschied kompensieren.


    Der Graph der Kurve wird unterhalb der Parameterliste live nach jeder Eingabe dargestellt, so dass man sehen kann, wie der Panto sich bewegen wird. Im nächsten Bild könnt Ihr den Parametersatz meiner BR103 sehen. Die grüne Kurve zeigt hier auch das Wippen des Pantos, wenn er an die Fahrleitung schlägt. Die rote Kurve ist für die Abwärtsbewegung. Die kleine Nase rechts an der roten Kurve läßt den Panto schneller in die untere Lage kommen und dient bei mir der Soundsynchronisation.


    programmer_kurvegwqcb.jpg


    Die Kurven können zu jeder Zeit als Datei gesichert und geladen werden. (Button "Parameterdatei" links oben) Das Programm läuft auf Windows ab XP SP3 bis Win10. Es ist als 32Bit-Version erstellt, so das auch ältere (sehr viel ältere....) PC's damit klar kommen. (Läuft natürlich auch auf jeder 64Bit-Maschine, heutiger Standard)


    Wer sich die Software mal anschauen möchte, der kann die Datei unter folgendem Link herunterladen:
    21MTC-Adapter
    Das Programm einfach in einen beliebigen Ordner entpacken und "Setup" ausführen. Nach der Installation liegt eine Verknüpfung auf dem Desktop. (21MTC-Adapter Programmer) Wie weiter oben schon einmal angeboten. Wer Interesse an dem Adapter hat der möge sich bitte bei mir melden


    So jetzt wünsche ich Euch viel Spaß mit dem Artikel und freue mich auf Anregung und Kritik. In der Zwischenzeit fange ich an meinen E-Loks Servos zu verpassen. ^^


    Mit freundlichen Modellbahnergrüßen
    Thomas