Handregler - Erste Ideen
Hardware
-
Modularer Aufbau, entweder als Tischregler, Handregler oder Funkregler.
Prozessor | Atmega, Picopower | ||||
Bedieninterface |
| ||||
Display | LCD Charakter Display, mind. 2 Zeilen, mind. 16 Zeichen Farbdisplay, 1,8 Zoll, 128 x 176 Pixel | ||||
Remote Interface | Kabel: Xpressnet Funk: Analog Devices ADF7025, lizenzfreier FSK Transceiver bei 868MHz Funk: XBee vom Maxstream.net (z.B. bei reichelt oder Sphinx) |

GUI
-
Das Userinterface besteht aus:
- Drehrad mit Push-Button:
im Lokmode: Speed, Stop
im Weichenmode: Schalten
im Menumode: Zahlenwerte, Enter. - Seitliche Taster für Schnellbedienung:
- "Change"
Lokmode, Weichenmode: nächste / vorherige Lok / Weiche wählen - "Mode"
Lokmode, Weichenmode, CV-Mode, Setup wählen - "Select"
braucht es das - ev. Knopf
- "Change"
- einfaches Numpad:
im Lokmode: Funktionen aufrufen
im Weichenmode: Adresseingabe
GUI, zweiter Entwurf
- Lokmenu
Im Lokmenu wird eine Lok mit angezeigt; Aktuelle Geschwindigkeit und aktuelle Funktionen.Lokmenu Drehrad drehen Ändert die aktuelle Fahrstufe, man kann nicht in die andere Fahrtrichtung drehen.
Wenn zugleich mit shift: Funktionsauswahl weiterschaltenDrehrad drücken Wenn eine Fahrstufe >0 gewählt ist, dann stoppt die Lok. Wechselt die Fahrtrichtung Cursor up/down wählt eine neue Lok aus der Lokdatenbank; in der Datenbank ist immer ein freier Eintrag 'neue Lok'. Center ruft die Eigenschaften dieser Lok auf - Adresse, Name, Anzahl Fahrstufen;
Shift + Center schaltet das Licht aus und ein.Softkeys Funktionsaufruf dieser Lok F1..F4; zugleich mit Shift: F5..F8; vorangeganger Shift-Dreh: Funktionen +8; +12; +16; +20; +24
Anzeige:

Es gibt folgende Bedienelemente und Tasten:
Drehrad mit Push-Button,
navimec (Cursor up, Cursor down, Cursor left, Cursor right, Center)
4 Softkeys (über dem Drehrad), ev. schwach beleuchtet
1 Hardkey (Nothalt), mit integrierter RT/GN LED, welche den Zustand des Systems anzeigt.
1 Alternate Key (Shifttaste).
Menus:
Auf der oberstem Ebene gibt es 4 Hauptmenus, diese werden mit Cursor links/rechts durchgescrollt. In allen Menus wirkt Nothalt immer als Systemstop / Start.
|--------------------| |-> LOK ON | | BBII #98 | | -------: >>> (25) | | F0* F1o F2o F3* | |--------------------|
Im Weichenmenu werden zwei Weichen / Signale nebeneinander angezeigt. Eine dieser beiden Weichen hat den 'Focus'. Es gibt innerhalb des Handreglers eine kleine Datenbank mit Weichenadressen, Namen und Typ.
Weichenmenu | |
---|---|
Drehrad drehen | Ändert die aktuelle Adresse |
Drehrad drücken | Wechselt den Focus links / rechts |
Cursor up/down | wählt innerhalb des Focus eine Weichenadresse aus dem Cache bzw. aus dem Namensverzeichnis. |
Center | ruft die Eigenschaften dieser Weiche auf - Adresse, Name, Typ; |
Softkeys | F1 - F2: Schaltet die Weiche auf der linken Hälfte des Screens. F3 - F4: Schaltet die Weiche auf der rechten Hälfte des Screens. zugleich mit Shift: beide Focusfenster temporär um eine Einstellung zurückgedreht. |
|--------------------| |-> WEICHE ON | | HBf li1 | Sig Gl1 | | #0003 | #0010 | | 0 1 | 0 1 | |--------------------|
Im Progmenu wird PoM-Adresse CV-Adresse und CV-Inhalt angezeigt. Eines dieser beiden Felder hat den 'Focus'.
Programmieren Menu | |
---|---|
Drehrad drehen | Ändert die aktuelle Zahl im Focus |
Drehrad drücken | Wechselt den Focus zyklisch durch |
Cursor up/down | wählt das jeweils letzte gültige CV+Daten Pärchen aus der History. |
Center | wählt die Programmiertechnik aus: Registermode, CV-Mode |
Softkeys | F1: read on Programming Track. F2: write on Programming Track. F3: PoM read. F4: PoM write. Shift + F3: Accessory PoM read. Shift + F4: Accessory PoM write. |
Im Setupmenu werden interne Einstellungen des Handregler gemacht.
Setupmenu | |
---|---|
Drehrad drehen | Ändert die aktuelle Zahl im Focus |
Drehrad drücken | Wechselt den Focus zyklisch durch |
Cursor up/down | wählt das jeweilige Einstellungsmenu. |
Center | stellt default wieder her |
Softkeys | F1-F4: Aufruf der Einstellungen |
Einstellungen:
Slot-ID: Automatic oder Manual + ID-Eingabe
Display: Helligkeit, Abschaltzeit
Drehrad: Beschleunigung [aus | langsam | schnell]
Sprache: [D, UK]
DCC: default für Fahrstufen
Hardware für 2. Entwurf


