Artikel aktualisiert am 27.10.2022
Nachdem ich mit DCC LED Steuerungen mit der von Modelleisenbahnern entwickelten MobaLEDLib so viele positive Erfahrungen gemacht hatte, habe ich mich diesmal an die nächste Stufe gewagt – DCC Servobausteine. Um es vorwegzunehmen:
Mittels der Elektronikbausteine der MobaLEDLIB ist es möglich extrem günstig und sehr effektiv Servos mittels des DCC1andere Protokolle werden auch unterstützt – die habe ich aber nicht getestet. Protokolls zu steuern.
Der Weg dahin ist allerdings etwas steiniger als nur LEDs anzusteuern. Vielleicht kann ich euch trotzdem die Angst nehmen – ich habe nämlich keinen blassen Dunst von Elektronik. Aber außer Löten und ein wenig Basiswissen (z.B. wo bei LEDs Plus und Minuspol ist oder das man Kondensatoren immer richtig gepolt einbauen muss), braucht ihr keine Elektronikkennnisse!
Was sind DCC Servodecoder?
Mit Servos kann man auf der Moba richtig viel anstellen – siehe dazu auch meinen Bericht im Technikkapitel. Dort hatte ich auch eine Liste zusammengestellt, was denn nun ein Decoder – also das Modul mit dem die Servos mittels DCC Kommandos angesteuert werden – leisten sollte:
- Der Antrieb muss einfach programmierbar sein ohne mühsam unter die Anlage zu klettern und erst ein Programmiergleis anzuschliessen.
- Die Ausfallwahrscheinlichkeit sollte so gering wie möglich sein.
- Die Verbindungsleitungen sollten gegen Störungen abgesichert sein
- Der Antrieb muss günstig sein da er auch in grossen Mengen eingesetzt werden soll.
- Der Decoder sollte für die Servos eine eigenständige Stromversorgung bereitstellen, ohne dass dafür teuerer Digitalstrom verwendet wird.
- Weichenherzpolarisierung muss als Option zwingend vorhanden sein.
Mit einer einzelnen Platine kann man mittels DCC Kommandos insgesamt 3 Servos ansteuern. In Nächternhausen wollte ich diese zunächst für die Tore meines Ringlokschuppens verwenden.
Die Bausteine – eigentlich müsste ich eher sagen die Servoplatinen – werden an die MobaLEDLib Hauptplatine genauso angeschlossen wie auch eine RGB LED, also mittels eines einfachen Pfostensteckers. Beim Einsatz als Weichenantrieb ist zu beachten, das die Servoplatinen keine Herzstückpolarisierung besitzen. Zur Polarisierung kann man eine Relaisplatine verwenden2das wird aber wohl wieder ein eigenständiges Projekt werden – aktuell verwende ich die MobaLEDLib nur für die Servos und LEDs.
Aller Anfang ist schwer
Ich gehe mal davon aus, das ihr bereits die MobaLEDLib für die Lichtsteuerung verwendet – ansonsten schaut einfach auch mal in meinen Blogbeitrag „MobaLEDLib – Erfahrungen eines Nicht-Elektronikers„.
Als erstes benötigt ihr natürlich die Bauteile – und da hatte ich schon meine ersten Probleme, weil manche Teile nicht lieferbar waren. Aber eigentlich war das kein Problem. Doch der Reihe nach:
Komponenten
Die Ansteuerung der Servoplatine erfolgt über die Hauptplatine. Normalerweise wird diese kaum direkt dort angeschlossen werden, sondern über eine Verteilerplatine. Und dann braucht ihr natürlich noch einen oder mehrere handelsübliche Servos.
Die Servoplatine hat einen eigenen Mikroprozessor – einen Attiny. Um diesen zu Programmieren benötigt ihr einmalig eine Programmierplatine und einen Arduino Uno – wobei letztere beiden Komponenten nicht unbedingt erforderlich sind (s.u.).
Zusammenbau und Bestellung
Der Zusammenbau ist wie immer gut auf im MobaLEDLib Wiki beschrieben. Allerdings hätte ich vielleicht besser erst alles bis zum Schluss durchlesen sollen:
Die Erweiterung der Hauptplatine um zusätzliche LED und Taster ist nicht erforderlich.
Tatsächlich dient diese Erweiterung nur dazu, wenn man die Servos später ohne Programmunterstützung einstellen will. Das wird aber nur in den seltensten Fällen der Fall sein. Die Servos sind ja – genauso wie die Hauptplatine – nachher irgendwo unter der Anlage verbaut – wer will da von der Hauptplatine unter der Anlage die Servos über der Anlage einstellen?
Tatsächlich gibt es natürlich Anwendungsfälle, wo man auf dem Schreibtisch alles zusammenbaut – aber dann hat man in der Regel auch einen PC vor Ort.
Im Grunde benötigt ihr nur die Servoplatine 510 , allerdings: auf der Servoplatine ist ein kleiner Mikroprozessor – ein s.g. ATTINY. Und den kann man nur über eine Programmierplatine programmieren. 3Wenn ihr genau wisst, das ihr nur eine bestimmte, kleine Anzahl an Servos benötigt dann könnt ihr auch einen anderen Anwender fragen, ob er euch den ATTINY programmiert.
Einmalig braucht ihr also noch eine Programmierplatine in der Bauvariante 1 4die Variante 2 ist nur erforderlich wenn ihr tief in die Elektronik einsteigen wollt und eigene Attiny Steuerungen prorammieren wollt – den Attiny-Programmer 400. Diese Platine funktioniert allerdings nicht von alleine – sondern benötigt einen Arduino UNO R3 5(ein Arduino Uno DIP2 komaptibles R3 Board in der DIP Variante mit ATmega328 und USB) – den man günstig in China oder für ca. 13-15€ auch bei Reichelt erhält
Bestellung
Im folgenden setze ich voraus, das ihr bereits die Hauptplatine im Einsatz habt und vielleicht auch schon eine Verteilerplatine.
Die Bestellkomponenten für die Servoplatine und die Programmierplatine sind auf dem MobaLedLib Wiki detailliert beschrieben – schaut dort unter 510 – Servomodul nach, sowie unter 400 Attiny Programmer. Dabei bitte folgendes bei der Bestellung beachten:
- Servoplatine: Es gibt bei der Servoplatine alternativ für den WS2811 die SOP Bauform6U3 in der Bestellliste. Verwendet aber stattdessen die DIP Bauform7U2 in der Bestellliste, welche leider nur schwierig zu bekommen ist. Deshalb könnt ihr diese WS2811 in DIP bei Alfred zusammen mit den Platinen bestellen!
- Servoplatine: Stiftleiste SV3 und SV4 benötigst du nur wenn du vor Ort mehr als 3 Servos schalten willst. Dann kann man die Servoplatinen miteinander verbinden. Das würde ich aber nicht empfehlen, sondern generell eher einen Verteiler oder Miniverteiler verwenden. Der Vorteil ist, das ihr damit wesentlich flexibler seid, da ihr jede Servoplatine einheitlich bauen könnt und flexibel verkabeln könnt.
- Attiny Programmer: Ich hatte echt Probleme bei Reichelt die LED zu bekommen die auf dem Programmer sind. Tatsächlich habe ich diese einfach weggelassen – für die Programmierung selbst sind diese nicht wirklich erforderlich – wartet halt beim Programmieren bis ihr sicher seid, das es abgeschlossen ist.
- Erweiterung für die Hauptplatine: Unter diesem Link steht, das man die Hauptplatine zur Einstellung der Servos verwenden kann. Betonung liegt aber auf „kann“ – es ist nicht wirklich erforderlich. Hätte ich mal vorher genau lesen sollen. Braucht man also nicht wirklich.
- Arduino Uno: Den muss man einfach nur fertig bestellen (siehe Hinweis weiter oben)
Bau des Programmers
Das funktioniert genau so wie in der Beschreibung dargestellt. Hier nochmal die Abfolge:
- Attiny Programmerplatine zusammenlöten
- Arduino Software um den Uno und Attiny erweitern
- Programmierplatine auf den Uno stecken
- Attiny auf die Programmierplatine stecken
- Attiny programmieren
- Attiny von der Programmierplatine auf die Servoplatine umstecken
- Servo programmieren (siehe unten)
Einwandfrei beschrieben wie das funktioniert hat Moba Jo in diesem Video – danach war es selbst für mich ein leichtes den Attiny zu programmieren:
Bau der Servoplatine
Auch das ist einwandfrei beschrieben – was mir nicht so ganz klar war: Solange man die Servoplatinen nicht direkt untereinander sondern über Verteilerplatinen anschliesst, muss man zwingend jede Servoplatine terminieren indem man die Lötbrücke TERM verbindet!
Servo programmieren
Vorbereitung
Das obige Video zeigt wie es funktioniert. Bevor ihr mit der Programmierung anfangt, solltet ihr die Bibliotheken allerdings auf den aktuellen Stand bringen – bei mir war das Version 3.0.0 (die Version steht in der Excel rechts oben).
Der Update funktioniert so, das ihr den Programmgenerator startet – dann auf Optionen gehen und auf Update. Dort „Installiere Betatest“ – das war für mich etwas verwirrend weil da Betatest steht – tatsächlich wird aber die wirklich neueste Version installiert (dazu musste ich dann auch erst mal im Forum nachfragen wie das funktioniert).
Beim Anschließen der Servos ist folgende Nomenklatur zu beachten:
Servo 1 | Innen – in der Excel hat der Servo die Nummer 0 |
Servo 2 | Mitte – in der Excel hat der Servo die Nummer 1 |
Servo 3 | Aussen – in der Excel hat der Servo die Nummer 2 |
Das Massekabel des Servos muss zum Attiny hin zeigen – bei Futaba, Conrad und Robbe ist es schwarz, bei Graupner, JR und den meisten Noname Servos ist es braun. Der Stecker hier an dem Pfeil sitzt auf Position 0 – also der 1. Servo:
Für die Servoverteilung eignet sich ein Miniverteiler8 (der kommt in der neuesten Version der Hauptplatine mit). Solltet ihr den Miniverteiler verwenden, so denkt daran, das dieser keine Pins für die Terminierung hat. Zur Terminierung müsst ihr die entsprechenden Pins wie auf diesem Bild verwenden.
Vielleicht war es auch meine eigene Dummheit, aber ihr solltet auch darauf achten, das ihr die Kabelverbindungen selbst richtig aufsteckt – hier nochmal als Gedankenstütze.
Programmierung
Die Programmierung ist ebenfalls oben im Video gut beschrieben. Einfach über Optionen den „LED Farbtest starten„9auch wenn das gar nichts hier mit dem Farbtest zu tun hat. Dann den Reiter „Servos“ auswählen.
Die Einstellung der Servoauslenkung erfolgt am PC – während der Servo selbst dann meist schon am Einbauort fest installiert ist
Genau das kann manchmal ein Problem werden! Aber hier hilft es wenn euer PC mit dem Internet verbunden ist und ihr ein Smartphone oder noch besser einen Laptop oder Tablet habt. Macht dann einfach eine Videokonferenz mit eurem Tablet (einfach einen anderen Benutzer wählen als Einwahl), gebt euren Bildschirm und die Steuerung (!) frei. Schon könnt ihr die Einstellungen auf eurem mobilen Endgerät direkt am Ort des Geschehens vornehmen.
Allerdings hatte ich das Problem, das zwei der drei Servos nur sehr schwerfällig, bzw. gar nicht auf die Eingaben in der Servoeinstellung reagiert hatten.
Ich hatte vom Miniverteiler zum Hauptverteiler ein 2m langes Kabel verwendet. In der Dokumentation findet sich der Hinweis, das man in solchen Fällen (>1.5m Kabellänge) zusätzliche Spannungsversorgungen legen sollte. Stattdessen habe ich – nur zur Programmierung – kürzere Kabel verwendet. Danach hatte ich auch keine Probleme.
Bei der Programmierung über den Programmgenerator wird der jeweilige Attiny programmiert – nicht der Arduino! Deshalb ist der spätere Steckplatz des Servos – also an welcher Stelle er in der Excel adressiert wird – für die Programmierung selbst nicht von Belang. Im Excel selbst daher einfach nur Servo auswählen – und lasst euch nicht davon irritieren, das im Kommentarfeld dann ganz andere Werte stehen:
Beachtet die drei Zeilen ab Adresse 751: Hier wird dann immer Servo2 ausgewählt.
Ergebnis
In Nächternhausen habe ich die Servos zunächst dazu benutzt um die Tore meines Rundlokschuppens zu öffnen und zu schließen wie ihr auf diesem Video sehen könnt:
Falls ihr euch interessiert wie das asynchrone Öffnen und die Positionierung der Servos realisiert wurde, dann schaut euch bitte diesen Beitrag an: „Tore mit Servos öffnen„.
Was nun meine Wunschliste anbelangt, so ist alles erfüllt – bis auf die Herzstückpolarisierung.
Views: 1816