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.
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..
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).
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.
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.
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.