Software
-
Xpressnet IF als Subtask
Stateengine für Menuführung
Keyboard (Interruptgesteuert, mit Softsleep für Stromsparen)
PC Handregler (z.B. für Rocrail)
- 13.10.2008: Der Handregler bekommt einen Mode, mit dem alle Kommando direkt an den PC durchgereicht werden und auch
die Anzeigen des Displays vom PC erstellt werden.
- 1.Im Regler Setupmenu wird eingestellt: Ich bin rocrail Regler [über Xpressnet | über USB]
Regler sendet: 0x3* <id> 0x20 0x01
Syntax: 0x3* <id> 0x20 <code> (<id> markiert den Regler, 0x20 = config_message, code = 1 -> 'Hello') - 2. Rocrail sendet Textfelder, z.B. textfeld[1][1]=("Welcome to"); und textfeld[1][10]=(" rocrail");
PC sendet: 0x3* <id> 0x21 0x00 0x00 'Welcome to'
Syntax: 0x3* <id> 0x21 <x> <y> [string] (<id> markiert den Regler, 0x21 = text_message,x,y: Positionen, String=max 12 Zeichen) - 3. Regler sendet Tastendrücke.
Regler sendet: 0x3* <id> 0x21 KEY_SOFT_1 0x01
Syntax: 0x3* <id> 0x21 Tastencode Parameter (Parameter: 0x01 = gedrückt, 0x00 losgelassen, bei Drehrad ist der Parameter die Anzahl der Rotates) - N. Rocrail entläßt den Regler wieder.
PC sendet: 0x3* <id> 0x20 0x00;
Syntax: 0x3* <id> 0x20 <code> (<id> markiert den Regler, 0x20 = config_message, code = 0 -> 'Good Bye')
Das sieht dann so aus (im Prinzip):
Hierzu wird die Kommunikation über das Xpressnet (bzw. jede andere Transportschicht) getunnelt.
In der lenz_parser.c: case 0x3: // special Command push to XpressNet xp_send_message(0x60 | pcc[1], pcc); pc_send_lenz(pars_pcm = pcm_ack); return; break;
Stand der Funkanbindung, Tests
Letzter update: 23.07.2010 Erläuterungen: ok: wurde getestet und hat funktioniert new: ist neu kodiert/fehlerbereinigt, jedoch noch ungetestet failed: ist beim Test nicht gegangen System: Connect, Disconnect: ok Clock: ok Clock Set: ok Start, Halt, Stop: ok Halt von Loks bei Disconnect: ok Halt von Loks bei broken: ok Autorecover nach broken: ok (aus SILENT) mehrfache Handregler: untested Stromsparfunktionen: not implemented Networkquality: not implemented Config der Zentrale: ok Lok: FS14: ok FS28: ok FS128: ok Richtung: ok kurze Addr: ok lange Addr: ok Nothalt: ok Licht: ok F1: ok F5: ok F8: ok F28: ok Lokübernahme von anderen Regler (Xpressnet): untested Lokübernahme von anderen Regler (WRP): untested Lokübernahme zu anderem Regler (Xpressnet): new Lokübernahme zu anderen Regler (WRP): untested Stolennachricht: ok Pollen der geklauten Lok: failed Probleme, Fehler: Stolen bleibt am Schirm, wird nicht weggenommen Die Fahrstufe wird nicht richtig angefragt Gateway kommt bei stolen durcheinander (doppelte Anzeige) Weiche: Addr: ok Schalten: ok Abfrage: ok extended Acc: ok Prog: Prog-Mode Anzeige: new CV read: new CV write: new PoM read: new PoM write: new PoM Acc read: not implemented PoM Acc Write: not implemented PoM XAcc read: not implemented PoM XAcc Write: not implemented Addr set: new Feedback: Query: new Send Feedback: new Auto Notify: new
Links
-
Frequenzzuteilungen durch Bundesnetzagentur
Display Siemens S65 und AVR Diskussion in microcontroller.net
Display Nokia 6100 RGB-Tool
SPI.C
CMG Graphik Lib
www.roland-riegel.de SD Karten-Interface, Ethernet-AVR
XBEE Inbetriebnahme