Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:oled:display-steuerung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anleitungen:oled:display-steuerung [2025/10/27 08:12] – [Download des ESP Sketches] raily74anleitungen:oled:display-steuerung [2025/12/07 15:27] (aktuell) – [Erste Übertragung auf den ESP32] fbstr
Zeile 3: Zeile 3:
  
 Zur alten Anleitung (v2.1): [[display-steuerung_v2.1|zur Vorgängerplatine]] Zur alten Anleitung (v2.1): [[display-steuerung_v2.1|zur Vorgängerplatine]]
- 
-<WRAP round alert 80%> 
-Hier entsteht die Anleitung zur überarbeiteten Display-Steuerung für Zugzielanzeiger in Version v3.\\ 
-Die alte Anleitung ist oben verlinkt. \\ 
-**Die Platine ist in Planung und wird erst nach ausgiebigen Tests veröffentlicht.** 
-</WRAP> 
- 
 ==== Aller guten Dinge sind drei ==== ==== Aller guten Dinge sind drei ====
 Mit der ZZA Steuerung v3 wird aus den einzelnen Komponenten endlich ein vollständiges System. \\ Basierend auf Ideen von Tobias, [[https://www.stummiforum.de/t131472f21-Zugzielanzeiger-f-r-den-Bahnsteig-mit-Arduino-2.html#msg1848960|Klaus,]] und Fredddy entwickelte Hardi 2019 einen optimierten Sketch, mit dem es erstmals möglich war, 0,87“ und 0,91“ Monochrom-Displays per DCC-Befehl zu aktualisieren. \\ Mit der ZZA Steuerung v3 wird aus den einzelnen Komponenten endlich ein vollständiges System. \\ Basierend auf Ideen von Tobias, [[https://www.stummiforum.de/t131472f21-Zugzielanzeiger-f-r-den-Bahnsteig-mit-Arduino-2.html#msg1848960|Klaus,]] und Fredddy entwickelte Hardi 2019 einen optimierten Sketch, mit dem es erstmals möglich war, 0,87“ und 0,91“ Monochrom-Displays per DCC-Befehl zu aktualisieren. \\
Zeile 37: Zeile 30:
 Im Anschluss kann direkt der Optokoppler eingesteckt werden. Hier bitte unbedingt auf korrekte Position von Pin 1 achten. Der Punkt auf dem IC zeigt wie im Bild nach unten links. Im Anschluss kann direkt der Optokoppler eingesteckt werden. Hier bitte unbedingt auf korrekte Position von Pin 1 achten. Der Punkt auf dem IC zeigt wie im Bild nach unten links.
  
-{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts02.jpg?640x420|}}+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts02.jpg?600|}}
  
 **Schritt 3**\\ **Schritt 3**\\
-Die Versorgungsspannung (5V) erfolgt über den grünen Stecker mit 3,5 mm Rastermaß. +Die Versorgungsspannung (5V) erfolgt über den grünen Stecker mit 3,5 mm Rastermaß.\\ 
 +<WRAP round important 60%> 
 +**Achtung:** Die Polarität wurde an den MobaLedLib-Standard angepasst.\\ 
 +Bei der Vorgängerplatine war die Polarität vertauscht.</WRAP> 
  
 {{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts03.jpg?600|}} {{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts03.jpg?600|}}
Zeile 86: Zeile 83:
 Bei Zweifach-Displays können die Leitungen SCL, 3V3 und GND mit Y-Verbindungen aufgeteilt werden. \\ Bei Zweifach-Displays können die Leitungen SCL, 3V3 und GND mit Y-Verbindungen aufgeteilt werden. \\
 So können je Wannenstecker zwei Zweifach-Displays, also vier OLEDs betrieben werden (rot/grün). \\ So können je Wannenstecker zwei Zweifach-Displays, also vier OLEDs betrieben werden (rot/grün). \\
 +\\
  
 === Reihenfolge der Displays === === Reihenfolge der Displays ===
Zeile 128: Zeile 126:
 Das TextMessages Tool unterstützt bei der Eingabe der erforderlichen Daten. Dazu gehören in erster Linie die Zugziele, WLAN- und DCC-Einstellungen sowie die Zuordnung der Displays an die jeweiligen Gleise. Nach der Eingabe in die grafische Oberfläche wandelt das Tool die Daten in die benötigte Arduino-Sprache um.  Das TextMessages Tool unterstützt bei der Eingabe der erforderlichen Daten. Dazu gehören in erster Linie die Zugziele, WLAN- und DCC-Einstellungen sowie die Zuordnung der Displays an die jeweiligen Gleise. Nach der Eingabe in die grafische Oberfläche wandelt das Tool die Daten in die benötigte Arduino-Sprache um. 
  
