Software zur Ansteuerung - fleischmannh0

Lang lebe FL H0
Direkt zum Seiteninhalt

Hauptmenü:

Software zur Ansteuerung

Für den Raspberry gibt es mehrere Programmiersprachen und sogar bei interaktiven Arbeiten über ein Terminalfenster, ist es möglich, Ein-/Ausgabekanäle zu testen. Das habe immer wieder genutzt, wenn mir bestimmte Parameter der Kommunikation mit Geräten nicht ganz klar waren. Außerdem erlaubt es, die korrekte Verdrahtung zu testen.

Als Programmiersprache wählte ich Python, Version 3. Python ermöglicht alles, was benötigt wird: es kann die GPIO-Ports ansprechen und es gibt zahlreiche Bibliotheken, die das Programmieren vereinfachen.

Manchmal gerät aber dennoch in eine Sackgasse: beispielsweise war die ausgewählte Grafikbibliothek (matplotlib) extrem langsam beim Zeichnen von Linien. Da ich eigentlich nur wenige Optionen der Grafikbibliothek verwende, nämlich nur gerade Linien zeichnen von Punkt A nach B und einfache Textausgabe an einem bestimmten Punkt auf dem Bildschirm, habe ich nach einigem Probieren mit den Beispielen eine schnelle Bibliothek gefunden, die Linien einfach und richtig überschreibt mit einer anderen Farbe und die nicht viel Overhead beinhaltet, weil sie für Grafikspiele entworfen wurde: pygame.

Zusätzlich wollte ich grafische Menüs anbieten, nachdem anfangs die Bibliothek "tkinter" nahm, modifizierte ich den Quellcode und nahm die sehr einfache gestrickte PySimpleGUI-Bibliothek. Beispiele, dass PySimpleGUI- und pygame-code miteinander einfach kombinierbar sind, findet man im Netz.

Die grafische Oberfläche sieht nun wie folgt aus:



Erklärung:
Das Programm kann von einem Terminalfenster gestartet werden. Man bekommen Information, wie die Initialisierung ablief (z.B. sollte man alle Weichenstellungen durch die Software einstellen. Ich habe alle Weichen auf "gerade" gestellt - das könnte man aber auch spezifisch ändern.). Alle Daten, die das Gleisbild betrifft, sind in einer Datei gesammelt, so dass das Programm selbst flexibel ist, auch anderen Anlagen zu steuern. Einige Parameter sind immer noch fest im Quelltext verankert und müssten modifiziert werden. Die Änderungen sind aber leicht nachvollziebar mit etwas Python Programmiererfahrung.
Wie man sieht, sollen die weiß gefärbten Steckenteile durch die Weichenstellung befahrbar sein. Durch Anwählen der Weichennummer im rechten Python GUI Fenster wird z.B. die Weiche #1 auf "Abbiegen" gestellt und ein vorher blau markierter Streckabschnitt weiß und eine anderer blau gefärbt:

Auch die andere Stellung der Weiche ist mit der roten Linie zu erkennen.

In der Mitte sieht man, mit welcher "Geschwindigkeit" man die zwei Stromkreise versorgt: v1 ist der äußere und v2 der innere Kreis mit den zwei Weichen 8 und 9. Die Kreuzung trennt die zwei Stromkreise elektrisch voneinander.

Die Richtungsänderung erfolgt über einen Schieberegler. Nur bei Geschwindigkeit NULL erfolgt ein Richtungswechsel. Der Betrieb besitzt eine bevorzugte Richtung. Die ist im Uhrzeigersinn.

Die Menüpunkte #11 - #15 sind weitere Ein/Aus-Kanäle für z.B. Entkupplungsgleise oder für Beleuchtung.

Ich werde noch ein paar Bilder zur Verdeutlichung des ganzen Aufbaus nachreichen.
Willkommen zu meiner Information über meine reaktivierte Fleischmann H0 Modelleisenbahn
Zurück zum Seiteninhalt | Zurück zum Hauptmenü