2.0. Allgemeine Erklärungen zu den Programmen

Die hier von mir vorgestellten Programme haben keinen kommerziellen Hintergrund und dürfen nicht kommerziell verwendet werden.

Da alle meine Programme bisher nur auf meinem Rechner eingesetzt wurden, ist für den Einsatz auf anderen Rechnern eventuell eine Anpassung nötig. Deshalb ist es notwendig, mir eine Mail zu schicken, damit ich die nötigen Anpassungen durchführen kann. In späteren Versionen wird es die Möglichkeit geben, die Anpassung selbst durch entsprechende Dialoge durchzuführen.

Wenn weitere Fragen oder Hinweise sind, dann Bitte eine Mail schicken. Wenn jemand eine von mir hier vorgestellten Schaltungen/Software verwendet, würde ich mich über eine Rückmeldung freuen.

Wer von den hier vorgestellten Programmen die Quellen benötigt, der kann sie herunterladen. Zusätzlich ist zum Auspacken noch ein Passwort notwendig, das per E-Mail angefordert werden kann.

 

2.1 PC Fernbedienung

2.1.1 IR_16

Das Programm ermöglicht das Einlesen von Daten über die serielle Schnittstelle (2400,8,n,1). Die Daten können z.B. von der IR PC Fernbedienung(U806/SAB3022) mit RS232 Schnittstelle erzeugt werden. Nachdem die Daten eingelesen wurden, werden sie zur Fernbedienung/Steuerung von Windows Programmen verwendet. Es muß keine direkte Verbindung zwischen dem zu bedienenden Programm und IR_16.exe bestehen, da PostMessage aufgerufen wird.
In der Konfigurationsdatei (IR_16.txt) wird festgelegt, an welches Fenster/Applikation welche Nachricht geschickt werden soll.
Aufbau und Beispiele der Konfigurationsdatei
Fensterklassenname,Fenstername,Message,wParam,lParam,Ircode (keine Leerzeichen)
Fensterklassenname= DCC_Wclass,Fenstername=.....,Message=WM_COMMAND, wParam=101,lParam=1,IRcode=104
DCC_WClass,,273,101,1,104
Fensterklassenname= ....,Fenstername= Sample Application,Message=WM_COMMAND,wParam=32869,lParam=0,IRcode=64
,Generic Sample Application,273,32869,0,64

Ich benutze das Programm zum Bedienen der Eisenbahnsoftware, Radiokarte, TV Karte und CD Player und es kann unter allen Windows Plattformen verwendet werden..

2.1.2. IR_2000 ( N E U )

Das Projekt IR_2000 ist eine Weiterentwicklung von IR_16. Es besteht jetzt die Möglichkeit, eine handelsübliche IR Fernbedienung, wie sie z.B. bei TV Geräten (RC-5 Code Firma Philips) verwendet wird, zur Steuerung von Windowsprogrammen zu verwenden.

Neue Optionen:
- einfache Schaltung (10,- DM)
- keine externe Spannungsversorgung notwendig
- Verwendung verschiedenster Fernbedien Codes möglich (z.B. RC-5 Code)
- Learn Mode

Die Schaltung IR_2000 empfängt die Bitströme der gesendeten IR-Daten. Diese werden direkt an die serielle Schnittstelle weitergeleitet (es kann noch ein Max 232 verwendet werden). Das Programm liest Bytefolgen über die serielle Schnittstelle ein. Danach werden diese Daten mit den abgespeicherten Datenmustern verglichen und bei Übereinstimmung als gültiger Befehl interpretiert.

Die Abtastrate muß doppelt so groß sein, wie das abzutastende Signal. Die Datenrate für RC-5 Code beträgt 562 Hz (entspricht ca. 1120 Baud). Ich habe die Baudrate noch mal doppelt so groß gewählt (2240 Baud). Somit erscheint jedes Bit doppelt und es können besser Fehler erkannt werden. Zu beachten ist, das durch die serielle Übertragung mit RS232 durch das Protokoll(8,n,1) mit 1 Startbit und 1 Stopbit einige Datenbits des Bitstromes "verloren" gehen. Da aber immer die selben Bits "verloren" gehen und ein Vergleichsdatenmuster im Learn Mode abgespeichert wird, ist eine eindeutige Befehlserkennung möglich.

Durch das Togglebit im RC-5 Code ist es bei der jetzigen Version von IR_200 notwendig, jeden Befehl direkt 2x hintereinander zu lernen und zu
s p e i c h e r n !

Zusätzlich kann durch weitere Verdopplung der Baudrate und genaue Analyse der über RS232 empfangenen Datenströme der genaue RC 5 Befehl (3 + 5 + 6) binär ausgerechnet werden (wird in der jetzigen Version von noch nicht gemacht).

 

2.2. Windows Software für DCC (Modelleisenbahn)