-Mit dem Tool können mehrere JSON-Dateien angelegt, bearbeitet und in den Sketch umgewandelt werden. So lassen sich beispielsweise unterschiedliche Ziele je Bahnhof verwalten. Dabei kann der Sketch immer derselbe sein, bei dem lediglich die Text_Messages.h vor dem Upload ersetzt wird. +Mit dem Tool können mehrere JSON-Dateien angelegt, bearbeitet und in den Sketch umgewandelt werden. So lassen sich beispielsweise unterschiedliche Ziele je Bahnhof verwalten. Dabei kann der Sketch immer derselbe sein, bei dem lediglich die Text_Messages.h vor dem Upload ersetzt wird. 
 + 
 +Um das TextMessages Tool nutzen zu können, ist - sofern durch die MobaLedLib noch nicht geschehen - die Installation von Python erforderlich. \\ 
 +=> https://www.python.org/downloads/
  
 **Zugziele**\\ **Zugziele**\\
Zeile 135: Zeile 136:
 Im Reiter Zugziele werden alle gewünschten Ziele je Zuggarnitur definiert. Es empfiehlt sich, die Ziele an eine bestimmte Lokomotive zu binden, da das Steuerungsprogramm (z. B. iTrain) diese Lok abfragen kann. Um einen Überblick der zugeordneten Ziele zu erhalten, kann zu jedem Ziel der Name der jeweiligen Lok hinzugefügt werden. Nach diesem Namen kann man später auch suchen. Es empfiehlt sich, hier die Baureihe einzutragen.  Im Reiter Zugziele werden alle gewünschten Ziele je Zuggarnitur definiert. Es empfiehlt sich, die Ziele an eine bestimmte Lokomotive zu binden, da das Steuerungsprogramm (z. B. iTrain) diese Lok abfragen kann. Um einen Überblick der zugeordneten Ziele zu erhalten, kann zu jedem Ziel der Name der jeweiligen Lok hinzugefügt werden. Nach diesem Namen kann man später auch suchen. Es empfiehlt sich, hier die Baureihe einzutragen. 
  
-Die DCC Adressen werden vom Sketch fortlaufend vergeben. Daher bietet das Tool keine Möglichkeit zur Sortierung der Ziele (z. B. nach Baureihe), da die Neusortierung zu Abweichungen mit der Programmierung im Steuerungsprogramm führen würde. +Die DCC Adressen werden vom Sketch fortlaufend vergeben. Daher bietet das Tool keine Möglichkeit zur Sortierung der Ziele (z. B. nach Baureihe), da die Neusortierung zu Abweichungen mit der Programmierung im Steuerungsprogramm führen würde
 + 
 +Die hier einzutragende Adresse für das erste Zugziel richtet sich nach der DCC Startadresse (n), die im Reiter „Einstellungen“ eingetragen wird und der Anzahl der angeschlossenen Gleise. Sie dient als Orientierung und hat keinen Einfluss auf das Programm
  
 +^ Gleise ^ DCC erstes Ziel ^
 +| bis zu 2 | n+4 |
 +| bis zu 4 | n+6 |
 +| bis zu 6 | n+8 |
 +| … | |
 +| bis zu 32 | n+34 |
  
 **Gleis Zuordnung**\\ **Gleis Zuordnung**\\
Zeile 144: Zeile 153:
  
 Die SDA Anschlüsse werden entsprechend der vorgenommenen Verdrahtung angegeben (siehe „Reihenfolge der Displays“). Für ein vierfaches Doppeldisplay sind das in der Regel zwei Gleise mit jeweils zwei Ausrichtungen. Dieses vierfache Doppeldisplay belegt jeweils eine Reihe zweier Doppelspalten (z. B. SDA 0 und 2 für Gleis 1 L/R und SDA 3 und 1 für Gleis 2 L/R). Die Gleisseite lässt sich für zwei Doppelspalten auch in der Reihenfolge L/R/R/L eintragen, was von der Logik eher dem Aufbau der Adapterplatine (750) entspricht. Die SDA Anschlüsse werden entsprechend der vorgenommenen Verdrahtung angegeben (siehe „Reihenfolge der Displays“). Für ein vierfaches Doppeldisplay sind das in der Regel zwei Gleise mit jeweils zwei Ausrichtungen. Dieses vierfache Doppeldisplay belegt jeweils eine Reihe zweier Doppelspalten (z. B. SDA 0 und 2 für Gleis 1 L/R und SDA 3 und 1 für Gleis 2 L/R). Die Gleisseite lässt sich für zwei Doppelspalten auch in der Reihenfolge L/R/R/L eintragen, was von der Logik eher dem Aufbau der Adapterplatine (750) entspricht.
 +
 +Zum besseren Verständnis hier ein Beispiel für drei Gleise, die am Empfangsgebäude des Bahnhofs liegen. Gleis 1 wird mit einem doppelseitigen Einzeldisplay bedient, Gleis 2 und 3 werden über ein doppelseitiges Zweifachdisplay bedient. Das Einzeldisplay nutzt nur zwei der vier Anschlüsse des ersten Wannensteckers, das Zweifachdisplay nutzt alle vier Anschlüsse des zweiten Wannensteckers.
 +
 +{{:bilder:anleitungen:bauanleitungen:740:zza_sda-anschluss.jpg?480|}}
  
  
Zeile 161: Zeile 174:
  
 **Umwandeln**\\ **Umwandeln**\\
