Hallo,
angeregt durch die verschiedenen Berichte von Messwagen, habe ich mir meinen Wagen auch gebaut. (noch nicht ganz fertig)
Verwendet habe ich:
Wemos D1 mini Modul, da ist ein ES8255 Chip drauf und ein paar Ein/Ausgänge.
0,92" OLED Display, damit der Wagen auch mal schnell so was anzeigen kann.
Lipo 500mA, 3,7V Akku,
Ladeelektronik für Lipoakku max 2A.
Step Up Wandler eingestellt auf 5,1V.
Hallsensor 3144 mit mini Neobdym Magnet auf Achse geklebt.
Lochrasterplatine mit Gleichrichter, 7805 Regler und der Verdrahtung für alles.
Der Akku wird geladen wenn man den Wagen auf die Schienen stellt.
Da ich nicht so ganz fit in Programmierung in C oder C++ bin, kann ich meinen Sketch so noch nicht zeigen. Der ist sowieso in Eclipse gemacht, da hat mir mein Sohn geholfen das einzurichten (nebenbei bemerkt, so eine IDE ist bestimmt schön, aber ich komme noch aus der Zeit, als man noch wußte wo man was hingespeichert hat. Ich verzweifel manchmal weil ich wieder nicht weiterkomme und ich nicht verstehe wo das Problem sitzt (natürlich vor dem Screen, klar)).
Fragen zur Software bitte nur allgemein stellen. Ist ja auch noch nicht fertig.
Die PC Software erstelle ich in LabView, das kann ich viel besser.
Das Ganze läuft so ab:
Zuerst stellt der Messwagen ein Accespoint zur Verfügung. Mit dem Laptop logge ich mich ein und gebe SSID und Passwort ein. Damit loggt sich der Messwagen ein und versucht dann über Port 2055 sich mit meinem PC Programm zu verbinden.
Dann sendet der Messwagen die Geschwindigkeit umgerechnet in Scale Meter/Sekunde, Scale km/h und Scale Miles/h. Warum Miles, na weil ich eben amerikanisch unterwegs bin. Und weil man da auch mal 7fach Traktion fährt, ist ein guter Abgleich der Loks untereinander schon wichtig.
So, dann habe ich eine Intellibox 1. Die ist etwas zickig über die RS232 aber das Loconetprotokoll erschließt sich mir noch nicht, das wird vielleicht noch. Also benutze ich ein paar Kommandos des P50X Protokolls um POM, Programming On Main zu machen.
Ich sende also eine Fahrstufe(es geht nur 128 über das Protokoll) und die Lok fährt nun los, die Geschwindigkeit wird an den PC gesendet und es wird anhand der Vorgabe die zur Fahrstufe gehörenden CV erhöht oder verringert. Immer um 1. Sobald die Geschwindigkeit passt geht es zur nächsten Fahrstufe, bis eben alle 28 Stufen eingestellt sind.
Das kann schon mal ein paar Minuten dauern, aber es ist ja automatisch.
Ein paar Gemeinheiten haben die Decoder Hersteller eingebaut.
Alle ESU ab 4.x Haben keine Tabellenwerte CV67 und CV94. Dafür muss man 2 und 5 verwenden. Das hat aber zur Folge, dass man zwingend erst die Maximale, dann die Minimale Geschwindigkeit einstellen muss. Weil, wenn mann die maximale am Ende macht wird das auf die ganze Tabelle übertragen. Also habe ich hier Settings für verschiedene Decoderhersteller und Varianten, diese werden in einer Configurationsdatei gespeichert und kann also editiert werden. Da muss ich vielleicht noch Decoderfiles erstellen, wie ist noch offen.
Die Aufteilung der 28 Werte auf die 128 Fahrstufen ist auch nicht einheitlich. Da es nirgends Dokumentiert ist, muss man das mühsam von Hand erarbeiten. Ich habe aber fast nur ESU, da hält sich das in Grenzen.
Aktueller Stand, bzw. Probleme:
1. Im Grunde kann ich jetzt meine Loks automatisch abgleichen, das geht schon gut.
2. Es fehlt aber die Dokumentation zum Laden und Speichern von Ergebnissen.
3. Manchmal will das Wemos Modul nicht starten, dann muss man den Akku abklemmen und einen Moment warten.
4. Die Konfiguration des Webinterfaces ist noch nicht funktionsfähig.
5. Das Feintuning der Messwerte zur Glättung und Toleranzbestimmung ist noch in Arbeit, sehr langwierig.
6. Die PC-Software hat noch ein paar Bugs, will als nicht abgleichen z.B. das muss ich noch suchen.
7. Ich will in meiner Freizeit auch noch andere Sachen machen, von daher weiß ich nicht wie es da weitergeht zumal meine Geduld mit Eclipse sich dem Ende neigt und ich mir was einfacheres zulege.
Hier noch ein paar Bilder.
Entwicklungsumgebung:
Der Messwagen The Chiller:
Bedienoberfläche:
Und das dazugehörige Programm (eben LabView, keine Textbasierte Programmiersprache)
Sowie ich weiter bin, kommt noch mehr.