fidoriel
02.02.2021, 18:48

Editiert von
fidoriel
05.12.2021, 21:48

+9track38 - Mein Projekt zur Steuerung (jeder) LEGO Eisenbahn von Win, macOS und Linux

Hallihallo,

heute hat meine Steuersoftware einen vorzeigbaren Status erreicht. Alle Funktionen, die schon Implementiert sind, funktionieren auch so, wie sie sollen. Zuerst aber einmal zu meinem Projekt:
track38 ( wegen 38mm Spurweite;) ) ist eine Software zur Steuerung von Lego Modelleisenbahn, genauer PowerFunctions ( und die PF 9V Brücke ), sowohl als auch 9V RC, wie in den ersten City Zügen und Powered Up. ( RC und UP sind noch nicht oder unvollständig implementiert )
Sie kann auch Weichen schalten. Aktuell verwende ich noch 4D Brixx' 3d gedruckte Weichenschalter, aber Arbeite sowohl an meinem eigenen 3D druck wie auch an einer reinen Lego Lösung ohne Fremdteile für den Puristen in mir.
Sämtliche Züge können ohne die Physische Verbindung von LEGO und nicht LEGO gesteuert werden. Die IR LED(s) muss/müssen nur richtig ausgerichtet werden. Bei Bluetooth ist das ja bekanntlich obsolet.

PF und RC 9V:
Hierfür wird ein Arduino Microcontroller und eine 940nm IR Led wie auch ein Widerstand benötigt.

Weichen:
Gleicher Arduino wie oben. Bis zu 20 Weichen pro Arduino (theoretisch).

Aktuell Arbeite ich an einer Powered UP Implementierung, die aber noch auf sich warten lassen muss ( Abiturvorbereitung ):
Powered UP soll erst einmal unabhängig vom OS über einen esp32/8266 laufen. ( theoretisch bis zu 9 Hubs pro esp )
Dieser kann natürlich auch die Weichen und PF/RC Züge steuern.
Diese Kombinationen ermöglichen nahezu unbegrenzte Möglichkeiten zig Weichen und Züge. Mit Verlängerungen kann so auch die IR Reichweite z.B. bei Schattenbahnhöfen und riesigen Anlagen ermöglicht werden. Z.B. IR Scheinwerfer, mehrere LEDs an der Decke verteilen etc.

Später möchte ich dann auch native Implementierungen für macOS und Linux schreiben. Vielleicht auch Windows 10, nutze ich aber nicht ( bei XP und 7 ist es nicht ganz so einfach, ich glaube da lohnt sich die Arbeit nicht ).

Warum track38?
track38 wird entwickelt um eine Alternative zu nControl zu sein. nControl hat ein Abomodell. Ich hasse Abomodelle. Ich habe kein Problem Software zu kaufen, jedoch mag ich die Art und Weise des Bezahlen pro PoweredUp Hub oder Jahr nicht. Es handelt sich schließlich nicht um Raketentechnologie, die sich Monatlich weiterentwickelt und wo sehr viel neue Hardware und Technologien Einzug erhalten und daher täglich updates benötigt.
Die Microcontroller-Kompatibilität kommt erst durch das Abo, aber wie gesagt, es ist ein Abo.
Des Weiteren mag ich die doch zugegebener maßen sehr schöne UI von nControl nicht. Die UI zwingt einen sich and die LEGO Geometrie zu halten, oder die 4D Brixx Produkte zu verwenden und ist, meiner Meinung nach nicht Intuitiv. Deswegen ist track38 darauf ausgelegt intuitiv zu sein, und nur die wichtigsten Funktionen übersichtlich zu bieten.
Der Schienenplan wird Abstrahiert mit Symbolen wie in einer echten Zugleitstelle dargestellt. ( Ermöglicht eine schematische Darstellung )
Am Wichtigsten, es ist Lockdown und ich hatte nichts zu tun.

