Hallo Forum!
Nachdem ich schon des öfteren über die Z21 App und die fehlenden Funktionen der WlanMaus gemäckert habe, habe ich nun selbst Hand angelegt.
Bei meinen Recherchen zu dem Thema bin ich auf einen Beitrag im 1zu160 Forum gestoßen, der die selbe ausgangs Problematik hatte wie ich. https://www.1zu160.net/scripte…forum_show.php?id=1105384
Weil man das Rad nicht jedes mal neu erfinden muss, habe ich eiskalt abgekupfert.
Was soll das ding können?
Der Grundgedanke war einen einfachen Handregler zu bauen mit dem Consistbildung möglich ist, am besten so simpel wie möglich. Führende Lok auswählen, mit Tastenkombination in Untermenü wechseln und Lok ohne MU Zuweisung hinzufügen, fertig.
Ebenso soll der Handregler Kabellos und mit Akku sein. Mehr Anforderungen gibt es eigentlich nicht.
Ich will mit dem ding keine Weichen stellen, keine Fahrstraßen schalten und auch keine CVs programmieren. Wie ein Fremo Fred nur eben Kabellos.
Umsetzung:
Zuwerst war die Idee, dann die Ratlosigkeit. Als Automatisierungstechniker habe ich zwar Programmierkentnisse, jedoch nicht ohne Unterstützung einer Software und nicht in dem Ausmaß. Zudem beschränken sich meine C++ Fähigkeiten auf das korrekte Buchstabieren.
Zuerst wurden ein paar Tutorials absolviert, zuerst das Thema Endlos Encoder, dann das Display, Matrix Tastatur und Wifi. eigentlich alles kein Hexenwerk.
Man muss sich nur ordentlich an der Nase nehmen und seine eigenen Programmier Standarts einhalten. Nomenklatur, Programmstruktur usw...
Nachdem alle Elemente erfogreich angebunden und getestet waren ging es an das eigentliche Programm. Ich wusste dass ich eine Lok Datenbank brauchen werde also war dass der erste logische Schritt.
Limitiert durch den Flash Speicher des ESP32 fasst die Datenbank maximal 40 Loks. (9-Stellige ID, 4-Stellige Adresse von 1 -9999, Adresse MU 0-255). Die 9 Stellige ID ergibt sich aus den Anforderungen, Bsp.: BNSF-6735.
Die Datenbank inkl. Menüführung waren mit Abstand die Aufwendigsten Punkte, haben aber einen wichtigen Grundstein der Software gelegt.
Was kann das Ding bis jetzt?
Die komplette Datenbankverwaltung funktioniert bereits, es können Lokomotiven angelegt und auch wieder gelöscht werden. Dabei wird auch überprüft ob Einträge (ID, Adresse) bereits vorhanden sind.
Es können im Fahrmenü Lokomotiven angewählt werden, gefahren werden und die Funktionen 0-9 geschalten werden. Durch den Endlos encoder ist es auch möglich stoßfrei zwischen mehreren fahrenden Loks zu wechseln.
Was soll noch realisiert werden?
als nächstes steht das Consisting an. dadurch dass ich in der Datenbank bereits eine MU Adresse vorgesehen habe, sollte dass kein allzu großes Problem mehr werden. am liebsten würde ich so viele Loks wie möglich in einem
Consist zulassen, in der realität hängt diese Zahl jedoch von der UDP übertragung ab. diesen Punkt werde ich noch austesten müssen wieviel Loks ohne merkbare Zeitverzögerung gleichzeitig angesprochen werden können.
Ebenso fehlen noch sämtliche Einstellungsmöglichkeiten und verschiede Fahr Modi.
Zum them Fahrmodi habe ich noch folgendes vor:
Notching soll global für alle Loks aktiviert werden können. Dabei wird durch wird pro Fahrstufe(Notch 0-8) eine DCC Fahrstufe 0-128 ausgegeben., wobei die Lok nach einer fixen Rampe beschleunigt.
Ist die angewählte Notch kleiner der DCC Fahrstufe, "rollt" die Lok langsam aus. Durch drücken des Encoder Taster wird die Lok aktiv abgebremst.
Ebenso mächte ich in ferner Zukunft die Beschleunigung und Verzögerung von der angehängten Last beeinflussen lassen. dazu soll die Zuglänge in Wagen angegeben werden können.
Wenn alle Funktionen implementiert sind, soll das Projekt in ein ordentliches Gehäuse mit 2,4" Display umziehen aber dass ist noch Zukunftsmusik!
Es bin ich ganz schön ins schwafeln gekommen
Das Projekt hat mich die letzten zwei Wochen ganz schön vereinnahmt, gut dass es nun im entstehen ist
Anbei noch ein paar Bilder.
Versuchsaufbau.
Fahrmenü: oben aktuelle Fahrstufe, Mitte: Lok ID und Richtungspfeil, unten: Scale Speed 0-70MPH und Statusanzeige der Funktionen 0-9.
Keine Ahnung warum das Bild gedreht ist ...
Prinzipieller Aufbau sämtlicher Menüs. Mit den Encoderrad wird durch die einträge gescrollt, mit Klick auf den Encoder wird das jeweilige Untermenü ausgewählt.
Lok erstellen: Mit dem Encoderrad wird durch die 9 stellige ID gescrollt, per Klick kann man die aktuelle Stelle bearbeiten und durch drehen A-Z oder 0-9 auswählen.
Ist die ID fertig eingetragen scrollt man zu "weiter" und bestätigt mit Klick. danach kommt man zur Adresseingabe, diese erfolgt per Keypad.
Danach erscheint entweder eine Info dass die Lok erfolgreich angelegt und im EEPROM gespeichert wurde, oder eine Fehlermeldung (Doppelter Eintrag, Adresse belegt, Datenbank voll)