Grundlage für dieses Programm bildeten Dcc-mb14.com und DCCTEST.C von M Brandt. Bevor das Programm gestartet werden kann, muß Dcc-mb14.com in der Autoexec.bat geladen werden. Dieses Programm kann nicht unter NT verwendet werden!
In der Konfigurationsdatei (Loco.txt) werden Lokadresse und Fahrstufen (und optional ein Bild) festgelegt.
Aufbau und Beispiele der Konfigurationsdatei
Lokadresse(0..127),Fahrstufen(14,28,128), Bild.bmp
1,14,Picture1.bmp
128,28,Picture2.bmp

Ich verwende das Programm zusammen mit der IR PC Fernbedienung(U806/SAB3022) mit RS232 Schnittstelle. Zusätzlich läßt es sich auch mit Maus und Tastatur bedienen. Die neue Version läßt sich mit Throttles (4) bedienen.

 

2.3. IR Fernbedienung für Modelleisenbahn

Diese Schaltung habe ich entwickelt, bevor ich mit der DCC Steuerung meiner Modelleisenbahn begann. Kernstück bildet der Schaltkreis U806/SAB3022 (sehr weit verbreitet in der ehemaligen DDR). Als Sender kann der U807/SAB3022B oder eine Lern- bzw. Fest-Code Fernbedienung verwendet werden.
In der einfachsten Ausbaustufe können 4 analoge Kanäle und 16 Schaltfunktionen realisiert werden. Zwei analoge Kanäle nutze ich zum Steuern der Gleichstromkreise der Lokomotiven, die andere zwei verwende ich zum Dimmen der Beleuchtung in den Häusern. Die Schaltfunktionen verwende ich zum Steuern der Weichen, Signale und Schranken. Die noch freien Ausgänge/Steuerfunktionen dienen zur Richtungssteuerung und Aktivierung der Schaltfunktionen. Bei Verwendung von zwei U806/SAB3022 mit unterschiedlichen Startbit können 8 analoge und 32 Schaltfunktionen realisiert werden. Durch zusätzliche Dekodierung (höherer Hardwareaufwand) können weitere Schaltfunktionen geschaffen werden.
Da der Schaltkreis U806/SAB3022 zusätzlich alle ankommenden IR Befehle seriell am Ausgang DATA und DLEN bereitstellt, habe ich mit dem PIC 16F84 eine Schaltung entwickelt, der die ankommenden Daten in RS232 (2400,8,n,1) wandelt. Für den PIC 16F84 habe ich das Programm serXser.asm geschrieben. Wenn notwendig, kann zur Pegelanpassung ein MAX202 o.ä. nachgeschaltet werden. Somit können die IR Daten mit einem PC weiter bearbeitet werden.
Speziell dafür habe ich das Programm IR_16 für Windows programmiert, mit dem ich das Programm DCC_WIN zur Steuerung digitaler Lokomotiven (DCC) verwende.

2.3. Software für Infinity 2 Lader von robbe

Die Anleitung zum Bau eines Kabels und weiter Informationen sind unter http://www.pibros.de/ zu finden.

Die erste Version des Programms soll die aktuellen Meßdaten über die serielle Schnittstelle lesen und in einem Dialogfenster übersichtlich darstellen.

Zusätzlich können folgende Meßdaten nach Abschluß der Messung als Datensatz in einer Datei gespeichert werden:
- Datum/Zeit
- Kapazität
- Mode
- Ladestrom/Zeit
- Entladestrom/Zeit

Für jeden Akku wird eine eigene Datei angelegt und die einzelnen Datensätze werden hinten angehängt. Die einzelnen Datenfelder sind ASCII Text und werden durch TAB getrennt. Jeder Datensatz darf nicht länger als 255 Zeichen lang sein und wird durch CR (0d 0a) abgeschlossen.

Beispiel: AR500.txt

AR 500
00/03/13 21:14:32 141 Disharge to Charge

Durch das ASCII Textformat kann die angelegte Datei leicht mit einem Textbetrachter angezeigt oder gedruckt werden. Die Grafische Darstellung kann mit Excel erfolgen. So kann man relativ einfach feststellen, wie sich die Kennwerte der Akkupacks mit der Zeit verändert haben.

Wer weitere Vorschläge, Hinweise hat, kann mir eine Mail schicken. Das Programm sollte auf allen Windows Plattformen (Win3.x, Win9x und NT/2000) laufen. Das Handling für die serielle Schnittstelle übernimmt die DLL RS232. Die von RS232.dll empfangenen Datenpakete (Achtung, das Datenpaket vom Infinity kann zerstückelt sein oder mehrere Datenpakete enthalten) werden mit PostMessage(...) an die entsprechende Applikation weitergeleitet.

Der Quelltext kann bei mir per Mail angefordert werden.