Archiv der Kategorie: Elektronik

5.9.19 Gleisbild-Editor

ich glaube, er ist jetzt fertig: Mein Gleisbild-Editor.

Im Endeffekt eine kleine Webseite mit ein bischen Javascript.

Und so sieht das Ergebnis momentan aus:

Die Symbole hab ich aus einer Rocrail-Installation kopiert. Ein paar habe ich selbst erstellt.

Im Betrieb sendet der Server über Websocket Befehle an den Webbrowser, der die Darstellung daraufhin ändert. Getestet habe ich es schon, aber es wird noch weitaus komplizierter. Macht aber Spass, wenn man mal etwas sieht.

Das ganze dient eigentlich nur zur Anzeige. Man schaltet später die gewünschten Weichenstrassen und Signale mit dem mobilen Handregler.

11. 8. 2019 Firmware-Upgrade

Heute hab ich die Firmware des Handreglers ein bischen erweitert.

Man kann nun:

  • Den Server herunterfahren und ausschalten (das ging vorher nur, wenn eine Tastatur und ein Bildschirm angeschlossen waren, oder über eine Remote-Sitzung von einem anderen Rechner aus).
  • Den einzelnen Steuermodulen ihre Nummer vergeben. Hierzu muss man das Steuermodul resetten und dann innerhalb der nächsten 10 Sekunden auf dem Mobilteil die zukünftige ID des Steuermoduls eintippen. Das Steuermodul sppeichert die neue Adresse im EEPROM und verwendet diese beim Start. Anmerkung: Früher musste beim Aufspielen der Firmware auf das Steuermodul diese Adresse vor dem Übersetzen im Programmcode eingetragen werden.
  • RS485-Steuersequenzen an den Server schicken, der sie auf dem RS485-Bus ausgibt. Somit können alle an die Steuermodule angeschlossenen Komponenten getestet werden.

Natürlich musste auch der Server angepasst werden, damit er die neuen Kommandos versteht und entsprechende Aktionen ausführt.

Modul zur Ansteuerung von Weichenantrieben (Magnetspulen)

Für das Arduino-Modul habe ich mal ein Zusatzmodul gebaut, das an den I2C-Bus angesteckt werden kann. Damit ist es möglich, die Weichen im unsichtbaren Teil mit herkömmlichen Magnet-Weichenschaltern anzusteuern.

6.8.2019: Was ich heute festgestellt habe: man kann so einen Weichenschalter zwar mit 12V Gleichstrom schalten, aber der ULN2803A liefert zu wenig Strom. Im Internet habe ich gefunden, dass man 2 oder 3 Kanäle eines ULN2803A parallel schalten muss, damit es funktioniert (ich habs mit 2 Ausgängen versucht-funktioniert). Also muss ich meine Platine noch um zusätzliche ULN2803A erweitern. Vielleicht bau ich morgen eine komplett neue. Ist einfacher.

7.8.2019 Eine komplett neue Platine erstellt. Leider funktioniert was immer noch nicht.

9.8.2019 Hab jetzt endlich den entscheidenden Hinweis gefunden: Der PCF8574 liefert scheinbar auch nicht genügend Strom, um zwei Eingänge des ULN2803A zu schalten. Man muss an die Ausgänge des PCF8574 Pullup-Widerstände gegen + schalten. Hab dafür 10k-Widerstandsnetzwerke genommen und … funktioniert. Das war ja ne schwere Geburt….

Mobiler Handregler

Schon vor 20 Jahren entwickelte ich mal einen Mobilen Handregler mit Dreh-Encodern und Bluetooth-Modul. Leider musste ich damals noch alles in Assembler schreiben und die Bauteile waren ziemlich teuer. Irgendwann hatte ich keine Zeit mehr.

Heute sind die Bauteile wesentlich günstiger und für jede Komponente gibt es Libraries, also vorgefertigten Code in einfacher Programmiersprache. Die Hauptaufgabe ist es, alles so zusammenzubringen, dass es funktioniert und ein „Rahmenprogramm“ zu schreiben, dass die Teile eben so zusammenarbeiten und die Aufgaben erledigen, wie man das möchte. Klingt einfach ? …. Naja …

Der Praxistest wird zeigen, ob das WLAN wirklich eine gute Wahl ist. Es sollen mal 4-5 solcher Controller gleichzeitig benutzt werden können.

Und dann wird sich zeigen ob das Serverprogramm leistungsfähig genug ist, die maximal 20 Lokomotiven gleichzeitig zu bedienen.

23.5.19 Mittlerweile habe ich ein paar Änderungen an der Software vorgenommen und mir die Teile für ein Gehäuse gefräst

Das „russische Spionagegerät“, wie er von einer Bekannten genannt wird…

9.6.19 Bei schönem Wetter im Garten die Platinen für die restlichen Handregler gelötet

Steuercomputer

noch nicht ganz fertig, aber schon wesentlich übersichtlicher dank des Kabelkanals, in dem alle Kabel verstaut sind-

Servo-Ansteuerung

Für die Ansteuerung der Servos verwende ich:

  • Arduino NANO
  • RS485-Schnittstelle
  • PCA9685 16-fach PWM-Treiber

11.02.19 Leider hab ich beim ersten Versuch eine zu hohe Spannungsquelle genommen. Ich war der Meinung in irgendeiner Anleitung etwas von 12V gelesen zu haben. Bei den 4 angeschlossenen Servos ist deswegen die Elektronik abgeraucht. Die Motoren sind scheinbar noch verwendbar. Vielleicht fällt mir noch was ein (Karusell, Mühle, oder so…)

20.02.19

20.02.19 Gestern habe ich 3 dieser Modulkombinationen fertiggestellt. (Für jedes Weichenmodul eines) Rechts sieht man zwei RJ45-Buchsen bei denen die RS485-Leitung ankommt und zum nächsten (Gleis-)Modul geführt wird.

Darüber ist ein Spannungsregler, der mir aus der 12V-Leitung 5V macht, um den Arduino und die Servos zu versorgen.

Links daneben ist die Platine mit dem RS485-Modul, das an den Arduino angeschlossen ist.

Beide Platinen werden später mit einem kurzen 4-poligen Kabel verbunden.

Vom Arduino gehts dann über I²C zum PCA9685-Modul, das 16 Servos betreiben kann. Sollte das nicht ausreichen, kann man mehrere PCA9685 aneinanderreihen und so mit einem Arduino bis zu 64 x16 Servos steuern. Cooles Teil …