Weiter geht es mit einer Beschreibung zu möglichem Zubehör.
Anmerkung:
- Ich stelle hier nur eine kleine Auswahl an Zubehör und Anschlussmöglichkeiten vor. Auf der Seite des DCC-EX Projektes ist noch mehr Zubehör aufgeführt. DCC-EX Controlling Accessories
- Interne Pins mit denen die EX-CommandStation arbeitet nennen sich VPINs und sind zu teilen standardmäßig an physische Pins am ESPDuino gemappt. Wird eine bestimmte Anzahl an VPINs durch die Verwendung von Erweiterungsmodulen überschritten, müssen zusätzliche VPINs die I2C Adressen gemappt werden. Mehr dazu unten.
Zwar stellt der ESPDuino einige physische Pins (GPIO) zur Verfügung, allerdings sind viele dieser für den Motorschield reserviert oder sonst nicht frei nutzbar. Glücklicherweise unterstützt das DCC-EX Projekt den I2C Datenbus. Dadurch ist es möglich Ein- und Ausgänge (GPIO) zu erweitern und Servomodule (PWM Module) anzuschließen.
Die Ein- und Ausgänge (GPIO) können für Hallsensoren, Reed Kontakte, Schalter, Leds, Ansteuerung anderer Module dienen. Sie sind also frei nutzbar als Ein- oder Ausgang!
Servos können ebenfalls vielseitig eingesetzt werden, wie für Weichen, Signale, Entkuppler, Tore, oder kleine Randszenen neben der Bahn.
Das DCC-EX Projekt empfiehlt verschiedene Module zur Verwendung, dessen zentraler Microchip im Treibersatz der Software hinterlegt ist. Somit ist es auch möglich, die Schaltung, um die Microchips herum selbst zu bauen.
Die unterstützten Microchips sind für (GPIO) Pinerweiterungen:
MCP23017, MPC23008, PCF8574
Und für Servo-Module:
PCA9685
Sucht man nach dieses Microchips im Internet findet man diese auf einer Vielzahl unterschiedlich bestückter Platinen mit Vorbeschaltung und Anschlussmöglichkeiten. Wer etwas Geld sparen möchte, bestellt sich den für sich passenden Microchip separat und steckt sich die Schaltung auf Breadboards oder lötet sich die Platinen selbst.
Da die 5V des ESPDuino nicht genug Leistung für Servos liefert muss hier noch für eine extra Spannungsversorgung gesorgt werden. In meinen einfachen Testaufbau – mit drei Hallsensoren und zwei Weichen-Servos – habe ich die Eingangsspannung einfach über den VIN Pin des Motorshields abgegriffen (der VIN Pin wird direkt vom Spannungseingang über den Arduino durchgeschliffen) und auf einen 5V Festspannungsregler gelegt.
Der I2C Bus ist ein zwei-Draht Bus System, welches von einem Modul zur nächsten durchgeschliffen, oder in Sternverdrahtung verbunden werden kann. Wird eine bestimmte Anzahl an Modulen überschritten müssen Endwiderstände (Pullups) auf den Modulen ausgelötet werden. Siehe dazu die Onlinedokumentation:
DCC-EX Pull-upsJedes Modul benötigt zur einwandfreien Kommunikation eine individuelle I2C Adresse. Diese wird über tief gezogene Pins (auf GND) am jeweiligen Microchip eingestellt. Fertige Module haben eine voreingestellte Adresse, die geändert werden kann (Lötbrücken, Dip-Schalter). Somit kann ein einzelnes Modul immer ohne Einstellung der Adresse direkt am Arduino angeschlossen werden.
Die hier eingestellte Adresse über die vier weißen Kabel auf Pin 15-17 ergibt die Adresse 0x20.
Das Servomodul hat die Lötbrücken A0 bis A5 offen und somit die Adresse 0x40
Standardadressen für Module sind:
VPIN Erweiterung (GPIO) mit MCP23017 Microchip ist meistens 0x20
Servo Modul mit PCA9685 Microchip ist meistens 0x40
Für bis zu zwei MCP23017 und zwei PCA9685 sind jeweils schon „VPINs“ vergeben. Möchte man mehr Module verwenden, müssen die VPIN Adressen den jeweiligen I2C Adresssräumen zugewiesen werden. Mehr dazu auf der Projektseite:
DCC-EX Input and Output Accessories and ExpandersBeispielaufbau:In meiner Experimentierumgebung habe ich mich vorerst für eine gemischte Lösung entschieden. Später für einen festen Aufbau sollen die Breadboards den gelöteten Varianten weichen, um eine höhere Betriebssicherheit zu erreichen.
Ich habe mir das Servomodul fertig bestückt bestellt und die Pinerweiterungen (GPIO) als Microchip. Wie die Module angeschlossen/verdrahtet werden müssen ist in den jeweiligen Kategorien des obigen Links beschrieben.
Zusammengesteckt schaut es so aus.
Angeschlossen sind jetzt drei Hallsensoren, ein Taster und zwei Micro-Servos für die Weichen. Die Weichen sind umgebaut, so dass sie über die Weichenzungen polarisieren. Die Gleisspannung habe ich mehrfach ans Gleis geführt.
Im nächsten Teil zeigen ich mit meinen Testaufbau eine Programmierung und Demonstration, die alle hier erwähnten Komponenten mit einbezieht.
Was ich gerade noch umsetzte, ist die automatische Blockreservierung und somit ein dynamisches System welches sich hervorragend auf größere Layouts skalieren lässt.
Als Anhang gibt es noch die Belegung des ESPDuino im Vergleich zum ArduinoUno und die durchgeschliffenen Kontakte über das Motorshield:
Mit freundlichen Grüßen
Mark (Tyresan)