Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
anleitungen:spezial:pyprogramgenerator:z21simulator [2020/12/13 17:25] – [Der Z21 Simulator] hlinke | anleitungen:spezial:pyprogramgenerator:z21simulator [2021/01/03 15:43] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== pyProgramGenerator ====== | + | ====== pyProgramGenerator |
- | ===== Der Z21 Simulator ===== | + | ==== Einleitung |
- | Was macht der Z21 Simulator? | + | Der Z21 Simulator |
- | + | ||
- | Mit dem Z21 Simulator kann man den LED-ARDUINO direkt | + | |
Der LED-ARDUINO wird direkt über USB mit dem PC verbunden. | Der LED-ARDUINO wird direkt über USB mit dem PC verbunden. | ||
Zeile 11: | Zeile 9: | ||
Es ist kein DCC-ARDUINO notwendig! | Es ist kein DCC-ARDUINO notwendig! | ||
- | Die Z21 Simulation simuliert gegenüber | + | Bei der direkten Steuerung des LED-ARDUINOs ist der ARDUINO immer mit dem USB-Anschluss des Steuer-PCs verbunden. Nicht nur zum Programmieren. |
+ | |||
+ | Das folgende Bild zeigt die Grundkonfiguration: | ||
+ | |||
+ | {{bilder: | ||
+ | |||
+ | Was sind die Vorteile der direkten Steuerung? | ||
+ | |||
+ | * es reicht die minimal Konfiguration für die MobaLedLib aus - ein ARDUINO, ein 100 Ohm Widerstand und eine 4- oder 6-polige Buchse. | ||
+ | * der Steuerbus der Zentrale und auf dem Gleis wird nicht belastet - gerade bei DCC kann dies ein Problem werden, wenn komplexe Beleuchtungsszenarien geschaltet werden, können Steuerkommandos für Lokomotive verzögert werden. Was beim Bremsen zu ungenauen Haltepunkten führen kann. | ||
+ | * die Informationsübertagung ist etwas schnelle, da die Verzögerung durch die Zentrale und das Protokoll entfallen | ||
+ | * es ist möglich Informationen vom ARDUINO an die Software zurückzumelden, | ||
+ | |||
+ | Die Lösung hat aber auch Nachteile: | ||
+ | * der ARDUINO muss dauerhaft mit dem USB Ausgang des Steuer-PCs verbunden sein. Das hat folgende Konsequenzen, | ||
+ | * über den ARDUINO sind alle Komponenten der MobaLedLib mit der PC Masse verbunden. Die MobaLedLib darf daher auf keinen Fall irgendeine direkte Verbindung zu den Gleisen haben, z.B. für Besetztmeldungen, | ||
+ | * Beim Anschließen von zusätzlichen Netzteilen für die Stromversorgung ist darauf zu achten, dass die +5V Stromversorgung des ARDUINO von der zusätzlichen Stromversorgung auch wirklich getrennt ist. Bei einem Fehler kann der USB Anschluss des PCs zerstört werden. | ||
+ | |||
+ | Das folgende Bild zeigt die minimal Konfiguration: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Wie funktioniert das? ==== | ||
+ | |||
+ | Die Modellbahnsteuerungssoftware muss jetzt irgendwie ihre Kommandos an den ARDUINO über die USB-Schnittstelle schicken. | ||
+ | Da keine Modellbahnsteuerungssoftware - zumindest bis jetzt nicht - die MobaLedLib kennt müssen wir das anders lösen. | ||
+ | |||
+ | Und da kommt der Z21-Simulator ins Spiel. | ||
+ | |||
+ | " | ||
+ | |||
+ | ==== Die Z21-Schnittstelle ==== | ||
+ | |||
+ | Wenn man eine Modellbahnsteuerungssoftware dazu bringen möchte, mit einer neuen Hardware zusammenzuarbeiten, | ||
+ | Hier gibt es mehrere Möglichkeiten. Früher wurde gerne die Intellibox-Schnittstelle dazu verwendet. | ||
+ | |||
+ | Seit ROCO seine Z21 Zentrale auf den Markt gebracht hat, die Beschreibung der Schnittstelle | ||
+ | |||
+ | Wir müssen also eine Software auf dem PC laufen lassen, die die Z21-Schnittstelle simuliert und der Modellbahnsteuerungssoftware vorgaukelt sie wäre eine Roco Z21. Und diese Software ist der Z21-Simulator. | ||
+ | |||
+ | Was die Z21 Schnittstelle so interessant macht, ist, dass sie ein LAN Protokoll ist. Das heißt, der Z21-Simulator | ||
+ | |||
+ | ==== Die ARDUINO-Schnittstelle ==== | ||
+ | Die andere Schnittstelle des Z21-Simulators ist die USB-Schnittstelle. Genauer gesagt wird über die USB-Schnittstelle eine serielle Kommunikation simuliert. Diese serielle Kommunikation entspricht genau der Kommunikation zwischen dem DCC-ARDUINO und dem LED-ARDUINO, | ||
+ | Für den LED-ARDUINO ist es deshalb überhaupt kein Unterschied, | ||
+ | |||
+ | Wichtig zu wissen ist, dass der LED-ARDUINO im DCC-Modus programmiert werden muss, damit er mit dem Z21-Simulator zusammenarbeiten | ||
+ | |||
+ | ==== Wie startet man den Z21-Simulator? | ||
+ | Der Z21 Simulator kann folgendermaßen gestartet werden: | ||
+ | - Über den Startbutton auf der Z21-Simulator-Seite | ||
+ | - Automatisch beim Start des pyProgrammGenerators durch eine Kommandozeilenoption | ||
+ | |||
+ | === Start des Z21-Simulators mit Startbutton === | ||
+ | |||
+ | - ARDUINO an den USB-Anschluss des PC anschließen | ||
+ | - pyProgrammGenerator starten | ||
+ | - auf der ARDUINO-Einstellungen-Seite überprüfen, | ||
+ | - die geänderten Einstellungen speichern | ||
+ | - den Reiter Z21-Simulator auswählen | ||
+ | - der Z21-Simulator wird gestartet. Im Meldungsfenster wird angezeigt, dass der Port für den Z21-Simulaor geöffnet wurde. Außerdem wird die IP-Adresse des PCs angezeigt. Diese IP-Adresse wird nachher beim Einrichten der Modellbahnsteuerungssoftware oder der Smartphone-App benötigt.In der Status-Zeile ganz unten wird die Meldung angezeigt, dass eine Verbindung zum ARDUINO aufgebaut wird. {{ : | ||
+ | - Wenn alles funktioniert hat, und der Z21-Simulator | ||
+ | - Jetzt kann die Modellbahnsteuerungssoftware oder die Smartphone App die MobaLedLib steuern. Wie das genau geht, wird weiter unten beschrieben. | ||
+ | |||
+ | === Start des Z21-Simulators über Kommandozeilenoption === | ||
+ | |||
+ | Da es nicht sehr komfortabel ist, jedes mal, wenn man die MobaLedLib mit der Modellbahnsteuerungssoftware steuern möchte, den Z21-Simulator von Hand zu starten, gibt es eine Kommandozeilenoption, | ||
+ | |||
+ | Die Option zum einschalten des Z21-Simulators lautet: --z21simulator True | ||
+ | |||
+ | Die komplette Kommandozeile würde also so aussehen: pyProg_Generator_MobaLedLib --z21simulator True | ||
+ | |||
+ | ACHTUNG: Diese Funktion ist in Vorbereitung und noch nicht implementiert! | ||
- | {{: | ||