Autor |
Nachricht |
Joachim K.
Moderator
Geschlecht:
Alter: 71
Anmeldungsdatum: 19.10.2006
Beiträge: 4428
Wohnort: Asperg in Baden-Württemberg
Beitrag 1 von 32
|
Verfasst am:
02 Okt 2018 11:05 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 2 von 32
|
Verfasst am:
02 Okt 2018 18:38 Steuer und Schalten mit Arduino |
|
Hallo Joachim,
mein Ansatz ist etwas anders, daher kann ich auf diese Fragen nur zum Teil antworten, aber vielleicht bringt Dich die Antwort schon etwas weiter.
WinDigipet gibt zur Steuerung der Weichen und Signale deren Adresse nach "draußen" sodass über den Datenbus, den Du nutzt die entsprechenden Geräte angesprochen werden können.
Dazu müsste der Arduino, wenn er das denn bewerkstelligen soll, die Adress-Signale aus einem entsprechenden Datenbus herauslesen können. Der Arduino kann so konfiguriert werden, dass man praktisch jeden Digitalpin als seriellen Port (dafür braucht man zwei Pins) nutzen kann. Standardmäßig sind das die Pins D0 und D1, wenn mich nicht alles täuscht.
Zur seriellen Kommunikation mit dem Arduino hilft vielleicht schon folgende Seite: https://www.arduino-tutorial.de/serielle-kommunikation/
Für den Arduino wie auch für den Raspberry Pi gibt es kleine Monitore und auch touchscreens. Die sind aber im Vergleich zu den größeren Monitoren, die man für ein Gleisbildstellwerk ab einer gewissen Größe einfach braucht, winzig. Diese werden über eine Serielle Kommunikation ebenfalls vom Arduino angesprochen.
Mit einem einfachen screen habe ich das schon gemacht, mit einem touchscreen noch nicht. Die Screens haben wegen des langsamen seriellen Ports üblicherweise einen SD-Slot, in den eine Micro-SD-Karte mit Bildern eingelegt werden kann. bmp ist hier der Bild-Standard. Für den SD-Slot werden dann neben den seriellen Eingängen und Clock-Eingang noch weitere Steuerleitungen benötigt, die im Code des Arduino definiert werden können.
Das allerdings hat wenig mit dem Gleisbild von WinDigipet zu tun, denn das ist ja ein Bild, das logisch erzeugt wird und nicht als Bitmap irgendwo rumliegt. Der Arduino ist also nicht das Gerät, auf dem Du die Befehle vom Win-Digipet über den Touchscreen ablaufen lassen kannst.
Für WinDigipet brauchst Du also einen PC und eine Schnittstelle, die den Touchscreen auslesen kann. Das wird der Arduino bei einem größeren TFT-Monitor wohl nicht leisten können. (das weiß ich nicht, ich vermute das aber)
Der Arduino kann somit in einem solchen System nur als Befehlsempfänger, wenn er einen bestimmten Code seriell empfängt, entsprechende Ausgänge so schalten, dass Weichen oder Signale geschaltet werden und als Rückmelder dienen. Hierzu braucht man dann noch Hardware in Form von Optokopplern oder Relais, denn die Stromstärken von Weichenantrieben etc. übersteigen deutlich das, was der Arduino leisten kann.
Der Arduino ist also im System quasi der Decoder für die Fahrstraßenbefehle. Diese Lösung halte ich für suboptimal, was die Performance angeht, denn dafür gibt es spezielle Bausteine z. B. beim Can-Digital.
Bei meinem Ansatz ist das anders vorgesehen: Arduino als echter Automat für den SBf, d. h. er liest über eine Anzahl vordefinierter Gleisabschnitte die Länge eines ankommenden Zuges aus, kommuniziert mit den Arduini, die die Abstellgleise verwalten und lässt sich ein freies Gleis mit entsprechender freien Länge anbieten und stellt danach die Fahrstraße.
Für meinen Hauptbahnhof sehe ich eine reine Fahrstraßenschaltung vor, die von einem echten Gleisbildstellwerk per (entprelltem) Knopfdruck ausgelöst werden soll und dann Weichen und Signale schaltet. Du hast ein sehr schönes Gleisbildstellwerk, das würde ich dafür nutzen!
Wenn Du trotzdem mit Arduino und WinDigipet arbeiten möchtest, müssen die Befehle über den USB-Port des PCs, auf dem die Software läuft an die Arduini versendet werden. Dazu braucht jeder eine eindeutige Adresse und die Arduini müssen verlinkt werden, z. B. in einer Daisy-Chain, sodass jeder sich aus ein und demselben USB-Port die Informationen holt, die für ihn bestimmt sind und die Befehle dann ausführt. Das geht, lohnt sich finanziell aber nur, wenn man mit billigen Nachbauten arbeitet und nicht mit dem Original.
Die Verbindung PC zum Touchscreen, der, wie ich oben schrieb, wohl kaum an einem Arduino betrieben werden kann, kann ich leider nicht kommentieren, da habe ich null Ahnung.
Eins noch: Mit Hilfe mehrerer Arduini kann man Dein Gleisbildstellwerk auch auslesen und über den Seriellen Bus an WinDigipet den Zustand übergeben. Das anstelle der sonst üblichen Rückmeldeplatinen. Die Geräte sind also universell einsetzbar für Ein- und Ausgänge. Das ist der große Vorteil.
Eins muss man sagen: Diese Aufgabe ist eine Herausforderung!
Um aber näher ins Detail gehen zu können, müsste man nun das Gleisbild haben, damit man konfigurieren kann, was gebraucht wird, wie man das am besten anschließt und dann darauf aufbauend den Code entwickelt.
Zum Thema PC-Touchscreen möge sich bitte jemand melden, der davon Ahnung hat...
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
heckmal
Profi-Bahner
Geschlecht:
Alter: 86
Anmeldungsdatum: 20.01.2014
Beiträge: 1665
Wohnort: Auf den Moselhöhen im Rhein-Hunsrück-Kreis, auch (Hängeseilbrücken genannt)
Beitrag 3 von 32
|
Verfasst am:
02 Okt 2018 21:10 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 4 von 32
|
Verfasst am:
03 Okt 2018 8:30 Steuer und Schalten mit Arduino |
|
Hallo Alois,
vermutlich schon. Bei uns im Mist5 ist ein Experte für WinDigiPet, den könnte ich mal fragen. Ich selbst habe mich bisher ja nur mit Rocrail beschäftigt und das dafür beschaffte Can-Digital-Material noch nicht im echten Einsatz gehabt. Die Arduino-Variante mit den Nano-Nachbauten ist preislich demgegenüber unschlagbar, daher beschäftige ich mich eher damit, wenn ich mich mit der Steuerung beschäftige. Kann allerdings sein, dass das deutlcih langsamer ist wegen der seriellen Schnittstelle, die man mit dem Can-Bus nicht vergleichen kann. Allerdings habe ich so lange Strecken zwsichen den Bf, dass ich mir den Zeitfaktor womöglich leisten kann.
Daher kann ich Deine Frage nicht beantworten. Oder doch:
https://www.windigipet.de/foren/index.php?page=menu_de_0701_01_00_page_downloads2018 da gibt es was zum download...
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 5 von 32
|
Verfasst am:
03 Okt 2018 8:56 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 6 von 32
|
Verfasst am:
03 Okt 2018 9:01 Steuer und Schalten mit Arduino |
|
... ach ja, eins noch: WinDigiPet kann leider nur mit Windows...
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
Joachim K.
Moderator
Geschlecht:
Alter: 71
Anmeldungsdatum: 19.10.2006
Beiträge: 4428
Wohnort: Asperg in Baden-Württemberg
Beitrag 7 von 32
|
Verfasst am:
03 Okt 2018 11:27 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 8 von 32
|
Verfasst am:
03 Okt 2018 11:35 Steuer und Schalten mit Arduino |
|
Hallo Joachim,
Vorsicht: Es liegt nicht nur an der Wechselspannung für die Weichenantriebe, sondern auch und vor allem an der Stromstärke. Bei einem direkten Anschluss brätst Du den Arduino.
Das kann bei einem Servo, den man über die PWM-Pins ansteuern kann, ähnlich sein, wenn die Stromaufnahme zu hoch ist. Dann muss da ein Treiber dazwischen, der den Arduino-Pin nur als Steuersignal nutzt, dem Servo aber entsprechende Stromstärke bietet. Solche Treiberplatinen gibt es, daher würde ich von einem direkten Anschluss immer abraten. Aber das wäre in der Tat ein Thema für den Peripherie-thread, den ich heute aufgemacht habe, da gehören Treiberplatinen etc. auch rein...
Die WinDigiPet-Frage können wir hier gerne weiter diskutieren, allerdings bin ich in dem Thema WinDigiPet noch nicht drin.
Meine Fragen oben hast Du aber noch nicht beantwortet: Welche Aufgabe genau sollen die Arduini denn übernehmen?
Und dann wäre da noch die Frage: Welche Ausgänge liefert Deine Zentrale? Gibt es da einen USB-Port? Ggf. noch einen weiteren seriellen Port?
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
Joachim K.
Moderator
Geschlecht:
Alter: 71
Anmeldungsdatum: 19.10.2006
Beiträge: 4428
Wohnort: Asperg in Baden-Württemberg
Beitrag 9 von 32
|
Verfasst am:
03 Okt 2018 19:07 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 10 von 32
|
Verfasst am:
03 Okt 2018 19:12 Steuer und Schalten mit Arduino |
|
|
|
|
Joachim K.
Moderator
Geschlecht:
Alter: 71
Anmeldungsdatum: 19.10.2006
Beiträge: 4428
Wohnort: Asperg in Baden-Württemberg
Beitrag 11 von 32
|
Verfasst am:
04 Okt 2018 10:54 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 12 von 32
|
Verfasst am:
04 Okt 2018 21:50 Steuer und Schalten mit Arduino |
|
Hallo Joachim,
wenn man einen Servo aus dem Starter-Kit nimmt, dann ist es vermutlich problemlos, bei anderen Servos mit mehr Leistungsaufnahme hätte ich allerdings Bedenken, das ohne einen ULN2803A als Treiberbaustein zu machen, auch wenn die Stromversorgungsanschlüsse nicht vom Arduino gespeist werden, sondern nur die Steuerleitung über den PWM vom Arduino kommt und die Stromeinspeisung direkt von der Quelle, die auch den Arduino speist.
Irgendwie behagt mir da nicht, dass ich nicht weiß, wie groß die Stromstärke an der Steuerleitung tatsächlich ist. Vielleicht liege ich aber auch falsch.
Kommt die Stromversorgung nicht aus dem Vcc Ausgang des Arduino, der 5 V liefert, sondern von derselben Quelle, die auch den Arduino speist, müsste man darauf achten, welche Spannung dort anliegt (das müssen ja nicht 5V sein, sondern können auch ganz andere Werte (7 - 12 V werden empfohlen) sein.
Dadurch verschiebt sich doch das erforderliche Potenzial an der Steuerleitung des Servos (wenn ich das System Servor jetzt richtig verstanden habe), oder? Also wäre man doch versucht, um bei einer immer gleichen Programmierung der PWM-Pins auch immer die gleiche Servostellung zu bekommen, den Servo vom Arduino versorgen zu lassen, oder?
Kommen genau 5 V in den Arduino (und dann auch in den Servo) rein, z. b. von einer USB-Leitung, dann ist das letztgenannte Problem natürlich keins mehr. Und dann könnte es auch dauerhaft funktionieren, den Servo direkt an den Arduino anzuklemmen.
Ich trau der Sache aber noch nicht so ganz. Vielleicht muss ich da über Servos noch einiges mehr lesen...
Aber mal von dieser Detailfrage abgesehen, habe ich noch nicht verstanden, was Du eigentlich wirklich vorhast Keine autonome Steuerung über die Arduini, sondern diese nur als Befehlsempfänger
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 13 von 32
|
Verfasst am:
06 Okt 2018 9:17 Steuer und Schalten mit Arduino |
|
Hallo Joachim,
gestern war Mist5, ich habe Eddy, der als WinDigiPet-Experte gilt befragt. Also als Decoder kann man einen Arduino grundsätzlich verwenden, das wussten wir aber ja vorher schon.
Da ich aber nicht weiß, welche Zentrale Du hast: Er kennt auch keine Programmierungen unter MM, DCC scheint da der Standard zu sein. Wenn Deine Zentrale also DCC spricht, dann müsstest Du im Internet sogar code finden (wusste ich auch vorher schon, bei der Frage MM bin ich damit nicht weitergekommen)
Bei der Frage Weichendecoder kam sofotrt (!) der Hinweis: Das geht nicht! Wegen der benötigten Stromstärken. Nach meinem Hinweis auf Optokoppler- oder Relaisplatinen die Reaktion: dann ja. (wusste ich auch vorher).
Da die Frage, wofür Du die Teile einsetzen willst, nicht so richtig beantwortet ist, konnte ich dann weitere Details nicht erfragen.
Das ist damit dann alles, was ich rausgekriegt habe (nix Neues).
Da meine derzeitige Zentrale kein DCC spricht, werde ich den Ausbau der SBf-Strukturen und anderen Einsatzgebiete der Arduini auf eine spätere Zentrale Steuerung vom PC aus erst machen können, wenn ich ein multiprotokollfähiges Gerät angeschlossen habe. Zurzeit habe ich ja noch die CS1 2.0.3 im Einsatz.
Der Einsatz einer zentralen Software steht bei mir mit der Verwendung der Arduini aber erst mal nicht auf dem Plan, was mich aber nicht abhält, darüber nach- und mitzudenken.
NEUE ÜBERLEGUNGEN DAZU:
Es müsste mir - solange ich keine DCC-fähige Architektur habe - noch was einfallen, wie ich der Steuerung mitteile, wenn ein Zug aus dem SBf kommt, welcher das dann ist. Geht nur mit Zug-ID oder entsprechend durchgeschleiften Informationen, d. h. Arduini auch als Blockrückmelder für eine Software-Lösung vorsehen. Ist ein bisschen mehr Programmierung (wirklich nur ein bisschen ?).
Ohne Zusatzhardware auf anderer Ebene lassen sich die Eingangspins, die messen, welcher Block belegt ist, ja nicht zur Informationsweitergabe an WinDigiPet oder RocRail nutzen, bzw. die sollen die teurere Hardware ja ersetzen, d. h. für jede eingelesene Rückmeldung muss eine Info über den Kommunikationsport (D0 D1 sind Standard) an die Zentrale zurückgemeldet werden.
Wenn das viele Informationen sind, kann sich bei einer - was die Weichen angeht - hinreichend großen Anlage die Zeit, die mit der Kommunikation bei 9600 Baud vergeht ziemlich aufdaddieren, d. h. die Steuerung wird langsam. Wenn dann die Strecken zwischen den einzelnen Blöcken kurz sind, hast Du ein Problem: Die Steuerung reagiert zu spät.
Das war der Auslöser für das Can-Digital-Projekt von Torsten Mumm, da funktioniert der Informationstransport bedeutend schneller.
Hast Du hingegen wenig Weichen und lange Strecken, hat die Steuerung Zeit, auf Änderungen im Status zu reagieren.
Bei mir müsste das eigentlich an Stellen wie der Wendel oder dem Hangviadukt problemlos gehen, während die Wendekreise bzw. Verteilkreise hier durchaus schon zeitkritisch sein können.
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
Joachim K.
Moderator
Geschlecht:
Alter: 71
Anmeldungsdatum: 19.10.2006
Beiträge: 4428
Wohnort: Asperg in Baden-Württemberg
Beitrag 14 von 32
|
Verfasst am:
06 Okt 2018 10:30 Steuer und Schalten mit Arduino |
|
|
|
|
gaulois
Profi-Bahner
Geschlecht:
Alter: 56
Anmeldungsdatum: 28.11.2006
Beiträge: 13078
Wohnort: Bundeshauptstadt der Energie
Beitrag 15 von 32
|
Verfasst am:
06 Okt 2018 12:35 Steuer und Schalten mit Arduino |
|
ah, schön zu hören, verrätst Du uns/mir, wie es behoben wurde? Ich lern ja auch gern dazu...
Bei einer Internetsuche habe ich zum Thema Arduino und MM-Protokoll dann doch was gefunden:
https://github.com/cpfair/marklin-motorola-decoder
könnte interessant sein, sich anzugucken, denn dann kann ich für meine Anlage jedenfalls die Architektur der SBf so machen, dass sie auch RocRail-fähig wäre (oder WinDigiPet-fähig).
Da wäre nur der Zeitfaktor, um sich in das Thema auch noch einzulesen. Das wäre dann aber bei mir Schritt 2 nach dem Aufbau eines autarken Arduino-Netzwerkes, diese dann auch von der Zentrale aus ansprechbar zu machen und später vom Mac oder Pc, je nach Software...
Quelle von mir eingestellter Bilder: Ich! Copyright bei mir!
und immer den Nachwuchs fördern!
Gerd 50 014
zur Moselanlage: . . . . . . . . . . . . . . . . . zum Wildenrather Kreisel:
|
|
|
|
|
Cookies entfernen
Powered by Orion based on phpBB
© 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
Alle Zeiten sind GMT + 1 Stunde
|