Hi Manfred!
Zur Erklärung zum Rennbetrieb bzw. der Flut von Impulsen:
Das Problem ist nicht die Geschwindigkeit von Windows, dem USB-Port oder dem IOW alleine sondern eine Kombination aus alle dem. Dennoch kann ich sagen das die Verzögerung zwischen zwei Reports des IOW an den PC im schlechtesten Fall USB-Bedingt (max. 100 Reports/Sekunde) 1/100s beträgt. So lange der PC immer noch etwas Rechenleistung frei hat und nicht auf 100% CPU-Last läuft sollte das Programm schnell genug sein den Report inkl. der aktuellen Zeit zu erfassen. Die genauere Berechnung der Zeiten, Runden usw. passiert dann im Hintergrund in einem anderen Thread (Threads kann man sich vorstellen wie eigene kleine Programme die vollkommen selbstständig vom und asynchron zum Hauptprogramm laufen) während der Zeiterfassungsthread schon wieder an dem IOW lauscht ob was passiert. Die Aktualisierung der Anzeige macht dann das eigentliche Programm (also ein dritter Thread). Sollte nun das Programm noch mit der Aktualisierung der Anzeige beschäftigt sein ist das kein Problem solange noch CPU-Zeit frei ist für die anderen Threads. Diese rechnen dann einfach die Zeiten aus und speichern diese schonmal. Die Prioritäten habe ich natürlich auf die Zeiterfassung gelegt. So kann es schonmal passieren das der Bildschirm ein wenig hinterher hinkt (kaum spürbar), aber am Ende stimmt das Ergebnis!
Ich habe nur schon überlegt ob ich die Zeiterfassung nicht komplett auf 1/100s Genauigkeit auslegen soll, so ist dann im Extremfall auch niemand benachteiligt bzw. es treten keine Überlegungen auf ob die Zeit nun stimmt oder nicht.
Leider hat man keine Möglichkeit Einfluss auf die Zwischenspeicherung der Reports zu nehmen da dies hardwareinterne, feste Funktionen sind.
Die Geschwindigkeitsmessung bereitet mir in punkto Präzision auch noch ein wenig Kopfzerbrechen ob das so klappt wie ich mir das vorstelle. Wahrscheinlich wird das ganze so aussehen: pro Spur 2 aufeinanderfolgende Reedkontakte in ca. 20cm Abstand. Nun kann ich ja anhand der zeiten in denen die Impulse ausgelöst wurden die Geschwindigkeit errechnen und anzeigen. Die Präzision hängt natürlich davon ab wie genau man die Abstände der Sensoren im Programm einträgt. Die Berechnung wird für den PC eine Kleinigkeit sein.
Zu der Lichtschranke kann ich nur sagen das die nur so lange perfekt funktioniert wie sich die Umgebungsbeleuchtung bzw. -helligkeit nicht ändert. Wir haben beim "Schneller" im Sommer diverse Rennen draußen gefahren und hatten das Problem das er ständig die Lichtschranke nachjustieren musste. Das ist natürlich besonders schlecht wenn mitten im Rennen eine Spur auf einmal nicht mehr gezählt wird. Sowas entfällt natürlich bei Reedkontakten. Außerdem haben Reeds den Vorteil das die Schiene nicht beschädigt werden muß. Da meine Bahn auch (relativ) portabel ist ist ein Einsatz draussen nicht ausgeschlossen und nervige Justagearbeiten entfallen.
Zur Empfindlichkeit kann ich nur sagen das auch ein frisch geölter Patriot oder ein 440x2 F1 oder ein Tomy SG+ keine Probleme darstellen - genauso wenig wie "Schwachmagneter" wie z.B. TJets. Zur Empfindlichkeit kann ich nur empfehlen vor dem kauf die Datenblätter zu studieren und generell gilt: je kleiner der Kontakt, desto schneller und empfindlicher ist er. Ich habe mir jetzt noch die kleinsten verfügbaren von Reichelt mitbestellt. Die sind gerade mal 5,4mm lang und 1,4mm dick. Die werden dann bei Start/Ziel montiert! <img src='http://www.h0slot.de/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt='
' />
Eine andere Alternative wären Lichtschranken im Slot. Sowas habe ich mal entsprechend der Anleitung bei Carrera4Fun.de nachgebaut, bin aber auf das Problem gestossen das die Störungen der Autos auf Grund der hohen Drehzahlen und der fehlenden Funkentstörung so groß waren das die Schiene ständig Impulse ausgelöst hat. Ansonsten hat sie perfekt funktioniert.
Grüße,
Carsten
Zur Erklärung zum Rennbetrieb bzw. der Flut von Impulsen:
Das Problem ist nicht die Geschwindigkeit von Windows, dem USB-Port oder dem IOW alleine sondern eine Kombination aus alle dem. Dennoch kann ich sagen das die Verzögerung zwischen zwei Reports des IOW an den PC im schlechtesten Fall USB-Bedingt (max. 100 Reports/Sekunde) 1/100s beträgt. So lange der PC immer noch etwas Rechenleistung frei hat und nicht auf 100% CPU-Last läuft sollte das Programm schnell genug sein den Report inkl. der aktuellen Zeit zu erfassen. Die genauere Berechnung der Zeiten, Runden usw. passiert dann im Hintergrund in einem anderen Thread (Threads kann man sich vorstellen wie eigene kleine Programme die vollkommen selbstständig vom und asynchron zum Hauptprogramm laufen) während der Zeiterfassungsthread schon wieder an dem IOW lauscht ob was passiert. Die Aktualisierung der Anzeige macht dann das eigentliche Programm (also ein dritter Thread). Sollte nun das Programm noch mit der Aktualisierung der Anzeige beschäftigt sein ist das kein Problem solange noch CPU-Zeit frei ist für die anderen Threads. Diese rechnen dann einfach die Zeiten aus und speichern diese schonmal. Die Prioritäten habe ich natürlich auf die Zeiterfassung gelegt. So kann es schonmal passieren das der Bildschirm ein wenig hinterher hinkt (kaum spürbar), aber am Ende stimmt das Ergebnis!
Ich habe nur schon überlegt ob ich die Zeiterfassung nicht komplett auf 1/100s Genauigkeit auslegen soll, so ist dann im Extremfall auch niemand benachteiligt bzw. es treten keine Überlegungen auf ob die Zeit nun stimmt oder nicht.
Leider hat man keine Möglichkeit Einfluss auf die Zwischenspeicherung der Reports zu nehmen da dies hardwareinterne, feste Funktionen sind.
Die Geschwindigkeitsmessung bereitet mir in punkto Präzision auch noch ein wenig Kopfzerbrechen ob das so klappt wie ich mir das vorstelle. Wahrscheinlich wird das ganze so aussehen: pro Spur 2 aufeinanderfolgende Reedkontakte in ca. 20cm Abstand. Nun kann ich ja anhand der zeiten in denen die Impulse ausgelöst wurden die Geschwindigkeit errechnen und anzeigen. Die Präzision hängt natürlich davon ab wie genau man die Abstände der Sensoren im Programm einträgt. Die Berechnung wird für den PC eine Kleinigkeit sein.
Zu der Lichtschranke kann ich nur sagen das die nur so lange perfekt funktioniert wie sich die Umgebungsbeleuchtung bzw. -helligkeit nicht ändert. Wir haben beim "Schneller" im Sommer diverse Rennen draußen gefahren und hatten das Problem das er ständig die Lichtschranke nachjustieren musste. Das ist natürlich besonders schlecht wenn mitten im Rennen eine Spur auf einmal nicht mehr gezählt wird. Sowas entfällt natürlich bei Reedkontakten. Außerdem haben Reeds den Vorteil das die Schiene nicht beschädigt werden muß. Da meine Bahn auch (relativ) portabel ist ist ein Einsatz draussen nicht ausgeschlossen und nervige Justagearbeiten entfallen.
Zur Empfindlichkeit kann ich nur sagen das auch ein frisch geölter Patriot oder ein 440x2 F1 oder ein Tomy SG+ keine Probleme darstellen - genauso wenig wie "Schwachmagneter" wie z.B. TJets. Zur Empfindlichkeit kann ich nur empfehlen vor dem kauf die Datenblätter zu studieren und generell gilt: je kleiner der Kontakt, desto schneller und empfindlicher ist er. Ich habe mir jetzt noch die kleinsten verfügbaren von Reichelt mitbestellt. Die sind gerade mal 5,4mm lang und 1,4mm dick. Die werden dann bei Start/Ziel montiert! <img src='http://www.h0slot.de/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt='
' />Eine andere Alternative wären Lichtschranken im Slot. Sowas habe ich mal entsprechend der Anleitung bei Carrera4Fun.de nachgebaut, bin aber auf das Problem gestossen das die Störungen der Autos auf Grund der hohen Drehzahlen und der fehlenden Funkentstörung so groß waren das die Schiene ständig Impulse ausgelöst hat. Ansonsten hat sie perfekt funktioniert.
Grüße,
Carsten

