winston - Großes Fahrstraßenupdate!

#1 von daniekr , 07.02.2022 23:29

Hallo Freunde und Modelleisenbahner,

ich möchte hier winston vorstellen. winston befindet sich schon seit gut eineinhalb Jahren in Entwicklung und ist gedacht als "sinnvolle" Ergänzung zu einer bestehenden DCC-Zentrale. Statt wie viele andere Projekte das DCC-Signal am Gleis selbst zu erzeugen, sitzt winston wie z.B. rocrail eine Ebene höher und arbeitet mit einer DCC-Zentrale zusammen (aktuell eine z21start).

Zu den einzelnen Fortschritten geht es hier:


In der Endausbaustufe soll winston sich um die Fahrstraßen, Signale und automatische Zugfahrten kümmern, damit man nicht allein fahren muss. Aber so weit bin ich noch nicht. Zielarchitektur ist ein Arduino-kompatibler Mikrocontroller wie ein Teensy 4.1, der unter der Anlage hängt und unabhängig von einem PC die Steuerung übernimmt.
Das Herzstück von winston ist das Stellwerk, das in einer engen Schleife alle Aufgaben in möglichst kleinen Häppchen abarbeitet, ohne lange zu warten oder andere Events zu lange zu blockieren.

Aktueller Stand
Stattdessen bietet die aktuelle Version als Haupt-Feature schon das Stellen aller Signale nach Weichenstellung im Fahrweg hinter dem Signal. Statt also an jede Weiche ein Signal anzuklemmen (so war das auf der Anlage in meiner Kinderzeit), kann winston aus der Weichenstellung sehen, ob der Fahrweg (bis zum nächsten Signal oder Prellbock) befahrbar ist (Signal steht auf Fahrt) oder eine Weiche falsch gestellt ist (das Signal steht auf Halt). Genauso sind auch schon Vorsignale möglich, die den Stand des nächsten Hauptsignals anzeigen. Oder direkt praktisch in einem Kombinationssignal zusammengefasst. Das hilft meiner kleinen Anlage auch schon mal, um zu sehen, ob ich den Zug nicht lieber anhalten sollte...
Es läuft noch nicht alles so stabil, dass ich dem ganzen vollautomatisch die Züge anvertrauen würde, aber es ist ja auch noch Zeit.

Um den Gleisplan zu kennen, wird dieser direkt im Code definiert - ich hätte am liebsten alles mögliche schon zur Compilezeit berechnet, um zur Laufzeit schneller zu sein. Aber da der Teensy nur mit C++14 kompiliert werden kann, kann ich nicht alle neuen Sprachfeatures nutzen.

Den aktuellen Stand findet ihr in github: https://github.com/danie1kr/winston

Hardware
Aktuell läuft winston auf Windows und Arduino (Teensy 4.1), entwickelt mit Visual Studio in C++.
Zur Ansteuerung der z21 hat der Teensy direkt ein Ethernet-Interface dabei.
Signale werden mit einem TLC5947 gesteuert, der hat 24 PWM-Ausgäne, mit dem auch Fading auf den LEDs der Signale möglich ist.
Vorteil der Windows-Entwicklung ist, dass man in aller Ruhe debuggen kann und die Logikfehler findet, ohne auf nicht ganz so komfortables Debuggen auf dem Teensy angewiesen zu sein. Die kleinen Hardware-Unterschiede reichen da schon. Wenn man sich sicher sein kann, dass zumindst die Graphen-Traversierung korrekt ist, hilft das ungemein.

Signale
Die Signale selbst sind aktuell einfache PCBs mit schwarzem Lötstoplack. Zurechtgefräst in Signalform ergibt das ein ganz nettes Bild. Damit man es noch selbst handhaben kann, sind 1206er LEDs vorgesehen, die zusammen mit dem TLC5947 selbst bei 1/4 der Helligkeit noch sehr stark leuchten. Am unteren Ende des Signal-PCBs sind Lötkontakte für 2x2 2mm Pfostenstecker. Diese stecken in entsprechenden Female-Headern unter der Anlage auf einer kleinen Platine, an die die Kabel angeschlossen werden. Ein 6mm-Loch ist genau die richtige Größe, um die Header festzuklemmen. Das PCB ist von JLCPCB und hat leider ein paar Macken, aber es reicht für die erste Iteration völlig aus und macht optisch was her!
Bei Interesse kann ich die PCB-Files gerne freigeben.



Der erste laufende Prototyp:


Mit richtigen Signalen:


Auf der Anlage:


Mit Zügen:


Alternativen
Es gibt andere Projekte und Programme, die das können aber wo bleibt denn dann der Spaß. Für ein rocrail müsste ich einen Rechner unter der Anlage booten. So ist der Teensy nach 8 Sekunden einsatzbereit (wobei die längste Zeit dafür verwendet wird, auf die z21 zu warten, um den Zustand aller Weichen einzusammeln). Oder man macht alles in Hardware mit vorgefertigten Modulen namhafter Hersteller. Aber... nein

