Hallo Schienendampfer,
Die Frage nach dem "Warum" beantworte ich auch zu erst: Weil ich wissen will, ob ich das hinbekomme und weil ich mich mit der Technik beschäftigen will. Und nicht zuletzt: weil es geht. Übrigens: wenn euch der Text zu lang ist, unten gibt's Bilder
Das ganze Projekt entstammt der Idee, meine 99222 bei Bedienung durch meinen (seinerzeit noch einzigen) Sohn ab einer gewissen Geschwindigkeit abzuriegeln und nicht auf jedem Übergang auf die Gerade ermahnend eingreifen zu müssen. Das Projekt wird sich wohl noch so lange hinziehen, bis der Zweite auch das gefährliche Alter verlassen hat, aber inzwischen sind so viele Ideen hinzugekommen, dass es sich auch so lohnt weiter zu machen.
Der Unwille, auf eine neue, möglicherweise voll und frei programmierbare RC Anlage umzusteigen, verkompliziert die Sache zwar ein wenig, hält mich aber technologieunabhängig. Auch sind die vorkonfektionierten Sensoren ab einer gewissen Menge zu sperrig und unter Umständen auch softwareseitig in der Anzahl begrenzt.
Nach einer Kurzaufnahme dessen, was man messen und regeln könnte musste erstmal die Machbarkeit analysiert werden ...
Analog:
+ Spannung des Akkus
++ Temperaturen (PT100, KYT81)
++ Kaltgas
++ Heißgas
++ Kessel
++ Abgas
++ Zylinder L
++ Zylinder R
+ Drücke (MPX5xxx Reihe)
++ Kaltgas **
++ Heißgas **
++ Gas vor dem Regelventil
++ Gas in der Düsenzuleitung
++ Kessel
++ Schieberkasten
++ Zudampf Speisepumpe
+ Füllstände (optisch)
++ Wasserkästen
++ Kessel
Digital:
+ Drehraten (Lichtschranke mit 100-Speichen Encoder-Rad)
++ Kuppelrad
++ Laufrad ** (kein Platz für Einbau)
Als Basis wollte ich einen AVR Mikroprozessor verwenden, weil ich mit dieser Prozessorfamilie in einigen Bastelprojekten etliche Erfahrung sammeln konnte. Diese haben maximal 16 Analogeingänge weswegen zu zu messenden Größen etwas zusammengekürzt (**) werden mussten.
Weiterhin wollte ich den monströsen Kabel- und Steckerwust umgehen und einen kleinen Slow-Flyer-Empfänger verbauen, das Summensignal erkennen und Servosignale ausgeben. Eine Konfigurationsdatei sollte von einer SD-Karte gelesen und Logdateien geschrieben werden, Licht geschaltet werden. Alles auf der Lok.
Gesteuert werden
+ Bremse
+ Entwässerung
+ RC-Gasregler
+ Zünder ***
+ Umsteuerung
+ Regler
+ Speisepumpe
+ Pfeife
+ Läutwerk ***
+ Steuermodus (manuell, nebenbei-Labermodus, Spielzeug) (mehr siehe unten)
(***) Umsetzung wegen fehlender Hardware derzeit offen
Der Entwurf der Elektronik sieht eine dreiteilige Platine vor, die mit 90° Steckverbindern zusammen gesteckt wird und um den Kaltgastank herum steht.
Die Platine ist zweilagig und zweiseitig bestückt, weitestgehend in SMD ausgeführt. Aufgrund der geringen Pinabstände habe ich sie fertigen lassen und nicht zuhause mit doppelseitiger Toner-Direktmethode geätzt.
1. Teil Spannungsversorgung (Schaltregler 5V 1A sauber, für AVR, analoge Sensoren, etc / Schaltregler 5V 5A unsauber für Servos, Licht, Piezobuzzer, etc / Schaltregler 3.3V 1.25A für die SDKarte) + Piezobuzzer für Fehlermeldungen und Unterspannungswarnung
2. Teil Hauptplatine mit Mikroprozessor, Quarz, SD Slot, Pegelwandlern, Buchsen für Servo- und Sensorstecker, Empfänger- und Telemetrieanschluss, sowie Programmierschnittstelle
3. Teil Temperaturmessung mit Konstantstromquellen und Operationsverstärkern (PT100) und Spannungsteilern (KYT81)
Versorgt wird das ganze von einem 2S oder 3S LiPo Akku, dieser kann sogar im Betrieb getauscht werden, ohne ausschalten. Die Ladebuchse entfällt technologiebedingt. Ein solcher Akku mag es zwar gerne warm, hat aber beim Laden nichts außerhalb einer Spezialtasche zu suchen.
Die Software ist in C geschrieben und besteht in der ersten als geschlossen anzusehenden Version (nur manuelle Steuerung) knapp 2000 Zeilen echten Code. Die Dateien mit Dokumentation sind etwa 250 Kilobyte groß, dazu kommt nochmal genausoviel für das Dateisystem der SDKarte (FatFS, freie Software von ELM ChaN). Den überwiegenden Teil machen jedoch die Unittests und der Integrationstest aus. Jede Programmzeile und jede mögliche Programmverzweigung wird vor dem Download auf den Mikrochip automatisiert getestet. Dieses Vorgehen hatte zur Folge, dass ich kaum Fehler auf dem Chip suchen musste und bis jetzt nur 50 Programmierzyklen benötigt habe.
Mit dieser Version will ich dann erstmal Log Dateien einfahren (einspielen?) um Erfahrungen und Daten für Regelstrategien zu sammeln. Bis auf die Füllstandssensoren ist alles in der Lok drin.
Die Füllstandsmessung ist ja eine Wissenschaft für sich. Optische Messungen wurden wohl schon erfolgreich eingesetzt. Ich habe Lichtverlauf einschließlich Brechung mittels PovRay, einer Raytracingsoftware, simuliert um die korrekte Position von IR-Led auf der einen und IR-Fototransistor auf der anderen Seite der Wasserstände zu bestimmen. Per Software werden die LEDs nur während der Messung kurz angeschaltet (etwa sechs mal in der Sekunde für eine hundertstelsekunde). Das spart Strom.
Die Steuerung liest nicht nur das PPM-Summensignal vom RC-Empfänger, sie verhält sich auch wie ein Graupner-Vario-Telemetrieempfänger. Dazu habe ich schon in Arnes Telemetrie-Erfahrungen etwas geschrieben. Aufgrund der starken Anwendungsausrichtung der Graupner Telemetrie lässt sich nur das Textdisplay mit 2x10 oder 3x7 Zeichen verwenden. Für letzeres Format laufen 7 Seiten mit Messwerten zyklisch durch. Außerdem gibt es im Einstellungsmenü des Empfängers 7 Textseiten mit quasi allen interessanten Daten.
Auf Dresden und Schramberg 2020 rückblickend habe ich folgendes Zwischenfazit: die Eletktronik geht im Gegensatz zum Rest richtig gut.
Als nächstes soll der "nebenbei-Labermodus" umgesetzt werden. Auf Messen, wenn man auf Ausstellungen mal nebenbei Dinge erklärt, vergisst man im schlimmsten Fall zu Speisen. Das soll vermieden werden. Dabei soll anhand der Abgastemperatur und des Kesseldrucks der Brenner geregelt werden. Als Hilfsgröße können Gasdruck vorm RC-Gasventil und vor der Düse verwendet werden. Je nach Zuverlässigkeit der Messdaten von den Wasserständen Kessel (voll / Mitte / leer) und Wasserkasten (leer) soll die Speisepumpe geregelt werden. Ihr Betriebsdruck und der Kesseldruck können wieder als Hilfsgröße verwendet werden. Die Entwässerung schließt automatisch ab einer bestimmten Zylindertemperatur. Alles andere geht weiter manuell. Natürlich wird der Regler automatisch zurückgenommen, wenn die maßstäbliche Höchstgeschwindigkeit erreicht wird. Letzteres vielleicht irgendwann auch im manuellen Modus.
Der Spielzeugmodus soll auch die Steuerung ändern. Ein Drehpoti regelt die Geschwindigkeit (Bremse, Umsteuerung und Regler bedienen sich dann automatisch). Als Messgröße werden die Drehrate sowie der Schieberkasten- und Kesseldruck verwendet. Das Licht leuchtet nur noch mit der Umsteuerrichtung, die Pfeife geht noch manuell, aber nur bei genug Druck. Entwässerung, Gas und Speisepumpe wie schon im halbautomatischen Modus.
Viele Grüße,
Stefan
Und nun das Bilderbuch ... leider ist die Fotodokumentation mal wieder mehr als dürftig gewesen etliches musste ich notdürftig nachholen ...
Platine an Ort und Stelle
Lampen mit Platinensteckverbinder
Platinenhalter
Man sieht die Sensoren gar nicht ...
Sie sind in einer Kessel-/Aschkastenimitation untergebracht ...
Dafür war auch handwerkliche Arbeit gefragt ...
Mit ein wenig Ostererfahrung sieht man das Encoderrad sogar am Ende noch ...
Von unten fotografieren ist übrigens neuerdings strafbar in Deutschland ...
Hier der Schieberkasten mit Zudampf und Messleitung ...
Beim Gas ein wenig anders ... hier waren die Sensoren nicht verkapselt ...
Drei Anschlusspins sind nicht belegt und können abgekniffen werden.
Zylindertemperaturmessung ...
Die Kabel liegen in teuren dünnwandingen Messingrohren ...
Servostromversorgung plus 8 Signalleitungen ...
Und fertig ...
Dünne Lampenleitungen sind nicht zu kurz - die sollen so. Die wurden an dickere Leitungen angelötet ...
Temperatursensor ... PT100, Teflonisolation von Spezialdraht, Vierpolige Leitung aus einem hochtemperaturfesten Flachbandkabel, Silikonisolation von Hochstromlitze anstatt von Schrumpfschlauch ...
Ich hab schon überfrachtetere Führerstände gesehen ...
Der Mikrochip - 256kByte Flash, 512 Byte RAM, 16MHz. Mehr braucht's nicht. Nur gut Planung (siehe Platine, Revision 1 halt ... ) ...
Hier sieht man die extrem kurzen Servokabel mit anderem Stecker.
Und die Funke funkt auch ... hier drei Seiten aus der ausführlichen Telemetriemenü, welches ein einem als Sensorenkonfigurationsmenü gedachten Bereich implementiert ist. ... wer findet den Fehler?
Auflösung: ms statt µs im vorletzten Bild