Digital

Viele Modellbahnen werden heute DIGITAL gesteuert, das heisst, jede Lok und Weiche hat eine eigene Adresse und die Verkabelung wird einfacher - Selectrix gibt es zum Beispiel seit 1982, aber noch immer gibt es viele "analoge" Anlagen, siehe das Foto rechts, aufgenommen 2012. Zum Vergleich: Analoge Verdrahtung

Das am meisten verbreitete System ist "DCC", basierend auf einer Erfindung von Lenz und seit langem von der NMRA standardisiert.

Mehr zum Thema DCC:

was ist DCC?

DCC und Arduino

Im Grunde ist die starke Spezialisierung auf ein bestimmtes "System" nicht notwendig, das "SRCP" Protokoll versucht, vom speziellen Protokoll zu abstrahieren, dies ermöglicht es zum Beispiel, mit dem gleichen Android Programm sowohl DCC wie auch Selectrix Modellbahnen zu steuern, siehe:

Android Software zum Steuern eines SRCP Servers, zB DDW, srcpd oder SX3

CBUS:

Ein relativ neues System ist "CBUS" von der (vorwiegend) englischen Gruppe MERG (Model Electronic Railway Group) - ein modernes, relativ preiswertes (DIY) System, siehe MERG - CUBUS - Layout Control System.

CBUS Monitor mit einem Arduino

Selectrix

Ein weiters System zur digitalen Steuerung ist SELECTRIX® von der Firma Trix (heute zu Märklin gehörend und eine Marke von Märklin) - immerhin schon seit 1982 auf dem Markt. (Ich selber war ein grosser Fan von Selectrix und habe es Mitte der 1980ziger auf einer H0 Anlage benutzt. Allerdings gab es dann ein volles Jahr keine Lokdekoder zu kaufen, so dass ich persönlich vor langer Zeit auf DCC umgestiegen bin - trotz der Überzeugung, dass das Design von Selectrix ("Echtzeitfähigkeit") im Grunde für eine Computersteuerung besser ist als DCC...)

Mehr zu Selectrix

allgemein und zu unseren Selbstbauprojekten mit und ohne Arduino

Selectrix-Signal Dekodierung mit einem C-Programm

Achtung: Die Selectrix Inhalte werden Schritt für Schritt auf die neue Webseite www.opensx.net umgestellt !

Ein ganz anderes Thema ist der Gebrauch von RFID Tags zum identifizieren von Loks/Zügen auf der Anlage, siehe:
erste Erfahrungen mit RFID in der Spur Null

Android SRCP Client [inaktiv]

Wird nicht mehr gepflegt

Sie wurde für Android 1.6 entwickelt und müsste überarbeitet werden, für das ich im Moment nicht die Zeit und Motivation habe, SORRY!

Mit dieser Software für Android™ Handys kann man über das SRCP Protokoll eine Digitalzentrale steuern. Rechts ein Screenshot:

Getestet wurde die SW vor allem mit der Digitalzentrale MBS1/2 von Jörg Seitz und Rainer Barnstorf, siehe http://www.jss-elektronik.de - aber auch der Betrieb auch mit DDW, DDL oder mit meiner "SX3" Software ist möglich, ebenso mit RocRail - allerdings nicht (ohne Zusatzprogramme) mit Lenz/Märklin/ESU/RocoZ21, da diese Zentralen nicht den SRCP Standard verwenden, sondern eigene, proprietäre Formate.

Die Software ist inzwischen komplett OpenSource, Sie finden sowohl den APK File als auch den Quelltext unter http://sourceforge.net/p/srcpclient.

Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.

CBUS Arduino

Ein relativ neues System ist "CBUS" von der Gruppe MERG (Model Electronic Railway Group, vor allem in UK lokalisiert) - ein modernes, relativ preiswertes (DIY) System, siehe MERG - CBUS - Layout Control System.

Die CBUS Module von der "MERG" basieren auf dem CAN-BUS, bei den MERG Modulen dekodiert mit PIC-Mikrocontrollern. Dies ist natürlich (mit ein bisschen mehr Hardware, die MERG Module arbeiten meist mit dem PIC18F2480, der bereits einen CAN-Controller eingebaut hat) auch mit einem Arduino möglich.

CBUS Test Setup

