15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung...

39
15.05.2003 15.05.2003 VPDV – Geschwindigkeitsmessung @ VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper by D. Pötz / D. Pröpper PDV Vertiefung PDV Vertiefung Projekt Projekt Geschwindigkeitsmessung Geschwindigkeitsmessung

Transcript of 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung...

Page 1: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

PDV VertiefungPDV Vertiefung

ProjektProjekt

GeschwindigkeitsmessungGeschwindigkeitsmessung

Page 2: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Positionsbestimmung einer Modelleisenbahn durch Positionsbestimmung einer Modelleisenbahn durch Geschwindigkeitsmessung.Geschwindigkeitsmessung.

MIT :MIT :

– Messvorrichtung Messvorrichtung – Programm zurProgramm zur Geschwindigkeitsermittlung Geschwindigkeitsermittlung – Weiterverarbeitung durch JavaprogrammWeiterverarbeitung durch Javaprogramm

AufgabenstellungAufgabenstellung

Page 3: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

ProjektplanungProjektplanung

Umsetzung der Messung durch Umsetzung der Messung durch Funkmaus.Funkmaus.

Entwicklungsumgebung (C++, VB, Java, Entwicklungsumgebung (C++, VB, Java, C#,….).C#,….).

Laufzeitumgebung des fertigen Laufzeitumgebung des fertigen Programms (Windows, Linux, Dos).Programms (Windows, Linux, Dos).

Schnittstelle für Java Programm.Schnittstelle für Java Programm.

Page 4: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

ProjektplanungProjektplanung

Was für ein Maustyp ?Was für ein Maustyp ?USB FunkmausUSB Funkmaus

USB Funkmaus mit seriellem AdapterUSB Funkmaus mit seriellem Adapter

PS2 FunkmausPS2 Funkmaus

Serielle FunkmausSerielle Funkmaus

ProblemProblemSerielle Funkmaus nur schwer bzw. gar nicht zu Serielle Funkmaus nur schwer bzw. gar nicht zu beschaffenbeschaffen

Serieller Adapter ist nicht immer mit jeder USB Serieller Adapter ist nicht immer mit jeder USB Maus kompatibelMaus kompatibel

Deshalb USB Maus

Page 5: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Weitere ProblemeWeitere Probleme

Messmaus darf nicht als „normale Maus“ Messmaus darf nicht als „normale Maus“ vom BS erkannt werden. (Messverfälschung)vom BS erkannt werden. (Messverfälschung)

Keinen direkten Zugriff auf Hardware unter Keinen direkten Zugriff auf Hardware unter Win2000/XP/NTWin2000/XP/NT

Einsatz eines generischen Treibers mit Win32 Einsatz eines generischen Treibers mit Win32 API SchnittstelleAPI Schnittstelle

VorteileVorteile

Plug & Play durch USB TreiberPlug & Play durch USB Treiber

Läuft unter fast allen gängigen BS Läuft unter fast allen gängigen BS (Win95/98/2000/NT/XP)(Win95/98/2000/NT/XP)

HW wird nicht als Maus erkannt vom HW wird nicht als Maus erkannt vom BetriebssystemBetriebssystem

Page 6: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufbau des Aufbau des UUniversal niversal SSerial erial BBusus

Alle Aktivitäten gehen vom Master (PC) aus.Alle Aktivitäten gehen vom Master (PC) aus.

Datenpakete werden wahlweise von 8 – 256 Bytes Datenpakete werden wahlweise von 8 – 256 Bytes versendet/empfangen.versendet/empfangen.

Jedes USB Gerät hat :Jedes USB Gerät hat :- 1 Device-Deskriptor- 1 Device-Deskriptor- 1 od. mehrer Configuration-Deskriptor- 1 od. mehrer Configuration-Deskriptor- 1 od. mehrer Interface-Deskriptor- 1 od. mehrer Interface-Deskriptor- 1 od. mehrer Endpoint-Deskriptor- 1 od. mehrer Endpoint-Deskriptor

Page 7: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

USB Descriptor HierarchieUSB Descriptor Hierarchie

Das System fragt neben dem Konfiguration-, Interface- auch die Endpoint-Deskriptoren ab.

Jedes Gerät wird anhand der beiden 16-Bit-Zahlen (Vendor-ID/Produkt-ID) genau Identifiziert.

Page 8: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Einbindung des generischen USB TreiberEinbindung des generischen USB Treiber

Benutzt wurde das USBIO Development Kit V2.0(LT) Benutzt wurde das USBIO Development Kit V2.0(LT) der Firma Thesycon.der Firma Thesycon.

Durch Benutzung der Programmierschnittstellen Durch Benutzung der Programmierschnittstellen wurde ein direktes Auslesen der Daten von der wurde ein direktes Auslesen der Daten von der USB Maus möglich.USB Maus möglich.

Programm ist als Freeware zu bekommen.Programm ist als Freeware zu bekommen.

Entwicklung eines eigenen Treibers entfällt.Entwicklung eines eigenen Treibers entfällt.

Page 9: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Win32 USB Treiber StackWin32 USB Treiber Stack

Page 10: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Einbindung des generischen USB TreiberEinbindung des generischen USB Treiber

Einfache Installation durch Setuproutine.Einfache Installation durch Setuproutine.

Nach der Installation erfolgt die Konfiguration Nach der Installation erfolgt die Konfiguration (Umleiten des gewünschten USB Gerätes).(Umleiten des gewünschten USB Gerätes).

Die Funkmaus wird hier als HID (Human Die Funkmaus wird hier als HID (Human Interface Device) bezeichnet.Interface Device) bezeichnet.

Page 11: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Einbindung des generischen USB TreiberEinbindung des generischen USB Treiber

Page 12: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipeDas Programm ReadPipe

Die Hauptaufgaben :Die Hauptaufgaben :

Stellt die Verbindung zum USB Gerät her.Stellt die Verbindung zum USB Gerät her.

Ließt die Daten kontinuierlich aus der USB Maus aus.Ließt die Daten kontinuierlich aus der USB Maus aus.

Errechnet aus diesen die Aktuelle Geschwindigkeit.Errechnet aus diesen die Aktuelle Geschwindigkeit.

Speichert Messdaten in eine Textdatei für spätere Speichert Messdaten in eine Textdatei für spätere Auswertung.Auswertung.

Page 13: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipeDas Programm ReadPipe

Das Programm wird momentan noch mit 2 Parametern aufgerufen.Das Programm wird momentan noch mit 2 Parametern aufgerufen.Para1 = Datei zum Speichern der MessdatenPara1 = Datei zum Speichern der MessdatenPara2 = Endpoint Adresse des USB Gerätes z.B. 0x81Para2 = Endpoint Adresse des USB Gerätes z.B. 0x81

Folgende Include Dateien werden benötigt :Folgende Include Dateien werden benötigt :#include <windows.h>#include <windows.h> #include <stdio.h>#include <stdio.h>#include <iostream.h>#include <iostream.h> #include <conio.h>#include <conio.h>#include <stdlib.h>#include <stdlib.h> #include <sys/timeb.h>#include <sys/timeb.h>#include <sys/types.h>#include <sys/types.h> #include <string.h>#include <string.h>#include <time.h>#include <time.h> #include <winioctl.h>#include <winioctl.h>#include <setupapi.h>#include <setupapi.h> #include "usbio_i.h„#include "usbio_i.h„#include "usbspec.h“#include "usbspec.h“

Die Includedatei usbio_i.h stellt USBIO Treiber Interface da.Die Includedatei usbio_i.h stellt USBIO Treiber Interface da.

Page 14: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipeDas Programm ReadPipe

Die externe Funktion IoctlSync( )Die externe Funktion IoctlSync( )

Die IoctlSync ist eine generische Unterstützungsfunktion,Die IoctlSync ist eine generische Unterstützungsfunktion,

um die IOCTL Request´s zum USBIO Gerätetreiberum die IOCTL Request´s zum USBIO Gerätetreiber

weiterzuleiten. Diese Funktion wird intern verwendet, umweiterzuleiten. Diese Funktion wird intern verwendet, um

die asynchrone USBIO API zu handeln. Sie ruft unterdie asynchrone USBIO API zu handeln. Sie ruft unter

anderem den Gerätetreiber auf.anderem den Gerätetreiber auf.

Page 15: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Funktion IoctlSync()Funktion IoctlSync()

DWORDIoctlSync( HANDLE FileHandle, DWORD IoctlCode, const void *InBuffer, DWORD InBufferSize, void *OutBuffer, DWORD OutBufferSize, DWORD *BytesReturned ){ DWORD Status; DWORD BytesRet = 0; BOOL succ; OVERLAPPED Overlapped; ZeroMemory(&Overlapped,sizeof(Overlapped)); Overlapped.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); if ( Overlapped.hEvent==NULL ) { return USBIO_ERR_NO_MEMORY; }

/*Ruft den Gerätetreiber*/ succ = DeviceIoControl( FileHandle, // driver handle IoctlCode, // IOCTL code (void*)InBuffer, // input buffer InBufferSize, // input buffer size OutBuffer, // output buffer OutBufferSize, // output buffer groesse &BytesRet, // anzahl der zurückgegebenen bytes &Overlapped // OVERLAPPED structure ); if ( succ ) { Status = USBIO_ERR_SUCCESS; } Else { ……………………

Page 16: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

Auflisten aller angeschlossener USBIO Auflisten aller angeschlossener USBIO Geräte mit der Funktion Geräte mit der Funktion SetupDiGetClassDevs( );SetupDiGetClassDevs( );

Aufzählen der Geräte-InterfacesAufzählen der Geräte-Interfaces

Auslesen der Interfaces Detail DatenAuslesen der Interfaces Detail Daten

Page 17: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

Öffnen des Gerätes mit der Funktion Öffnen des Gerätes mit der Funktion CreateFile( ); // Gerätehandle erstellenCreateFile( ); // Gerätehandle erstellen

Danach Konfiguration des USB Gerätes Danach Konfiguration des USB Gerätes durch Aufruf der Funktion IoctlSync( ) durch Aufruf der Funktion IoctlSync( )

Nun muss noch der Gerätehandle an eine Nun muss noch der Gerätehandle an eine Pipe gebunden werden, wieder durch Pipe gebunden werden, wieder durch IoctlSync( ) // nur eine Pipe pro HandleIoctlSync( ) // nur eine Pipe pro Handle

Page 18: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

Herzstück des Programms:Herzstück des Programms:

Endlos For Schleife wird nur bei _kbhit() Endlos For Schleife wird nur bei _kbhit() unterbrochen.unterbrochen.Mit der Funktion ReadFile() lesen wir nun Mit der Funktion ReadFile() lesen wir nun die Daten in unseren Buffer.die Daten in unseren Buffer.Abfrage ob das Auslesen korrekt gelaufen Abfrage ob das Auslesen korrekt gelaufen ist ist Buffer auslesen und Geschwindigkeit Buffer auslesen und Geschwindigkeit ausrechnen.ausrechnen.

Page 19: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Das Programm ReadPipe Das Programm ReadPipe Main()Main()

BufferPosition=2;BufferPosition=2;result=(char)(Buffer[BufferPosition]);result=(char)(Buffer[BufferPosition]);

sum = sum+result;sum = sum+result;

BufferPosition=BufferPosition+4;BufferPosition=BufferPosition+4;

stop = clock();stop = clock();VerstricheneTime = (double)(stop - start) / CLOCKS_PER_SEC;VerstricheneTime = (double)(stop - start) / CLOCKS_PER_SEC;GesamtTime = (double)(stop - gtime) / CLOCKS_PER_SEC;GesamtTime = (double)(stop - gtime) / CLOCKS_PER_SEC;if (VerstricheneTime >= MSEC)if (VerstricheneTime >= MSEC){{ start = clock();start = clock(); deltasum = sum - tmpsum;deltasum = sum - tmpsum; tmpsum = sum;tmpsum = sum; strecke = (double)((double)(deltasum*EICHUNG)/MOUSE_AUFLOESUNG);strecke = (double)((double)(deltasum*EICHUNG)/MOUSE_AUFLOESUNG); gesamtstrecke = (double)((double)(sum*EICHUNG)/MOUSE_AUFLOESUNG);gesamtstrecke = (double)((double)(sum*EICHUNG)/MOUSE_AUFLOESUNG); geschwindigkeit = (strecke/VerstricheneTime);geschwindigkeit = (strecke/VerstricheneTime);………….//Ausgabe .//Ausgabe }}

Page 20: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufbau einer Maus IAufbau einer Maus I

Logitech Funkmaus(Logi CL Maus €32)Logitech Funkmaus(Logi CL Maus €32)

Reichweite ca. 2mReichweite ca. 2m

Ball an der Unterseite eingelassenBall an der Unterseite eingelassen

Übertragung der Bewegung über eine Übertragung der Bewegung über eine Walze zu der CodierscheibeWalze zu der Codierscheibe

Abnahme der Bewegung mit Leucht- und Abnahme der Bewegung mit Leucht- und FotodiodeFotodiode

Page 21: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufbau einer Maus IIAufbau einer Maus II

Signale werden von Chip codiertSignale werden von Chip codiert

Codierung in 5 Byte breite WörterCodierung in 5 Byte breite Wörter

11 22 33 44 55

0000 0000 FAFA 0000 0000KnöpfeKnöpfe Links-Links-

RechtsRechtsVor/Vor/ZurückZurück

Scroll-Scroll-RadRad

????

Page 22: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Anforderungen an die MausAnforderungen an die Maus

USB (wegen Hilfstool)USB (wegen Hilfstool)

Ball zur Bewegungsaufnahme (wegen Ball zur Bewegungsaufnahme (wegen Übertragung Achse-Codierscheibe)Übertragung Achse-Codierscheibe)

FunkübertragungFunkübertragung

Mind. 2m ReichweiteMind. 2m Reichweite

=> Logitech Funkmaus(Logi CL Maus €32)=> Logitech Funkmaus(Logi CL Maus €32)

Page 23: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IDer Umbau I

Fragestellung:Fragestellung: Maus auf die Schiene oderMaus auf die Schiene oder

Maus auf den Wagen ?Maus auf den Wagen ?

Page 24: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IIDer Umbau II

Entfernen aller Komponenten vom Entfernen aller Komponenten vom MausgehäuseMausgehäuse

Aussägen der Halterung für die Aussägen der Halterung für die Codierscheibe und eine nicht VerwendeteCodierscheibe und eine nicht Verwendete

Markieren der Position der Halterungen Markieren der Position der Halterungen auf dem Wagenauf dem Wagen

Position ist abhängig von der AchsePosition ist abhängig von der Achse

Page 25: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IIIDer Umbau III

Durchbohren des Wagens zur AchseDurchbohren des Wagens zur Achse

Halterungen mit Heißkleber befestigenHalterungen mit Heißkleber befestigen

Auslöten der LED´s aus der Hauptplatine Auslöten der LED´s aus der Hauptplatine und auf Trägerplatine (1cm x 1cm) lötenund auf Trägerplatine (1cm x 1cm) löten

Verbinden der Träger-Verbinden der Träger-

platine mit der Hauptplatine platine mit der Hauptplatine

und in Halterung steckenund in Halterung stecken

Page 26: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau IVDer Umbau IV

Hauptplatine festklebenHauptplatine festkleben

Keilriemen aufziehen (von Handschuh)Keilriemen aufziehen (von Handschuh)

Batterien anschließenBatterien anschließen

Page 27: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Der Umbau VDer Umbau V

=> Fertig !!=> Fertig !!

Page 28: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Aufgetretene Probleme und ErkenntnisseAufgetretene Probleme und Erkenntnisse

Bei höheren Geschw. Wegverlust Bei höheren Geschw. Wegverlust (Datenverlust)(Datenverlust)

Resultierend aus der Trägheit der DiodeResultierend aus der Trägheit der Diode

=> Übersetzung durch einen Keilriemen, => Übersetzung durch einen Keilriemen, anstatt Direktmontierung auf der Achseanstatt Direktmontierung auf der Achse

Verlust aufgrund von Schlupf sollte Verlust aufgrund von Schlupf sollte vernachlässigbar seinvernachlässigbar sein

Page 29: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Weitere ErkenntnisseWeitere Erkenntnisse

Optische Maus nicht geeignetOptische Maus nicht geeignetDurch Beschaffenheit der GleiseDurch Beschaffenheit der Gleise

Abstand Gleise – MausoptikAbstand Gleise – Mausoptik

Aufbau der Messeinrichtung auf der Aufbau der Messeinrichtung auf der Lokomotive nicht geeignetLokomotive nicht geeignet

Wegen PlatzmangelWegen Platzmangel

Page 30: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Kommunikation mit dem JAVA-ProgrammKommunikation mit dem JAVA-Programm

Shared Memory SegmentShared Memory Segment (-)(-)

TCPTCP (+)(+)

UDPUDP (++)(++)

Page 31: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

UDPUDP

Anforderungen die wir stellen:Anforderungen die wir stellen:Kurze Nachrichten versenden (+)Kurze Nachrichten versenden (+)

Schnell und unkompliziert einzurichten (+)Schnell und unkompliziert einzurichten (+)

Schneller TransportSchneller Transport

Wiederholen der Anfrage bei keiner AntwortWiederholen der Anfrage bei keiner Antwort

=> UDP Verbindung=> UDP Verbindung

Page 32: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

UDP Programm Aufbau (Client/Server)UDP Programm Aufbau (Client/Server)

Erzeugen eines Sockets ( Socket (...) )Erzeugen eines Sockets ( Socket (...) )

Binden des Sockets an den gewünschten Binden des Sockets an den gewünschten Port ( bind(...) )Port ( bind(...) )

Abrufen des nächsten PaketsAbrufen des nächsten PaketsMit recv(...) (Thread blockiert)Mit recv(...) (Thread blockiert)

Inhalt interpretierenInhalt interpretieren

Ggf. antworten ( send(...) )Ggf. antworten ( send(...) )

Page 33: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

PAP für Kommunikation und AuswertungPAP für Kommunikation und Auswertung

Page 34: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Quellcodebeispiele zur Kommunikation Quellcodebeispiele zur Kommunikation Client/Server:Client/Server:

while( rc != SOCKET_ERROR )while( rc != SOCKET_ERROR ){{

rc = recv(connectedSocket,buf,256,0); //Empfangen der Daten(Anforderung)rc = recv(connectedSocket,buf,256,0); //Empfangen der Daten(Anforderung)................empfang[rc]='\0'; //Zur Vorsorge Terminierenempfang[rc]='\0'; //Zur Vorsorge Terminierenif( 0 == strcmp(empfang,"99999") ) if( 0 == strcmp(empfang,"99999") ) {{

anfrage = true; //Setzen das es eine Anfrage gibtanfrage = true; //Setzen das es eine Anfrage gibtwhile( ready != true ) while( ready != true ) {{

//Wartet bis das Ergebnis berechnet ist//Wartet bis das Ergebnis berechnet ist}}rc = send(connectedSocket,ergebnis,strlen(ergebnis),0);rc = send(connectedSocket,ergebnis,strlen(ergebnis),0);ready = false;ready = false;anfrage = false;anfrage = false;

}}if( 0 == strcmp(empfang,"0815") )if( 0 == strcmp(empfang,"0815") ){{

//Beendet den Server//Beendet den Serverbreak;break;

}}}}

Page 35: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Messdatenauswertung I Messdatenauswertung I eine Rundeeine Runde

Page 36: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Messdatenauswertung II Messdatenauswertung II Mittel von 10 RundenMittel von 10 Runden

Page 37: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Messdatenauswertung IIIMessdatenauswertung III

Gleis

Page 38: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

Erkenntnisse und ZukunftsperspektivenErkenntnisse und Zukunftsperspektiven

Erkenntnisse:Erkenntnisse:Hinreichend genaue MessergebnisseHinreichend genaue Messergebnisse

Trägheit der Dioden setzen GrenzenTrägheit der Dioden setzen Grenzen

Abweichungen pro Runde im Bereich von 9-20 Abweichungen pro Runde im Bereich von 9-20 Pixel entspricht 3-7mmPixel entspricht 3-7mm

PerspektivenPerspektivenStromversorgung über GleisanlageStromversorgung über Gleisanlage

Umbau der Messeinrichtung auf die LokUmbau der Messeinrichtung auf die Lok

Page 39: 15.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper PDV Vertiefung ProjektGeschwindigkeitsmessung.

15.05.200315.05.2003 VPDV – Geschwindigkeitsmessung @ by D. Pötz / D. PröpperVPDV – Geschwindigkeitsmessung @ by D. Pötz / D. Pröpper

QuellenQuellen

http://www.c-programming.de/http://www.c-programming.de/

http://www.thesycon.dehttp://www.thesycon.de

http://ac16.uni-paderborn.de/arbeitsgebiethttp://ac16.uni-paderborn.de/arbeitsgebiete/messtech/elektro_grundlagen/usb/index.e/messtech/elektro_grundlagen/usb/index.htmlhtml

http://www.microsoft.comhttp://www.microsoft.com