EINEN h0 Zug mit Raspberry Pi steuern?
Guten Tag,
ich habe zurzeit ein Projekt am laufen. dazu benötige ich (unter anderem) einen h0 Zug der auf einer 2m langen Strecke hin und her gesteuert werden kann. Alles mittels Raspberry Pi.
Hintergrund ist einfach der, dass der RasPi sich einen Wert aus dem Internet zieht und je nach Wert den Zug nach vorne oder nach hinten bewegt. Da ich aber noch nie etwas mit Modellbahnen zu tun hatte und nichtmal die Grundlagen kenne weiß ich gar nicht so genau was ich brauche.
Zurzeit habe ich folgenden Kenntnisstand: Ein Raspberry Pi kann mittels GPIO Stecker an einen TTL zu RS232 Converter Verbunden werden, dieser Converter schickt dann Signale an einen Booster der mit der Schiene verbunden ist und die Nötige Leistung für den Zug bringt.
Sehe ich das richtig das ich dafür nichtmal einen Zug mit Encoder brauche?
Kann das so funktionieren? Es soll wirklich nur ein Zug auf einer Strecke angesteuert werden. Es gibt auf der Strecke keine Weichen,Signale etc. Im Internet habe ich nur hyper-komplizierte aufbauten gesehen die ein Riesiges Schienennetz mit tausenden von Signalen,Weichen und Zügen bedienen können. Jedoch nicht wie man einen Einfachen Modellzug bedienen kann...
Ich bedanke mich schonmal für Antworten und Wünsche einen schönen Tag.
3 Antworten
Ich gehe mal davon aus, dass es für den Raspberry PI es hinreichend Zuberhör gibt, wo dieser doch hauptsächlich als Prozessrechner eingesetzt wird. Sensoren schicken ein Signal an den PI, Schalter (elektronisch oder elektromechanisch) bekommen ein Signal vom PI und steuern damit etwas. In unserem fall läuft dann im PI ein Programm, das den Fahrstrom für eine Richtung einschaltet und darauf wartet, das der betreffende Sensor meldet, wenn der Zug das eine Ende erreicht hat. Darauf schaltet PI diesen Strom ab und schaltet stattsdessen den Fahrstrom für die Gegenrichtung ein, an deren Ende wiederum ein Sensor auf die gleiche Weise für die Umkehr sorgt. Das kann natürlich noch verfeinert werden, indem z.B. der Zug eine kleine Pause macht, bevor er in die Gegenrichtung startet oder, falls der Zug das technisch hergibt, der Zug langsam anfährt und abbremst. Um Material zu sparen, kann man das mit dem Sensor auch nur in eine Richtung machen und die Gegenrichtung nach einer einstellbaren Zeit beenden. Das würde ausreichen, um ein Abdriften der Endpunkte zu verhindern. Nach diesem Verfahren müsste aber der Zug mit Gleichstrom betrieben werden, der durch Umpolen die Fahrtrichtung bestimmt. Andere Techniken mit Wechselstrom wie die früheren Märklinbahnen wären erheblich aufwändiger zu steuern. Soviel ich weiß, gibt es auch Züge am Markt, die für solche Steuerung vorgesehen sind mit entsprechendem Zubehör. Vermutlich nicht gerade billig.
Statt Sensoren könnte man auch Schienenkontakte verwenden, die zusammen mit dem Gleismaterial angeboten werden. So ein einfaches Hin- und Herfahren eines Zuges hat man schon vor 70 Jahren in den Schaufenstern bewundern können.
Also das eine Problem hast Du ja grundsätzlich schon erkannt und eine Lösung dafür parat: der GPIO-Pin vom Raspi kann nicht direkt "Leistung" liefern, sondern der eigentliche Fahrstrom muss aus einer separaten Quelle kommen, so dass Du auf dem GPIO-Pin nur eine Steuerinformation ausgibst. Im Prinzip kann man eine kleine Schaltung mit einem Leistungstransistor aufbauen, der dann abhängig vom Steuersignal den Fahrstrom einstellt.
Ein weiterer Punkt, der auf jeden Fall notwendig sein wird: ein wenig Sensorik.
Du kannst Dich nicht darauf verlassen, dass bei gleichartiger Steuerinformation der Zug jedes Mal auch gleich weit bzw. gleich schnell fahren wird. Dazu ist das ganze Gefüge zu unpräzise. Motoren arbeiten nicht immer 100 % gleich effektiv, die Räder des Triebfahrzeuges haben Schlupf, beim Bremsen kann es Durchrutscheffekte geben, die Spannung des Fahrstroms kann schwanken usw.
Wenn Du auf einer eingleisigen Strecke ohne Besonderheiten einfach nur hin- und herfahren willst, brauchst Du vier Sensoren:
Sensoren "Ende A" und "Ende B" als Streckenende-Sensoren.
Sensoren "Bremsen A" und "Bremsen B" als Bremsankündigungs-Sensoren.
Im Prinzip musst Du so eine Art "umgekehrte PZB90" bauen.
Die Idee ist folgende: nehmen wir an, der Zug steht an einem Ende der Strecke, also z. B. auf "Ende A". Dann kannst Du in die andere Richtung (nach B) aufbeschleunigen. Du passierst "Bremsen A", den Du ignorieren kannst. Dann kommt irgendwann "Bremsen B", dann leitest Du einen Bremsvorgang mit einprogrammierter Bremskurve ein. Nach dem Bremsvorgang fährst Du mit einer Minimalgeschwindigkeit so lange vor, bis Du "Ende B" detektierst. Dann stellst Du den Fahrstrom sofort ab.
Umgekehrt für die Rückfahrt dann gleichermaßen: Du stellst Fahrstrom in umgekehrte Richtung ein. Du verlässt "Ende B", ignorierst "Bremsen B", kommst irgendwann zu "Bremsen A", leitest wieder den Bremsvorgang mit fest einprogrammierter Bremskurve ein und rückst ganz langsam bis "Ende A" vor, wo Du den Fahrstrom abschaltest.
Für die Sensorik sehe ich folgende zwei einfachen Lösungen:
Variante 1: LED unter das Triebfahrzeug, Fotosensor mit Farbfilter unter die Strecke.
Variante 2: kleiner, schwacher Magnet unter das Triebfahrzeug, Magnetschalter unter oder neben die Strecke.
Die Magnetvariante kann statt unter dem Triebfahrzeug auch seitlich verbaut werden. Bei der optischen Variante wird das zu störanfällig.
Du brauchst also für die Sensorik vier Input-Ports am Raspi.
Sensor? Eine einfache Lichtschranke wäre am einfachsten und zuverlässigsten! alles andere halte ich für weniger sinnvoll um ehrlich zu sein!
Ja, du siehst das richtig, du brauchst lediglich einen "billigen" analogen Zug.
Du musst die nötige Leistung (P=U*I) an die Schiene geben. Das sollte nichtmal sonderlich schwer sein, das über das Pi hin zu bekommen. Also ich denke, dass du das mit den richtigen Bauteilen (von RS232 converter habe ich noch nie etwas gehört um ehrlich zu sein) problemlos innerhalb eines freien Nachmittags hinbekommst.
Schwierig ist eben nur die Bereitstellung der richtigen Leistung (also Spannung und Stromstärker), aber wenn das dein Bauteil kann dann klasse!
Was du aber definitiv brauchst ist eine externe Stromquelle! Das Pi liefert nicht genug Leistung hierfür.
naja, du brauchst in irgendeiner Form einen Transformator den du über diese Schnittstelle ansteuern kannst! Der Trafo kann auch ein ur-alter mechanischer sein, wo du nur die Spulenzahl an der der strom abgegriffen wird veränderst. Dazu am besten im Modellbau-Fachgeschäft nachfragen!?
Ansteuern könntest du das über nen servo-Motor z.B.?
Ein RS232 Anschluss ist die Serielle Schnittstelle die man bei älteren PC's finden kann. sie hat 7 Pins.
Der Converter macht nichts anderes als das TTL Signal des Pi's eben in das Format der Serielle Schnittstelle zu Converten.
Gibt es evtl Steuer-Zentralen für diese Züge die über eine solche Schnittstelle gesteuert werden können?