CANdiy Shield Der CAN Bus wird über das CANdiy Shield von Watterott angebunden. (Achtung: die ISP Buchse auf dem Shield muss unbedingt angelötet und mit dem Arduino verbunden werden) Die Steckerbelegung auf der 8-poligen Modularverbindung ist hierbei:
1 = CAN-H
2 = CAN-L
3 = CAN-Shield (=GND)
7 = GND
8 = 12V
Ich habe nur den Jumper JP3 gesetzt (Verbindung von 3-shield und 7-Masse)

Die CBUS Arduino Software

Mit diesem Code werden alle CAN Bus Message mitgelesen und auf der Seriellen Console protokolliert. Durch Betätigen des Tasters (an PIN 4 angeschlossen gegen Masse) wird ein "Short Event" (DN_H/DN_L bilden dabei die Devicenummer) ausgegeben, abwechselnd ASON und ASOF.

Ihr Browser kann den Text leider nicht anzeigen! Bitte schicken Sie mir eine Mail, dann sende ich ihnen den File zu.

Hier zum Download die komplette Arduino Lib, auf Fabian Greifs CAN-Lib und, was die Queue für die erhaltenen CAN-Messages angeht, auf die Railuino SW von Jörg Pleumann zurückgreift. Reines Polling der CAN-Messages ist NICHT schnell genug für die CBUS Module.

Die CBUS CAN Messages haben übrigens NICHTS gemeinsam mit denen von Maerklin! (ausser das es auch CAN Bus Messages sind)

Download: CBUS-0.8.zip

Entpacken im "libraries" Folder der Arduino Installation.

DCC und Arduino

Zu meinen Hobbys gehört seit langem (ca. 40 Jahre...) auch immer mal wieder die Elektronik-"Bastelei".

In den letzten Jahren faszinieren mich besonders die Mikrocontroller, die es als fertigen "Hardware-Block" gibt und die sich immer einfacher programmieren lassen - so ist es mit Hilfe der "Arduino" Boards möglich, in wenigen Zeilen C-Code den Controller vernüftige Dinge tun zu lassen.

Als Modellbahner sucht man natürlich nach einer Anwendung bei der Modellbahn - vielleicht als erstes mal ein Handregler....

Hier ist er, ein Arduino Duemilanove mit 4 Tastern (F0 ...F3), einem Poti (Speed) und einem Umschalter (Richtung):

In einem ersten Schritt überträgt der Arduino die vom Poti und den Schaltern/Tastern gelesenen Daten via USB (serial Port) zum PC, der PC wandelt die Daten um in Befehle für die Lenz Zentrale (via LI101F Interface).

In einem zweiten Schritt habe ich den Arduino zur "Digitalzentrale" erweitert, siehe
"simpledcc" .

SimpleDCC - die allereinfachste (?) DCC Zentrale

Ich habe den Arduino Regler (das Poti zur Geschwindigkeitssteuerung ist an PIN2 des Arduino angeschlossen) noch um eine kleine Power-Endstufe mit dem LMD18200 (Brückenschaltung) erweitert, und dann in Software eine kleine "DCC Zentrale" programmiert.

Hier die zusätzliche Hardware (Elko an Pin6: bis 100uF, C1, C2 keramische Kondensatoren - bitte checken Sie, ob Ihr Arduino die Eingangsspannung für den Booster von 12...15V verkraftet, falls nicht, benutzen Sie ein USB power supply für den Arduino!))

und hier die (simplest mögliche ?) Software (nur EINE Lok, nur Geschwindigkeit und Richtung). Zum Erzeugen des DCC Signals wird der Timer 2 genutzt und eine simple "state machine" - ein spezieller Dank an dieser Stelle an Wolfgang Kufer und die "openDCC" Programme , die hier zwar nicht direkt genutzt werden, die aber sehr lehrreich für mich waren.

Ihr Browser kann den Text leider nicht anzeigen! Bitte schicken Sie mir eine Mail, dann sende ich ihnen den File zu.

Wer ernsthafte Software für DCC schreiben möchte, sollte sich die Arduino DCC Library unter model railroading with arduino anschauen. Allerdings ist der Sourcecode für die Library schon recht komplex und nicht mehr ganz so einfach zu verstehen wie die Programme auf diesen Seiten.

LANBAHN

Die Programme finden Sie bei github unter github.com/michael71 - darüberhinaus gibt es jetzt speziell zu diesem Thema eine eigene Webseite LANbahn.net.

