Beiträge von MacG

Discord Einladung
Trete unserem Discord-Server bei (klicke hier zum Beitreten).

    Problem gelöst. :D Ich bin dazu übergegangen einen vorhandenen Sketch anzupassen. Dieser sucht nun nach Start- und End-Markern im Datenpaket.
    Der Sketch zeigt auf meinen Drehspulinstrument die Geschwindigkeit bis 50 an.

    Anbei noch mein Programm welches mit 115200 Baud nur die Geschwindigkeit über USB überträgt. Als IP ist für die TS-Bridge fest 127.0.0.1 eingestellt. Der Port ist 47811. Ihr müsst nur noch Euren COMPort vom Arduino eintragen. Die Voreinstellung ist COM5. Darunter werden die ControllerIDs von der gewünschten Lokomotive eingetragen. Die Werte von Throttle und Dynamische Bremse sind nicht unbedingt notwendig. Das sind nur Überbleibsel, da ich das Programm ursprünglich für Versuche zur Berechnung von Beschleunigung und Wegstrecke geschrieben habe. Die Tasten funktionieren, bei laufender TCP-Verbindung, nicht immer sofort. Ihr könnt mit "Connect to server" die Controller-Liste der aktiven Lok abrufen und dann mit "Stop connection" die Verbindung trennen. Danach kann man die IDs raus suchen und eintragen. Ein erneuter Klick auf "Connect to server" nutzt dann Eure Werte. Viel Spaß damit!


    Bei Gelegenheit werde ich es anpassen, dass eine kleine Liste von Daten übertragen werden kann. Ich weiß noch nicht, ob ich die COM-Verbindung in den TS-Fireman einbaue oder ein extra Programm dafür schreibe.

    Ich habe mir ein kleines Programm geschrieben, welches den Wert vom TS für die Geschwindigkeit einer bestimmten Lokomotive überträgt. Die gesendeten Daten haben eine Länge von 6 Bytes. Leider bekomme ich sie nicht richtig verarbeitet. Auch nach Stunden finde ich den Fehler nicht.


    Hier sind meine Zeilen für den Arduino:


    Edit: gelöscht, da fehlerhaft


    Vielleicht hat einer von Euch einen Tipp. Der Sketch kontrolliert nicht die Länge der Nachricht, muss er das? Die serielle Ausgabe vom Arduino des verarbeiteten Wertes zeigt auch manchmal zwei Punkte (gleich dem Komma in der Maschinensprache), also z.Bsp. .0049. bei einem gesendeten Wert von 39.139 ?(


    Mein Programm mit einstellbaren COM-Port und wählbarer TS-ControllerID kann ich dafür zur Verfügung stellen. Diese beide Funktionen muss ich aber noch einbauen. ;)

    Also auf Seite 5 steht es so, wie von @Thor beschrieben.


    @zero909 war schneller. Dafür habe ich es mal übersetzt. ;)

    Das ist echt umfangreich, was das Modell so zu bieten hat. Das Handbuch ist entsprechend dick. Da sieht man, was mit dem alten TS so alles möglich ist.


    Es wäre interessant die mit meinem AAR Control Stand zu steuern. Der muss aber erst mal fertig gebaut werden und dann hat die GE AC4400 einen Desktop Stand. Deshalb kann ich die nicht unerhebliche Investition guten Gewissens aufschieben. Weil ich, zum Glück, dieses Pult nicht nachbaue. Ansonsten wäre die Lok ein "must have". ;)

    Das Problem mit dem Verbindungsabbruch konnte ich leider noch nicht eingrenzen. Irgendwie ist es nicht nachvollziehbar. Es passiert, aber ich weiß nicht warum.


    Hier mal ein Screenshot vom Serial Monitor, wenn der Fehler auftritt.



    Edit am 04.08.2019: Das Programm von Jáchym bekomme ich nicht zum Laufen. Es will bei mir nicht so recht. Auch ist der Beispiel-Sketch für den Arduino sehr lang, in tschechisch und unkommentiert, so dass ich ihn nicht verstehe. Weil mir eigentlich die Lösung mit nur einem Kabel gefällt, habe ich mir mal eine einfache serielle Kommunikation zwischen Windows und Arduino angeschaut. Eine LED kann ich schon mal ansteuern. Jetzt gilt es, das Ganze noch mit dem TS zu verbinden. *teetrink*

    Die Länge gibt es. Nennt sich GetConsistLength. Nur im Script nützt es mir nichts, denn ich möchte es extern anzeigen lassen. Ab besten wäre die Abrufbarkeit via TCP-Server (TS-Bridge).


    Das Lua Plugin muss dann in jede Lok eingearbeitet werden. Das ist auch nichts für mich. Mit einem einfach programmieren Wegstreckenzähler kann ich schon die ungefähre Länge bestimmen. Bei dem Speed-Limit hilft nur Streckenbeobachtung bzw. -kunde. ;)

    Weil ich auf der Suche war, ob es neben der raildriver.dll noch eine andere Quelle für Daten aus dem TS gäbe, stieß ich auf folgenden Seite.


    https://sites.google.com/a/railsimdev.com/dtgts1sdk/home


    Mir half sie nicht weiter, aber vielleicht ist sie für den einen oder anderen Entwickler von Interesse. Speziell war ich an den Daten für die Zuglänge und die Streckenhöchstgeschwindigkeit interessiert. Aber die stehen wohl nur im Scripting zur Verfügung und werden nicht nach "Außen" geleitet.

    Das hatte ich mir fast gedacht, dass es als Teilelieferant dienen soll.


    Als Richtungswender sollte der Joystick funktionieren. Da es in alle Richtungen Taster sind, wird die Stellung nicht angezeigt. Mit der Belegung von vor, zurück und einer Seite, kann man an den TS die entsprechenden Befehle für Vorwärts, Rückwärts und Neutral senden.

    Heute mal aushilfsweise ein Foto. Anders lässt sich der Bildschirminhalt und das Rundinstrument zusammen auch nicht einfangen. ;)


    Nach längerer Zeit habe ich ein Update gemacht (der PC ist fast immer offline) und danach hat zwar "Strg-S" im Spiel wie immer ausgelöst, aber die Bilder waren auf der Festplatte nicht zu finden. Ein weiteres Problem ist das Licht. Morgen muss ich mal schauen, ob jetzt überall der Hauptscheinwerfer dunkel bleibt oder ob dies nur bei meiner neuen Strecke Soldier Summit der Fall ist. Der Lichtkegel ist aber vorhanden. ?(


    Hier nun der Schnipsel Code für die Ausgabe eines TS-Wertes auf einem Drehspulinstrument.

    In dem Sketch in meinem 2. Posting muss noch dessen Zeile 166 angepasst werden.

    C: TS-TCP-Client.ino
    for (i = 0; i < 4; i++) {  // i is the index number of the array = number of the TS ControllerIDs


    Ich habe mir ein 270° Drehspulinstrument mit einem Messbereich von 0-500µA gekauft. Mit mit einem Vorwiderstand von rund 9,2kOhm in Reihe funktioniert es nun wie ein Voltmeter mit einem Bereich von 0-5V. Angeschlossen ist es an GND und den Pin 9 vom Arduino. Mit max 0,5mA wird der Ausgang kaum belastet. Jetzt muss nur noch eine neue Skala erstellt werden.


    map(TS-Wert, Min-TS-Wert, Max-TS-Wert, Min-Output, Max-Output)


    Da die Funktion map() nur Ganzzahlen kennt, multipliziere ich für eine höhere Genauigkeit den Wert vom TS mit 10. Das gilt dann ebenfalls für die Min- und Max-Werte. Die Ausgabe erfolgt als PWM mit einer Spannung von 0 bis 5 Volt (0 bis 242). 242 weil mit 255 mehr als 5 Volt von meinem Arduino ausgegeben werden. Der Max-Wert ist vorerst nur 500. Weil es besser zur Skala passt. Somit lasse ich nur max 50 anzeigen.


    Die Ausgabe auf dem Serial Monitor von Arduino oder vom Hercules Tool bricht immer öfters, nach einer Hand voll Anfragen, zusammen. Die Verbindung wird dann unterbrochen. Bezüglich der Ursache bin ich weiterhin überfragt. ?(


    EDIT: nach mehrfacher Benutzung des Arduino-Reset-Buttons, lief es irgendwann ohne Probleme.

    Das Fahrpult ist schön und einfach. *perfekt* Hätte ich meines mal so gebaut, wäre ich längst fertig. ;)
    Noch drehe ich die Potentiometer direkt. Mit diesem Provisorium fahre ich schon seit 3 Jahren. Nebenbei habe ich ja auch an der Joystick-zu-TCP Software gebastelt.


    Auch wenn ich ein Arcaze-USB-Interface nutze, bin ich gern bereit den Arduino-Sketch von Dir hier zu erläutern. Es ist ja ebenfalls ein USB-Interface und einen Arduino benutze ich für die Anzeige von Daten.


    Siehe mein Projekt TS-TCP-Client für Arduino und der Vollständigkeit halber mein Projekt zu einem amerikanischen Fahrpult.

    Eine Krauss Maffei ML-4000 würde mir gefallen. In der ersten, geschlossenen Version. Ich benötige sie zwar für jenseits vom Atlantik, aber sie war auch in Deutschland und Östereich (Semmering) zu Testfahrten und er Überführung zum Hafen unterwegs.

    Obwohl es hier keine direkte Resonanz gibt :( , wollte ich Euch nicht vorenthalten, dass es wohl auch eine Lösung für eine direkte Kommunikation über USB gibt. Genauer gesagt eine serielle Kommunikation (COM).


    Ich selbst habe mir das Programm RailDriverToCom von @JachyHm noch nicht angeschaut. Es gibt aber User, welche es erfolgreich einsetzen. Die Links zum Programm und zu Arduino-Beispielen sind in einem Antwort-Kommentar des Videos versteckt.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    the English version of my text:
    Although there is no direct resonance here :( , I didn't want to deny you that there is a solution for direct communication via USB. More precisely a serial communication (COM).


    I myself haven't looked at the program RailDriverToCom from @JachyHm yet. But there are users who use it successfully. The links to the program and to Arduino examples are hidden in a reply comment of the video.