Alternative Steuerungsmethoden für Trainz

  • OK, wird ein Arduino genommen, hat das Board ja einen USB-Anschluss, sorry, ich dachte an einen einzelnen Prozessor ohne Board...


    Dann wird es ein aufwendigeres Programm, da jede Taste und Tastenkombination ausgewertet werden muss.

    Und woher weißt Du, welche vom PC verstandende Daten welchem Tastendruck und welcher Tastenkombination entsprechen...?


    Jörg

  • Genau dafür ist die Routingtabelle in der PC-Software zutändig!


    Mal ein Beispiel wie ich es umsetzen werde "Lichtschalter":


    am Arduino:

    Schalter für Licht hängt an Klemme 46, Klemme 46 wird in Kanal 46 umgewandelt


    Senden vom Arduino/Einlesen von PC-Software:

    Kanal 1,2,3,...,46,47,....


    Routing in PC-Software:

    Kanal 46 ist ein Schalter -> kann ein/aus -> soll in Trainz der Lichtschalter sein -> Sende Taste "L" an Trainz und merke dir den Zustand


    Demzufolge die Daten (mal mit 8 Bit) beim 1. Durchgang (Variable a für Licht ist false):

    0 auf 255 -> false auf true -> neu"a" ungleich alt "a" -> sende Taste L und merke dir neu"a" als alt"a"

  • MathiasR ,


    einen sehr interessanten Thread hast du hier aufgemacht, und reisst offensichtlich offene Türen ein. :thumbup::thumbup:


    Ich selbst hatte bisher sehr halbherzig nach externen Lösungen gesucht.

    Nein Nicht gesucht; aber angedacht für später. Wollte es mir immer für den 3. Lebensabschnitt aufheben.


    Da die Arduino-Lösung ja selbst eine Mini-SPS ist, ergibt es Sinn, die Ausgänge via USB als TastenCode zum PC zu schicken.

    Quasi als zweites Keyboard.

    Allerdings sehe ich das Problem in der Rückmeldung von Trainz zu Arduino.


    Hast du da eine Idee?

    Was passiert , wenn ich in einer Session von einem Zug zum Anderen springe?

    Wie kann man z.B. Leuchtmelder wieder einlesen?

    N3V hat da wohl noch Nachholbedarf!


    Liebe Grüße

    Jürgen aka Joth

    11010110 10101110 10001010 10101011 01010110 10101110 10101010 11111000

    00110101 01111000 10010101 01010101 11101000 11010101 00101010 11020110


    2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*

  • Joth Genau da hast du den Finger auf den wunden Punkt gelegt: der Rückkanal von Trainz.


    Ich habe zwar schon eine Idee dazu aber das ist noch nicht so konkret wie der Hinweg. Mikas Hinweis mit dem Fenster aus Trainzscript ist es wert da mal weiter zu grübeln. Ich muss mich da aber erstmal noch ein bisschen einlesen. Er sagt zwar das man keine einzelnen Pixel setzen kann aber wenn ich das richtig gelesen kann man Bilder anzeigen lassen. Die können ja 1x1 Pixel groß sein. Solange die an der gleichen Stelle auf dem Bildschirm bleiben kann man die auslesen und somit Daten übertragen.

  • ujb1 einfach gesagt hat man als "Enduser" eingangseitig eine Klemm/Pinleiste ...

    Entweder ich bin nicht verstanden worden oder ich habe mich so scheps formuliert,

    dass man mich nicht verstehen konnte. Ich bin raus aus der Nummer. Macht mal so

    weiter, wenn es Euch Spaß macht.

    Es sprach der Zeitungsredakteur: Eine Schlagzeile muss her!

    Ich glaube fast das isse: Hornist erschlägt Hornisse

    (c) E. H. Bellermann


    Die Politik tut mehr für Bildung.

    Aus dem 'Hohlspiegel': "Stadt pumpt mehr Geld in Schulklos."

  • MathiasR

    Das könnte schwierig werden, zumal nicht jeder mit der selben Bildschirm-Größe fährt.

    Einige fahren mit 2 Monitore, andere mit Dreien. Und dann noch Fullscreen oder Resized....

    Wo sind die kleinen Pixelchen?

    11010110 10101110 10001010 10101011 01010110 10101110 10101010 11111000

    00110101 01111000 10010101 01010101 11101000 11010101 00101010 11020110


    2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*

    Einmal editiert, zuletzt von Joth ()

  • MathiasR

    Eine andere Lösung wäre ein Zwischenspeicher für jeden Zug mit den gesetzten Bits direkt im Ardolino

    11010110 10101110 10001010 10101011 01010110 10101110 10101010 11111000

    00110101 01111000 10010101 01010101 11101000 11010101 00101010 11020110


    2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*

  • Entweder ich bin nicht verstanden worden oder ich habe mich so scheps formuliert,

    dass man mich nicht verstehen konnte. Ich bin raus aus der Nummer. Macht mal so

    weiter, wenn es Euch Spaß macht.

    ...Die Klemmleiste, so habe ich das verstanden, und auch so würde ich es machen, stellt die Schnittstelle zwischen User und dem PC dar.

    Der Arduino mit aufgespieltem Programm und der USB-Strippe zum PC entspricht einer Blackbox mit nur eben dieser Klemmleiste zum Anschluss der Eingabegeräte (Taster, Schalter, Poti usw.) und der Ausgänge zu evtl. LEDs.

    Zu den Nummerierungen 1 bis ... gibt es eine Anleitung, an welchen Kontakt welches Bedienelement angeschlossen wird.

    Das macht dann der letztendliche Bastler, der das entsprechende Pult montiert.


    Für Dampflok-Fans könnte es schwierig werden:

    Wer hängt sich schon den Steuerhebel und das Seil der Pfeife an die Decke...


    Ansonsten sollte zur Gestaltung des jeweiligen Pultes alles möglich sein!


    Jörg

  • Joth das Problem bleibt aber bestehen weil man ja nicht weis wann der Zug gewechselt wurde.


    Joerg M genau so kann man das zusammen fassen. Nur die Belegung der Pins ist erstmal frei und wird erst in der PC-Software zugeordnet. Somit ist man offener und belegt sich die Pins nicht von vornherein mit einer festen Funktion. Der eine hat 100 Tasten der andere 10 Potis, usw.


    @all kann man mit TrainzScript möglicherweise eine Textdatei zyklisch öffnen/beschreiben/schliessen?

  • Sebastian Ja und Nein. Das was ich nun umsetze ist ja auch nur ein Umschiffen der Probleme und eigentlich Nonsens wenn es eine vernünftige Schnittstelle wie das von N3V angedachte TNI geben würde. Ich versuche aber von vorn herein so eine Option mit in die Software zu integrieren, da es hoffentlich ja nur eine Frage der Zeit ist bis das in den normalen Versionen Einzug findet...


    Und mir machts halt Spaß...