Seite drucken - I²C-Bus Signale ansteuern

windigipet.de

Win-Digipet - deutsche Foren => Win-Digipet allgemein => Thema gestartet von: Pattafix95 in 10. Mai 2022, 14:37:42

Titel: I²C-Bus Signale ansteuern
Beitrag von: Pattafix95 in 10. Mai 2022, 14:37:42
Hallo Liebe WDP Gemeindschaft,

Ich arbeite gerade an meiner Hochschule als Projekt an einem Eisenbahnbetriebsfeld. Die Anlage ist soweit schon mit Weichenantrieben und Rückmeldern versehen, was bisher auch alles Funktioniert. Nun geht es an die Ansteuerung der Signale. Hierbei handelt es sich um selbst gedruckte Signale mit LED´s welche mittels Arduini und I²C-Bus angesteuert werden, wenn die Anlage statt mit WDP durch Drucktastenstellwerkspulte gestellt wird. Gibt WDP da eine Möglichkeit her, die Signale irgendwie anzusprechen oder ein Datenprotokoll "abzufangen" welches dann übersetzt werden kann? Zudem sollen die Signale auch mehr als die möglichen 4 Stellungen anzeigen: Hp0, Hp1, Hp2, Zs1, Zs7 und Sh1.

Aktuell läuft die Steuerung der Loks und Weichen über eine Z21. Die Weichen sind an m83 Decoder von Märklin angeschlossen. Die Gleisrückmeldung läuft über LDT S-88 Bus.

Über Lösungsideen würe ich mich sehr freuen.

Grüße
Patrick
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Markus Herzog in 10. Mai 2022, 17:06:31
Hallo Patrick,

du willst also die Eingaben vom Drucktastenstellpult in WDP angezeigt bekommen. Korrekt?

Wenn ginge das indem du die Drucktastenstellpulteingaben parallel auch als Rückmeldungen in WDP einspeist und dann via Stellwerkswärter die Stellungen im Gleisbild änderst.
Ansonsten könnte ich dir das WDP-Mobile-Protokoll geben und ihr simuliert quasi externe Eingaben wie als wenn sie von einem Tablet kämen.

DAs wären so die ersten beiden Ideen. Aber direkt "Out-Of-The-Box" gibt es da nichts fertiges. Da ist auf jeden FAll basteln angesagt.

Grüße
Markus
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Pattafix95 in 11. Mai 2022, 07:01:32
Hallo Markus,

Die Anlage wird entweder mit WDP oder den Stellpulten gesteuert. Die Verkabelung der Anlage von Weichen und Gleisstromkreisen wird dafür einfach umgesteckt. Die Signale hingen hierzu mittels I²C-Bus und Arduino am Stellwerk. Nun soll aus WDP der Stellbefehl der Signale entweder direkt in den Bus oder eben abgefangen und übersetzt in den Bus geleitet werden, damit die Arduino die Signale entsprechend stellen können.

Grüße
Patrick
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Michael Möller in 11. Mai 2022, 07:08:24
Hallo Patrick,

da WDP die Befehle an die Signale als DCC-Befehle ausgeben kann, wäre es am Einfachsten, wenn Ihr im Arduino die Auswertung dieser Befehle über die NMRA-DCC-Bibliothek implementieren würdet.

https://www.arduino.cc/reference/en/libraries/nmradcc/

LG Michael
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Markus Herzog in 12. Mai 2022, 00:37:10
Hallo Patrick,

Vermutlich ist der Weg von Michael der einfachste also ein Baustein welcher DCC-Ausgaben für Magnetartikel der Z21 auf den I2C umsetzt.

Du könntest natürlich selber eines der unterstützen Zentralenprotokolle welches offenliegt nutzen. Aber dann muss dein Baustein z.B. auf diversen Statusabfragen etc. z.B. beim Programmstart zum Versionsauslesen etc. auch genauso wie die jeweilige Zentrale reagieren.

Ich könnte mir das vorstellen für Z21 LAN Protokoll, Xpressnet, Loconet Personal Edition etc.