Aktuell bietet winston folgende Features
1) Weboberfläche
1b) mit Gleisplan inklusive Anzeige und Layout-Editor (zum Zurechtzuppeln)
1c) Anzeige der Weichen und Signale
1d) Stellen der Weichen
1e) Liste der Verkabelung, um die Signale anzuschließen
1f) Loks sieht man schon, kann sie aber noch nicht steuern

2) Verbindung zur z21
3) Stellen der Signale nach Fahrweg hinter dem Signal

Geplante Features
- Steuerung der Loks: per z21 eigentlich einfach machbar
- Belegtmeldung: Hier laufen erste Experimente mit NFC sehr erfolgreich. Damit erhält winston eine Positionsmeldung und kann aus einem vorhandenen Geschwindigkeitsprofil mitrechnen, wo sich ein Zug befindet. Vermutlich wird die NFC-Lösung teurer als z.B. ein 16xRailcom-Rückmelder der bekannten Firmen. Aber dafür entfällt auch das Gefummel mit Lötstellen am Gleis.
- Stellen der Signale nach Belegtmeldung und Fahrstraßen: Ergibt sich aus den Belegtmeldungen und dem Webinterface, auf dem man Fahrstraßen einstellen kann. Ggf. auch per DCC-Adresse direkt über die Multimaus.
- automatische Fahrten im Kreis und auf Abstellgleise

Da die Anlage jetzt erst mal wieder abgebaut wird, habe ich viel Zeit, die Software weiter zu entwickeln und mit dem Aufbau im Winter wieder zu testen. Ihr hört von mir.

Viele Grüße
Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


fbstr, piefke53, Volvivo, brep, vikr und Richrath haben sich bedankt!
 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital

zuletzt bearbeitet 01.02.2023 | Top

RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#2 von fbstr , 08.01.2023 17:19

Ich muß hier mal einen Merker setzen damit ich Updates mitbekomme.


Gruss
Frank
---------------------------------------------------------------------------------------------------------------------
MobaLedLib Wiki
Projekt "Bahnpark Augsburg"
Stummitreff BB: jeden 3. Freitag im Monat im Haus Sommerhof in Sindelfingen


 
fbstr
Metropolitan (MET)
Beiträge: 2.521
Registriert am: 28.08.2016
Ort: Stuttgart
Gleise Peco Code 75, Trix C
Spurweite H0, H0e
Steuerung YD7001, MobaLedLib, MirZ21, Lenz LZV100
Stromart DC, Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#3 von GerdR , 08.01.2023 17:37

Schade dass man hier seit fast einem Jahr nichts mehr gehört / gelesen hat.

Hoffentlich gehts weiter.

GerdR


GerdR  
GerdR
InterRegio (IR)
Beiträge: 164
Registriert am: 27.02.2020
Spurweite H0e
Steuerung Z21PG, DCC++, Eigenbaudecoder
Stromart Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#4 von daniekr , 08.01.2023 17:46

Hallo zusammen,

nach einigem Gebastel sind nun endlich die Signale auf meiner Anlage:
Bild entfernt (keine Rechte)

Weitere Bilder gibt es hier.

Die einzelnen Signale sehen so aus:Bild entfernt (keine Rechte)
Hier mit rot und grün, es gibt auch noch eines mit rot, grün und gelb (=nächste Signal ist rot) und Zwergsignale, die auch nur rot und grün können.

Auf dem Webinterface hat sich nicht viel getan, außer dass die Signale dort angezeigt werden und es eine (sehr praktische) und übersichtliche Liste gibt, auf welchem Port welches Signal wie angeschlossen wird.

Eigentlich(tm) war es gar nicht so schwer, vom letzten Jahr auf dieses zu updaten:

  • Platinen erstellen, bestellen und löten, um den Teensy und die TLC5947 unterzubringen.
  • Signale löten.
  • Kabel crimpen/löten und alles verkabeln.

(die Software hat schon vorher funktioniert, einige Fehler aus dem letzten Jahr waren noch da, aber dann doch schnell behoben).

Nun aber die eigentlichen Lessons Learned:
  • TLC5947 können zwar in einer Kette aneinander gehangen werden, aber ab dem vierten sind SPI-Clock und SPI-Data soweit auseinander, dass die Werte nicht mehr passen. Da hilft aktuell nur, die SPI-Clock auf ca. 100.000hz runterzusetzen. Für die Zukunft muss ich dann entweder zwei SPI-Stränge aufbauen oder das ganze irgendwie wieder in-sync bringen.
  • Das Panel mit den Platinen und den Anschlüssen sollte nicht zu weit hinten hängen, damit die Fehlersuchen und das Anschliessen einfacher ist.
  • Eine Doppelkreuzungsweiche sind nicht zwei einfache Weichen aneinander gesteckt, aber das lässt sich schnell noch einbauen.
  • Kabel, die unter der Anlage hängen, ziehen so manches Signal wieder raus.
  • Mach ein Signal ist so optimistisch, dass nun mein Uaais 819 hängen bleibt
  • Es lohnt sich immer, Debug-Möglichkeiten einzubauen.


Viele Grüße
Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


GerdR hat sich bedankt!
 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#5 von daniekr , 08.01.2023 17:47

