Lokkontroller

Nach oben ]

Home
Umbauten
Tipps und Tricks
Digital
Diverses
Logbuch
Links
Kontakt
Impressum

Projektbeschreibung:

Steuerung von Lokomotiven über einen Touchscreen, welcher als Shield auf einen Arduino 2560 aufgesteckt ist.

Komponenten:

bulletArduino MEGA 2560
bulletTouchscreen Shield von Seeeduino V1
bulletMärklin Interface 6050
bulletCentral Unit 6020

Als Touchscreen habe ich diesen hier verwendet: http://wiki.seeedstudio.com/TFT_Touch_Shield_V1.0/

In diesem Projekt beschränke ich mich auf das einfachere Motorola I Protokoll, da das alte Interface 6050 nur dieses Protokoll versteht.
Link zum Motorola I Protokoll:
http://www.marklin.com/tech/digital1/components/commands.html
Update Dezember 2018: diese Seite ist leider nicht mehr erreichbar

Hier ein Auszug daraus:

When controlling locomotives, the two bytes are: 1) the command for speed and function in the first byte, and 2) the loco's address in the second byte. Loco speed can be any one of the 15 possible speed steps available, and the loco's address can be any one of the addresses from 1 to 80. For example: you want loco #26 to travel at a speed of 5. The command would be:

10 PRINT #1,CHR$(5);CHR$(26)

Ein Kommando an eine Lok in Motorola I - Format besteht demnach aus 2 Bytes:

Byte 1: Geschwindigkeit der Lok [0..14] + Funktion [ON = +16; OFF = +0]
Byte 2: Lokadresse [1..80]

um der Lok 26 die Geschwindigkeit 5 zu geben, müssen demnach die beiden Bytes "5"; "26" nacheinander gesendet werden
soll zudem das Licht (Funktion) eingeschaltet werden müssen die beiden Bytes "21" und "26" nacheinander gesendet werden

Der Touchscreen auf dem MEGA2560
der Link zum Touchscreen von Seeeduino V1:
http://www.seeedstudio.com/wiki/TFT_Touch_Shield_V1.0

die Library dazu ist unter https://github.com/adafruit/Touch-Screen-Library zu finden

Erleuterung zu den einzelnen Feldern:

bulletoben im gelben Balken links die Lokadresse (hier 64); rechts die Fahrstufe FS (hier 3)
bulletdie 10er Tastatur erlaubt die Eingabe der Adresse
bulletF schaltet die Funktion (Licht) ein und aus
bulletH = Halt = Fahrstufe 0
bulletauf dem Feld rechts mit dem Pfeil kann man die Fahrstufe / Geschwindigkeit langsam nach oben respektive unten verändern
bulletlinks unten das Feld für den Richtungswechsel
bulletDie Felder GO und STOP ensprechen der grünen und roten Taste an einer 6021

 

Central Unit 6020 links; Interface 6050 rechts
Speisung über einen alten Trafo
das Interface hat neben dem RS232 Mode auch einen TTL-Mode, welcher im Zusammenhang mit einem Arduino die Kommunikation wesentlich vereinfacht:

Dip-Schalter am Interface:
für RS232 müssen diese auf ON / ON / OFF / OFF stehen
für TTL hingegen auf OFF /OFF / ON / ON

 

die "fliegende" Verbindung zwischen dem RS232 - Kabel und dem Arduino.
da in diesem Projekt der Arduino nur sendet, reichen 2 Kabel: GND (schwares Kabel) und TX1 (PIN 18 am Arduino, rotes Kabel)
diese werden mit PIN 5 (GND) und PIN 2 (Tx) am Stecker verbunden
die beiden Loks mit den Adressen 64 (Ae 6/6) und 2 (BR81) für den Test

 

hier der code: Lokcontroller_MEGA.ino

und als pdf (nicht vollständig): Lokcontroller_MEGA.pdf

 

und hier noch der Link zu einem ungeschnittenen Video: http://youtu.be/qUDpJ9X7cLU