Neu: jetzt auch ein Projekt mit den Tinkerforge Bausteinen, siehe Tinkerforge Weichendecoder.

Digital gesteuerte Modellbahnen sind inzwischen (wenn Sie nicht nur die Lokomotiven, sondern auch Signale, Weichen und Belegtmelder einbeziehen), ziemlich komplex, übermäßig kompliziert zu konfigurieren und auch ziemlich teuer. Der Grund dafür ist die Benutzung von hochgradig spezialisierter Hardware und Software, denn die Stückzahlen sind niedrig. So will ein führender deutscher Hersteller tatsächlich 140 Euro für ein Netzwerk Interface haben!

Für das Geld bekommt man schon ein halbes Netbook oder 4 RaspberryPi's ! Warum also verwenden wir nicht mehr Standardkomponenten auf unserer Modellbahn?

Die meisten Digitalsysteme wurden darüberhinaus bereits in den 80zigern entwickelt, für die damals erhältlich Microcontroller. Und die Leistung dieser Komponenten ist seitdem stark gestiegen - und die Protokolle werden immer komplizierter.

Was spricht gegen die Verlagerung von Intelligenz aus der Zentralstation (die unnötig ist, denke ich) in die Zubehör-Dekoder? Was spricht gegen die Verwendung von Standard Komponenten, die sowohl HW wie Software preiswerter machen und auch den Entwicklungsaufwand reduzieren können? Ich freue mich über weitere Mitwirkende, schicken Sie mir einfach eine Mail...


The "Lanbahn" Concept:
- Intelligent end devices
- all with a network or wlan interface
- No central station, no PC needed
- no complex binary protocols
- decoders advertise their capabilities via zeroconf/avahi/bonjour protocol.
- everyone can build a decoder based on a raspberryPI or an (ethernet-) arduino


RFID

ACHTUNG !

Viel bessere Erfahrungen als mit den unten verwendeten "Billig-Lesern" habe ich inzwischen mit den Lesern ID-12 und ID-20 gemacht, die zB auch von MERG verwendet werden. Hier demnächst mehr!


Ich will hier kurz über meine ALLER-ersten Erfahrungen mit RFID in der Spur Null berichten.


Der Aufbau...

auf dem Teppich war schnell gemacht, 2 preiswerte RIFD Leser wurden einfach unter das Gleis geschoben und ein einfacher Test mit einem RFID Tag brachte einen Erfolg!


Die Auswertung

...mit einem Arduino mit angeschlossenem (seriellen) Display war auch kein größeres Problem, es gibt einige Beispielprogramme bereits dafür.


Die Wagen

... bekommen dann noch schnell einen Rfid Tag unter das Drehgestell geklebt mit doppelseitigem Klebeband UND DAS WARS, dachte ich mir.

Und das Ergebnis / Fazit ...

...
fällt eher nüchtern aus. Der RFID Leser ist so groß, dass er nicht zwischen die Schienen passt (maximal 28mm wären in der Spur Null nutzbar), dadurch ist erstens das Gleis zwischen dem Leser und dem "TAG" und zweitens der Abstand ca. 10mm, was zwar im Prinzip reicht - allerdings nicht, wenn der Zug mit einer gewissen Geschwindigkeit fährt. So war im Versuchsaufbau zwar bei langsamer Fahrt eine Identifikation der Wagen möglich, nicht allerdings bei schnellerer Fahrt. Ich werde demnächst also noch weitere Versuche machen mit anderen RFID Readern und anderen "TAGs"...

.

Railcom ist ein eingetragenes Warenzeichen der Firma Lenz GmbH.

Selectrix (SX) Arduino

Mit Hilfe eines Arduinos kann man recht einfach das Selectrix Signal dekodieren. (siehe auch den entsprechenden Artikel in der Digitalen Modellbahn).

Jetzt auch mehr zum Thema auf unseren neuen Selectrix Only" Seiten opensx.net !

Um den SX-Bus an den Arduino anzuschliessen reicht folgendes Interface:


Das Selectrix Taktsignal (DIN-Stecker PIN 1 - auch T0 genannt) wird über einen 27k Widerstand an Arduino Pin D2 geführt (durch die Flanke des Taktsignals wird der Interrupt INT0 ausgelöst), das Datensignal (von der Zentrale, DIN Stecker PIN 4 -T1 genannt) wird auf den PIN D4 geführt. Die Spannungsversorgung für den Arduino kommt über die USB Buchse vom PC. Achtung, auf Pin3 liegen 20 Volt!

Selectrix Shield für Arduino

hier ein Testaufbau, der auch einen Spannungsregler für 5V und einen Comparator für das SX Signal umfasst.

und hier die erste Platine... Damit der Aufbau etwas kompakter wird, habe ich einen Arduino-Pro-Mini verwendet (auf einer SMD Platine ist hier bereits Prozessor, 5V Regler, Quarz etc integriert).

Für die Dekodierung (Rückrichtung zur Zentrale siehe unten) habe ich eine Arduino Library mit dem Namen SX(Selectrix) erstellt.

Arduino Library "SX" Download (GPL) . (Version für Arduino-1.0 !!)

Mit einem Widerstand von 150 Ohm kann man auch die Rückrichtung zur Zentrale einbeziehen, d.h. mit dem Arduino Werte auf den SX Bus schreiben. Achtung: nur mit Selectrix Anlage verbinden, wenn der Computer eingeschaltet ist, d.h. der Arduino mit Spannung versorgt ist. Sonst ist der 150 Ohm Widerstand zusammen mit den Schutzdioden des ATmega ein (fast) Kurzschluss für das Datensignal (Rückrichtung zur Zentrale) des SX Busses.
Aufbau mit Arduino Proto-Shield

Arduino Library inklusiv schreiben auf den SX Bus Download - v.2.1 (GPL) Diese Version läuft auf allen Arduinos, allerdings ist für einige Zentralen das Schreiben auf den Bus wohl nicht schnell genug. Deshalb gibt es jetzt eine neue Version 2.2 (Dank an Reinhard Thamm), in der die "digitalWrite" Befehle ersetzt sind durch direkte Port Writes. Bitte die Ports checken, wenn Sie NICHT den Standard Arduino mit dem ATmega328 verwenden.

Arduino Library inklusiv schreiben - beschleunigte Version 2.2b (GPL) - 12-may-2015

mehr zum Thema Selectrix

Trix und Selectrix are registered trademarks of the Märklin, Göppingen, Germany

Funkregler

Zur Zeit in Arbeit:

Ein Funkregler (für Selectrix oder andere Systeme) auf Basis von XBee's. Demnächst mehr...

Funkregler "ALF" mit Xbee, Teensy und kleinem OLED Display
Funkregler Unterseite mit Teensy und XBee
Funkregler Oberseite mit OLED Display, Rotary Encoder und Tastern für Adresswahl, Licht und Funktion. Die Gleisspannung kann durch 1sec Druck auf den Knopf des Rotary Encoders ein- und ausgeschaltet werden.

Interface für Selectrix auf Basisplatine (R.Thamm) mit Arduino Pro Mini.

Tinkerforge Weichendekoder

Unter tinkerforge.com gibt es ein sehr nettes Mikrocontroller Baukastensystem, "zusammenstecken und losprogrammieren", und das in sehr vielen Sprachen, könnte das Motto lauten.

Es gibt für alles mögliche Sensoren und auch digital I/O Boards, aber kein "Bricklet", was sich direkt für 4 Tortoise Weichenantriebe eignet.

Daher habe ich, basierend auf dem IO4-Bricklet, ein solches Board erstellt mit 2x LB1909MC als Treiber ICs für die motorischen Weichenantriebe (der LB1909 hat 2 Gegentakt Endstufen, so dass sich mit jedem IC 2 Motoren ansteuern lassen). Hier ist ein Bild mit dem 35x35mm grossen "IO4-12Volt" Bricklet:
Der Test-Aufbau mit einem "Master"-Brick, einem RS485 Brick, dem "tinker-tortiose" Bricklet und einem Motor-Weichenantrieb:

Der Schaltplan: (software-seitig ist das Modul ein IO-4 Bricklet )

Die Software (hier mit JAVA)
Bei Anschluss an einen RaspberryPI (wenn "raspian" als OS installiert ist), müssen

Die Tinkerforge Module können jetzt auch über die "Lanbahn" UDP Multicast Pakete angesprochen werden, die Software liegt auf sourceforge - Projekt Lanbahn, Verzeichnis tinker

Auch "in Arbeit": ein kompakter 4-Kanal Belegtmelder (mit galvanischer Trennung über Optokoppler) für das Tinkerforge System. Der blaue Stecker links ist der ISP-Programmierstecker für einen ATtiny84.