@GerdR, Ich war schon am Tippen, da ist das Update :)


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#6 von daniekr , 13.01.2023 20:32

Hallo zusammen,

heute ein Update zur Web-UI:
Bild entfernt (keine Rechte)

Neu im Vergleich zu letztem Jahr:

  • erweiterte Lokomotiv-Anzeige (Steuerung ist noch nicht da, könnte ich mal angehen)
  • richtige Doppelkreuzungsweiche
  • vollständige Signalanzeige
  • Anzeige aller Log-Meldungen

Insbesondere die Doppelkreuzungsweiche war nicht ganz einfach, da hier zwei Weichenantriebe abgefragt werden und man irgendwie den Stolz hat, keine unnötigen Abfragen oder sinnlosen Netzwerktraffic zu erzeugen.

Prinzipiell soll die UI mal mit auf den Microcontroller wandern und von dort ausgespielt werden, da muss aber noch der passende Workflow her, alle Dateien mit einzukompilieren.

Viele Grüße
Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#7 von daniekr , 24.01.2023 21:35

Und es geht schon weiter:
Die UI kann jetzt direkt vom Microcontroller ausgeliefert werden, dazu werden einfach alle benötigten Datein mit einkompiliert und im Flash gelagert.
Außerdem habe ich die Verbindung zur Zentrale (momentan wird nur die z21 unterstützt) verbessert:
Da der Microcontroller schneller bootet als die z21, muss er erst warten, bis diese ihm eine Antwort schickt, bevor er die Weichenstellungen abfragen kann.

Als nächstes wird es eine rudimentäre Fahrstraßenunterstützung geben, damit man die Weichennummern nicht alle von Hand wissen muss.
Über virtuelle Weichennummern (z.B. >400) kann man die dann an der multimaus stellen, der Microcontroller empfängt die Stellung und kann seinerseits alle hinterlegten Weichen stellen. Mal sehen, wie ich das in der UI anlegen kann.

Viele Grüße!
Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#8 von daniekr , 01.02.2023 21:14

Hallo zusammen,

es gibt wieder einen großen Meilenstein zu vermelden: Fahrstraßen.
Eigentlich ja nur ein "musst du halt ein paar Weichen stellen", aber man hätte es ja schon gern richtig:

  • Fahrstraßen gibt es nur von Signal bis Signal.
  • Jede Fahrstraße hat einen Pfad und ggf. eine Liste an Weichen, die zum Flankenschutz eingestellt werden müssen.
  • Manche Fahrstraßen schließen sich gegenseitig aus.
  • Alle obigen Punkte werden automatisch ausgewertet und beim Start validiert, damit die Algorithmen auch zuverlässig arbeiten können. Zum Glück hab ich sowas mal studiert.
  • Fahrstraßen lassen sich über die UI (siehe unten) oder über virtuelle DCC-Accessory-Adressen stellen, also auch mit der Multimaus oder den z21-Apps.
  • Weichen müssen verschlossen werden, damit man sie nicht der eingestellten Fahrstraße nicht wegnehmen kann. Ich überlege noch, wie ich das mit den externen Controllern handhaben will - einer z21 kann ich schließlich nicht klarmachen, dass sie eine Weiche nicht stellen darf.


Die UI dazu ist auch schon fertig und sieht jetzt so aus:
Bild entfernt (keine Rechte)

Fahrstraßen lassen sich entweder links im Menü oder direkt auf einem Signal einstellen. Die grauen Weichen sind die verschlossenen, orange noch frei stellbar.

@fantux - danke für deinen Rat. Man kann jetzt soviele Fahrstraßen auf einmal stellen, wie man will. StuPro lässt grüßen.

Damit sind die meisten Features, die man ohne Belegtmelder implementieren kann, schon da. Mal sehen, was mir als nächstes einfällt.

Es wird auf jeden Fall noch eine Beschreibung folgen, wie man winston auch ohne Microcontroller nutzen kann. z21 und ein Rechner im Netzwerk reichen für einige Features bereits aus!

Viele Grüße
Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


RE: winston - noch so ein Softwareprojekt zur Modelleisenbahnsteuerung

#9 von daniekr , 29.02.2024 18:33

Hallo zusammen,
viel neues gibt es diese Saison nicht zu berichten.
Dank Websocket-Support war es ein leichtes, das Autokino (ESP32 mit Touchdisplay) zu integrieren: Kornweinheim est. 2020 - Autokino mit Serien-Intros steht

Das wichtigste neue Feature ist aber, dass bei Gleiswechsel-Weichen automatisch die andere Weiche gestellt wird, sodass die Wege immer einen befahrbaren Zustand haben.
Der Algorithmus schaut dabei, ob zwei Weichen weniger als ein Roco G1 auseinander liegen. Falls ja, werden beide Weichen mit leichter Verzögerung immer passend gestellt. Super hilfreich.

Viele Grüße
Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


   

CS3 Update 2.5.0 und iTrain kann nicht mehr auf S88 zugreifen?
Flackern Der Ws2811 Led's auf der Anlage im Fahrbetrieb.

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz