Aufbau einer Arduino Mikrocontroller-Loksteuerung

Alles rund um den Betrieb mit Funk & Akku (Elektrik)

Moderator: Regalbahner

sebastian82
Beiträge: 13
Registriert: Mo 24. Sep 2012, 09:37
Wohnort: München

Aufbau einer Arduino Mikrocontroller-Loksteuerung

Beitrag von sebastian82 »

Liebe Buntbahner,

nachdem ich bei meinem französischen Triebwagen immer wieder Probleme mit meiner alten 40MHz Fernsteuerung hatte, habe ich mich nach einer anderen Lösung umgesehen. Die Funkstörungen führten teilweise zu ruckartigen Geschwindigkeitsänderungen. Zusammen mit dem vorhandenen Spiel im Antriebsstrang hatte das zur Folge, dass sich die Zahnräder in den Getrieben immer wieder gelöst haben. Dabei wollte ich durch die verbauten Schwungmassen eine gewisse Trägheit bekommen.

Deshalb habe ich nach einer alternativen Steuerungsmöglichkeit gesucht und bin bei meinen Internetrecherchen auf die Seite „Android App for Garden Train“ gestoßen. Dort wird sehr anschaulich beschrieben, wie eine Lok über ein Smartphone und einen kleinen mit Arduino programmierten Mini Computer gesteuert werden kann. Neben der Beschreibung sind auch die benötigten Komponenten und der Programmcode für den Mini-Computer verfügbar. Ein weiterer Vorteil dieser Lösung ist, dass die benötigten Bauteile deutlich günstiger sind als eine fertige Lösung.

Für den ersten Prototypen habe ich eine Stainz umgebaut. Die Lok war mehr oder weniger übrig und eignete sich daher gut für erste Versuche. Für den ersten Versuch kamen folgende Komponenten zum Einsatz:
  • ESP32 Lolin als Mini-Computer und Funksteuerung
  • L298 als Motorsteuerung
  • DC-DC-Wandler zur Spannungsversorgung des Mini-Computers
  • 12-V-Bosch-Akku als Energiequelle
Der Akkuhalter stammt aus einem 3D-Druckmodell aus dem Internet. Ursprünglich wurde dieser Halter für ein „Gießkannenradio“ entwickelt, passt aber fast perfekt (etwas zu hoch) für den Einbau in die Lok.

Handregler Funksteuerung (sebastian82)
Bild

Die erste Konfiguration hat sich im Betrieb leider nicht bewährt. Die Lok hatte deutlich zu wenig Leistung und war nicht in der Lage Steigungen zu bewältigen. Es hat sich herausgestellt, dass der Motor einen höheren Strombedarf hatte, als der verwendete Motorcontroller liefern konnte. Als Ersatz verwende ich nun den Fahrtreglerbausatz von Modellbau-Regler. Dieser ist deutlich besser für die hohen Ströme geeignet.

LGB Stainz Funksteuerung (sebastian82)
Bild

Die Lösung war für den ersten Versuch ausreichend, aber mit der App war ich nicht wirklich zufrieden. Das Steuern durch Wischen auf dem Handy war unpraktisch und führte immer wieder zu unbeabsichtigten Fahrbewegungen und Kollisionen. Außerdem wollte ich eine Bedienung mit einem echten Drehregler, damit die Lok auch ohne Blick auf die Steuerung gefahren werden kann. Gerade für den Nachwuchs sollte die Steuerung einfach und robust sein. Deshalb wurde das Handy durch einen eigenen Handregler in einem stabilen Kunststoffgehäuse ersetzt. Dieser besteht aus:
  • ESP32 Lolin
  • Richtungsschalter
  • Geschwindigkeitspotentiometer
  • LiPo-Akku
Lok Funksteuerung (sebastian82)
Bild

Lok Prototyp Funksteuerung (sebastian82)
Bild

Die Software wurde im Laufe der Zeit immer weiter verbessert. Mit Unterstützung durch KI waren Anpassungen auch ohne große Programmiererfahrung gut umsetzbar. Unter anderem wurde der Richtungsumschalter als Not-Aus-Funktion erweitert, die Bluetooth-Verbindung stabilisiert und die Datenübertragung optimiert. Falls dazu jemand Fragen hat oder den Code braucht kann er sich gerne bei mir melden.

Insgesamt funktioniert das System bereits sehr gut. Mein Ziel ist es aber weiterhin, die Lok möglichst realistisch wie eine große Lokomotive zu steuern. Als nächster Schritt soll deshalb ein neuer Handregler entstehen. Dieser soll eine einstellbare, simulierte Masse berücksichtigen, sodass die Lok beim Abschalten nicht abrupt stoppt, sondern realistisch ausrollt. Außerdem soll sich die Geschwindigkeit künftig über Gas und Bremse noch vorbildgerechter regeln lassen.

Viele Grüße
Sebastian
sebastian82
Beiträge: 13
Registriert: Mo 24. Sep 2012, 09:37
Wohnort: München

Re: Aufbau einer Arduino Mikrocontroller-Loksteuerung

Beitrag von sebastian82 »

Hallo,

ein erstes Update zur Steuerung. Die direkte Geschwindigkeitssteuerung einer Modellbahn erfüllt zwar ihren Zweck, vermittelt aber kaum das Gefühl, einen echten Zug zu fahren. Mich reizte deshalb die Idee, eine kleine Fahrsimulation zu entwickeln. Durch simulierte Trägheit, Zugkraft und Bremswirkung sollte die Lok nicht mehr sofort auf jede Reglerbewegung reagieren, sondern sich realistischer verhalten. Mein Ziel war es, die Steuerung um typische Fahreigenschaften eines echten Zuges zu erweitern und auszuprobieren, wie sich eine solche Simulation auf der Modellbahn anfühlt.

Nachdem die Loksteuerung zuverlässig funktionierte, begann ich mit der Umsetzung dieser Idee. Hierfür wurde die Software grundlegend überarbeitet und mithilfe von KI in eine objektorientierte Struktur überführt. Dadurch konnten die physikalischen Eigenschaften der Lok in der Software nachgebildet werden. Für den ersten Versuch habe ich alles in einen ersten Handsenderprototypen verbaut.

Prototyp Führerpult (sebastian82)
Bild


Der Fahrregler gibt nun nicht mehr direkt die Geschwindigkeit vor, sondern die Zugkraft der Lok. Dadurch beschleunigt die Lok nicht schlagartig, sondern gewinnt langsam an Geschwindigkeit. Wird die Zugkraft zurückgenommen, rollt die Lok aufgrund ihrer simulierten Trägheit weiter und kommt erst nach und nach zum Ausrollen. Um die Geschwindigkeit zu verringern, muss aktiv gebremst werden. Über den Bremsschalter können verschiedene Bremsstufen gewählt werden, die eine entsprechende Bremskraft erzeugen.

Die neuen Funktionen lassen sich bereits auf meinem Testgleis ausprobieren, fühlen sich aber noch nicht realistisch an. Hier muss noch einiges an Feinabstimmung gemacht werden. Gerade der Übergang vom Rollen zum Stehen ist sehr von der Lokreibung abhängig. Als Nächstes möchte ich die Simulation weiter verfeinern und zusätzliche Funktionen (Steigung, Geschwindigkeitsregelung) ergänzen.

Viele Grüße
Sebastian