Grüße
Markus
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Pattafix95 in 12. Mai 2022, 09:18:11
Vielen Dank Michael und Markus!

Ich werde das nächste Woche, wenn ich wieder an dem Projekt arbeite mal einbringen. Grundsätzlich klingt die Lösung von Michael nicht verkehrt. Hier wird es aber auch nur möglich sein die maximal 4 Begriffe von WDP umzusetzen, oder? Also Hp0, Hp1, Hp2 und Sh1?

Grüße
Patrick
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Michael Möller in 12. Mai 2022, 10:27:40
Hallo Patrick,

wenn du die 4-begriffigen Signale in WDP anlegst, werden diese über zwei Adressen gesteuert. Hier legst Du Deine Zentrale und das Protokoll DCC fest.

Der Arduino muss idealerweise über eine galvanische Trennung (Optokoppler) und ein paar weitere Bauteile mit dem Gleissignal verbunden werden. Einen Schaltungsvorschlag dazu findest Du z.B. hier:

https://rudysmodelrailway.files.wordpress.com/2014/07/schematic1.png

Ganz wichtig ist dabei, dass die Auswertungen im Arduino nur über Hardware-Interrupt arbeiten und deshalb der PIN2 als Eingang am Arduino zwingend ist.
Alternativen und nähere Infos sind auch unter:

https://pgahtow.de/w/DCC_Dekoder

zu finden.
Viel Erfolg!

LG Michael
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: vikr in 12. Mai 2022, 11:13:02
Hallo Patrick,
Zitat von: Pattafix95 in 12. Mai 2022, 09:18:11Hier wird es aber auch nur möglich sein die maximal 4 Begriffe von WDP umzusetzen, oder? Also Hp0, Hp1, Hp2 und Sh1?
wie Markus anregt, kannst Du die Befehle eines z21-Signal-Decoders (https://www.z21.eu/de/produkte/z21-signal-decoder) emulieren. Wie man das grundsätzlich bedienen müsste, findet man in den Anleitung zum z21-Signal-Decoder: https://www.z21.eu/media/Kwc_Basic_DownloadTag_Component/61-8240-8242-7100-downloadTag/default/e1ce549e/1618232248/8010837921.pdf
Welche konkreten Befehle dazu genau z.B. in einem ATTiny -  für genau ein Signal - programmiert werden  müssten, findest Du vielleicht in der Z21-LAN-Spezifikation: https://www.z21.eu/media/Kwc_Basic_DownloadTag_Component/47-1652-959-downloadTag/default/69bad87e/1646977660/z21-lan-protokoll.pdf

Die Chancen stehen nach Markus Einlassung m.E. nicht schlecht, dass WDP den Z21-Baustein auch so unterstützen wird und damit auch mehr als 4 Signalbilder...

MfG

vik
Titel: Re: I²C-Bus Signale ansteuern
Beitrag von: Markus Herzog in 12. Mai 2022, 20:16:58
Hallo Patrick,

WDP kann ja bis zu 18 begriffige Signale.

Mit beliebigen Digitalsystemen geht das über den klassischen Weg der Kombination von Schaltbefehle an x Magnetartikel-Adresse je mit Stellung rot/grün, so dass man wenn man mit Einzelbefehlen arbeiten würde bis zu 9 Adressen je Signal bei 18 Begriffen verbrauchen würde.

Besser ist da natürlich die Ansteuerung über die Extended Accessory/Zubehör-Schaltbefehle (Erweiterte Zubehördecoder Packetformat nach RCN-213). Das können nur wenige Digitalsysteme bis dato. Damit geht bei Signalen über eine einzige Adresse die direkte Ansteuerung aller Stellungen. Das ginge z.B. mit der Z21 und einigen anderen Zentralen, aber noch nicht mit allzu vielen...
Sobald weitere Zentralen das unterstützen und wir zugehörige Interfacebefehle erfahren, bauen wir die im jeweils nächsten Update ein.

Grüße
Markus