Zur technischen Seite ( bitte bei Nichtinteresse überlesen ):
C und C++ 11
GUI-Framework: wxWidgets 3.1.4
Architektur/System:
Windows: aktuell noch i386 ( minGW Toolchain ) später auch 64Bit, wie gesagt, Windows nutze ich nicht. Einfach nur weil es Funktioniert.
macOS x86_64 später auch Apple Silicon ( ich muss es vermutlich nur neu Kompilieren )
Linux: aktuell x86_64 und armhf ( nur Raspberry Pi ) deployd als AppImage
Abhängigkeiten auf allen Systemen: Nur standard Libraries.
Ziel ist es Irgenwann eine PlugAndPlay Lösung mit eigenem PCB anzubieten und "nur die Fernbedienung zu ersetzen": Keine Fremdteile, Kein Physischer Kontakt mit LEGO. Also eine Puristenkompatibilität zu schaffen, die wirklich für jeden Funktioniert, also auch jemand der nicht weiß, was Arduino ist und wo man eine 940nm IR LED bekommt.

Wenn Interesse besteht ( bitte für Cloud Link PN schreiben ), kann ich gerne für eines oder mehrere der Zielsysteme eine Public Beta bereitstellen ( incl. Anleitung für Arduino ). Bitte verzeiht mir wenn evtl. noch Bugs oder Deploy-Fehler enthalten sind, ich habe gerade nicht so viel Zeit zum Debugger und Bugfixen wegen Abivorbereitung.
Für Fragen, Ideen, Inspiration oder Kritik stehe ich natürlich bereit.
LG fidoriel

Noch ein Paar Fotos: keine von der Linux UI ( GTK ) oder Raspberry PI, da ich gerade keinen Zugang dazu habe ( Homeoffice ). Bei bedarf kann ich die noch Nachreichen.

Arduin mit IR LED:

[image]



macOS UI:

[image]


[image]


[image]



Windows UI:

[image]



EDIT:
richtiges Bild



Lok24 , celticdragon , Legosaurus , railtobi , tmctiger , Pjusket , Thomas52xxx , JuL , Xris gefällt das (9 Mitglieder)


batze
07.02.2021, 08:04

Als Antwort auf den Beitrag von fidoriel

Editiert von
batze
07.02.2021, 08:04

Re: track38 - Mein Projekt zur Steuerung (jeder) LEGO Eisenbahn von Win, macOS und Linux

Würde mir die Arbeit Mac zu unterstützen vielleicht garnicht machen. So ein Raspberry Pi kostet ja nicht viel und ein oller Windows-Laptop gebraucht noch weniger. Da sollte niemand auf seinen Mac angewiesen sein bzw. Dualboot gibt es ja auch noch.



fidoriel
07.02.2021, 15:29

Als Antwort auf den Beitrag von batze

Editiert von
fidoriel
07.02.2021, 15:31

+1Re: track38 - Mein Projekt zur Steuerung (jeder) LEGO Eisenbahn von Win, macOS und Linux

batze hat geschrieben:

Würde mir die Arbeit Mac zu unterstützen vielleicht garnicht machen. So ein Raspberry Pi kostet ja nicht viel und ein oller Windows-Laptop gebraucht noch weniger. Da sollte niemand auf seinen Mac angewiesen sein bzw. Dualboot gibt es ja auch noch.


Da hast du vermutlich recht. Trotzdem: ich muss dass sowieso für Win und Linux nativ implementieren, weshalb ich die Funktionen/Methoden sowieso schreiben muss. Dann nur noch ein Objective-C++ Wrapper für Cacao. Raussuchen muss ich das Bluetooth Protocol sowieso, einfach nur eine andere Funktion nutzen. Dafür spricht, dass immerhin jeder halbwegs neue Mac das richtige Bluetooth hat. Oberste Priorität hat Linux, dann mal sehen.
track38 liegt jetzt erstmal auf Eis bis ich ABI habt...

LG

Vergessen zu erwähnen habe ich, dass PoweredUp dann die Verwendung mehrerer Motoren an einem Zug unterstützen soll, einen Battery Monitor wird es für Powered up hoffentlich auch geben...



Pjusket gefällt das


Lok24
07.02.2021, 15:47

Als Antwort auf den Beitrag von fidoriel

Editiert von
Lok24
07.02.2021, 16:43

Re: track38 - Mein Projekt zur Steuerung (jeder) LEGO Eisenbahn von Win, macOS und Linux

fidoriel hat geschrieben:

Vergessen zu erwähnen habe ich, dass PoweredUp dann die Verwendung mehrerer Motoren an einem Zug unterstützen soll, einen Battery Monitor wird es für Powered up hoffentlich auch geben...

Ja, die Hubs melden BatteryLevel und BatteryVoltage, wenn ich mich recht erinnere.