-Sind alle Einstellungen korrekt eingetragen, wandelt man mit dem Button „Umwandeln (.h)“ die Werte in die benötigte „Text_Messages.h“-Datei um und ersetzt diese im Verzeichnis „users/user/documents/Arduino/Bahnsteiganzeige_ESP32“. Die "Text_Messages.h" kann übrigens ohne Bedenken ersetzt werden, da das Programm automatisch ein Backup der letzten 20 Konfigurationen erstellt und die ältesten automatisch löscht. Ist die Arduino IDE in einem der beiden Standard-Verzeichnisse installiert, öffnet das Programm nach erfolgreicher Umwandlung sogar den Sketch in der Arduino IDE. Nach einem kurzen Neustart des ESP32 kann der veränderte Sketch nun per WLAN übertragen werden.  +Sind alle Einstellungen korrekt eingetragen, wandelt man mit dem Button „Umwandeln (.h)“ die Werte in die benötigte „Text_Messages.h“-Datei um und ersetzt diese im Verzeichnis „users/user/documents/Arduino/Zugzielanzeiger“. Die "Text_Messages.h" kann übrigens ohne Bedenken ersetzt werden, da das Programm automatisch ein Backup der letzten 20 Konfigurationen erstellt und die ältesten automatisch löscht. Ist die Arduino IDE in einem der beiden Standard-Verzeichnisse installiert, öffnet das Programm nach erfolgreicher Umwandlung sogar den Sketch in der Arduino IDE. Nach einem kurzen Neustart des ESP32 kann der veränderte Sketch nun per WLAN übertragen werden.  
-===== Download des ESP Sketches =====+===== Download und Installation des ESP Sketches =====
  
 <WRAP round box> <WRAP round box>
-[[https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Bahnsteiganzeige_ESP32.zip|{{:bilder:icons:github-mark.png?nolink&50 |}}]]Der Sketch ist hier zu finden:\\ +[[https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Zugzielanzeiger.zip|{{:bilder:icons:github-mark.png?nolink&50 |}}]]Der Sketch ist hier zu finden:\\ 
-https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Bahnsteiganzeige_ESP32.zip \\+https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Zugzielanzeiger.zip \\
 </WRAP> </WRAP>
  
 +==== Erste Übertragung auf den ESP32 ====
 +
 +Es empfiehlt sich, vor dem ersten Übertragen **mindestens** die WLAN-SSID, das WLAN Passwort und den gewünschten ESP-Hostname im Text Messages Tool einzugeben und den Sketch mit diesen Daten **per USB-Kabel** auf den ESP32 zu übertragen. Nach dem Umwandeln der Eingaben in die "TextMessages.h" öffnet sich auf Wunsch die Arduino IDE. Vor dem ersten Upload auf den ESP32 müssen wie gewohnt über "Werkzeuge > Bibliotheken verwalten..." folgende Bibliotheken installiert werden:
 +  * SparkFun I2C Mux Arduino Library
 +  * Streaming
 +  * U8g2
 +  * WiFi
 +  * Arduino_ESP32_OTA
 +  * NmraDcc (wird bei Installation der MobaLedLib bereits installiert)
 +
 +Nachdem die Bibliotheken installiert wurden, muss das richtige Board ausgewählt werden, damit die Arduino IDE den Sketch passend für den ESP32 kompilieren kann. \\
 +Das geht über Werkzeuge > Board > ESP32 Arduino > DOIT ESP32 DEVKIT V1
 +
 +{{:bilder:anleitungen:bauanleitungen:740:esp32_doit_devkit_v1.png?600|}}
 +
 +
 +Der erste Upload <wrap em>muss</wrap> per USB-Kabel erfolgen, weil der ESP32 die WLAN-Daten noch nicht kennt und sich somit noch nicht im WLAN melden kann. Dazu muss unter "Werkzeuge > Port" der richtige serielle COM-Port eingestellt werden. Ab dem folgenden Upload kann hier dann auch unter Port auch die Netzwerk-Schnittstelle ausgewählt werden. Hier sieht man den ESP32 dann mit dem zuvor angegebenen ESP-Hostname.
 +
 +{{:bilder:anleitungen:bauanleitungen:740:esp32_wlan-port.png?510|}}
 ===== Steuerung per DCC ===== ===== Steuerung per DCC =====
 Der größte Clou der Zugzielanzeiger ist die Möglichkeit, den Anzeigentext vom einfahrenden Zug steuern zu lassen. Die Anzahl der benötigten DCC Adressen hängt von der Anzahl der Gleise und der Anzahl der Zugziele ab. Beides zählt der Sketch selbst und erzeugt damit die fortlaufenden Adressen.  Der größte Clou der Zugzielanzeiger ist die Möglichkeit, den Anzeigentext vom einfahrenden Zug steuern zu lassen. Die Anzahl der benötigten DCC Adressen hängt von der Anzahl der Gleise und der Anzahl der Zugziele ab. Beides zählt der Sketch selbst und erzeugt damit die fortlaufenden Adressen. 
anleitungen/oled/display-steuerung.1761552746.txt.gz · Zuletzt geändert: von raily74