Forum: PC-Programmierung Zeitnahme & Auswertung am PC


von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich plane ein Projekt für einen Flyball-Verein (Hundesport) und suche 
ein paar Ideen oder Ratschläge dafür.

Beim Flyball geht es darum, das 4 Hunde hintereinander einen Parkour 
laufen um einen Ball zu holen. Dabei darf der zweite Hund erst 
einlaufen, wenn der erste die Strecke verlassen hat, sonst gibt es einen 
Wechselfehler. Die Zeit zwischen raus laufen und einlaufen des nächsten 
Hundes sollte aber auch so gering wie möglich sein.

Da die Profi-Systeme weit über 1000 € kosten, hat man mich gefragt, ob 
ich nicht eine Zeitnahme bauen kann für das Training. Dabei geht es um 
folgende Punkte:
- Zeitnahme (0,0s)
- Wechselfehler
- Wechseldauer

Meine bisherige Planung sieht zwei Holzkästen vor, einen mit der Technik 
und einen als Reflektor/Empfänger, die sich gegenüber stehen und somit 
die Zeitnahmestelle darstellen. Zum erfassen der Hunde wollte ich 2 
Lichtschranken (IR oder Laser) im Abstand von ca 25 cm einbauen. Somit 
kann ich die Laufrichtung bestimmen, und ob ein Wechselfehler vorliegt. 
Die Kästen stehen mit einem Abstand von ca. 70-100cm einander gegenüber.

Die Auswertung wollte ich am liebsten per PC machen (bin ein recht 
passabler Programmierer). Mir fehlt jetzt nur die Schnittstelle zwischen 
den 2 Lichtschranken und einem PC.

Ich hab ausgerechnet, das ich für die Erkennung der Laufrichtung ~80Hz 
oder mehr brauche. Die Zeiterfassung soll bei 1/10s liegen, kann aber 
gerne auch noch genauer sein.

Nun meine Fragen:
Was kann ich als Schnittstelle verwenden, das mir die Stati der 
Lichtschranken schnell genug zum PC über USB übertragen kann?
Brauche ich eine aktive Verarbeitung auf der Platine oder (was mir 
lieber wäre) kann ich die Auswertung direkt auf dem PC erledigen?
Gibt es alternativen zu den recht teuren Lichtschranken-Systemen 
(conrad/reichelt/etc.) über einen Eigenbau (Laser-LED & Photosensor)? 
Wenn ja, wie genau und schnell sind diese? Können die sich gegenseitig 
stören?

Vielen Dank im voraus für eure Unterstützung.

: Verschoben durch User
von Little B. (lil-b)


Lesenswert?

Als Schnittstelle zum PC ist eigentlich USB die einzige Lösung, es sei 
denn, du hast noch einen alten Rechner mit RS232.

Das ist dann aber auch die Problematik:
USB ist nicht echtzeitfähig, man kann nicht vorhersehen, wann die Daten 
ankommen und wie aktuell sie sind.

In jedem Fall ist aber ein Mikrocontroller unerlässlich, da ein PC keine 
Schnittstelle für ein boolsches Signal besitzt. (Oder gibt es da was? 
Ich kenne nichts...)

Dieser Mikrocontroller kann dann nicht nur "An/Aus" übermitteln, sondern 
auch timestamps. Damit lässt sich auf dem PC gut rechnen und erzielt 
eine deutlich höhere Genauigkeit.
80Hz Abtastrate ist lächerlich gering, es lässt sich durchaus auch im 
kiloherz-bereich abtasten.

Wie eine Selbstbau-Lichtschranke aussehen könnte, bin ich jedoch 
überfragt.

~Lil B

von spontan (Gast)


Lesenswert?

>Zum erfassen der Hunde wollte ich 2 Lichtschranken (IR oder Laser) im
>Abstand von ca 25 cm einbauen. Somit kann ich die Laufrichtung bestimmen,
>und ...

Zu einfach gedacht. Ein Hund ist keine ebene Scheibe, die die 
Lichtschranken abdeckt. Ein Hund besteht für die Lichtschranke aus 
Körper, Ohren und Beinen.

Je nach Gangart wird er die Lichtschranke öfter unterbrechen als du 
glaubst.


Als Schnittstelle zwischen Lichtschranken nimm das, was dein PC bietet.
Seriell, parallel, USB, evtl. sogar Audio.

Was hat der PC so zu bieten?

von Schlumpf (Gast)


Lesenswert?

Ich würde die Auswertung definitiv an der Lichtschranke machen und nur 
die Ergebnisse übertragen.
Ggf. kann man dafür sogar einen Pi hernehmen und ein schickes 
Webinterface programmieren.

Aber bist du sicher, dass dir die 1/10 Sekunde reicht?

0,4m/0,1s = 4m/s = 14km/h

Oder sind das nur altersschwache, hüftkranke Hunde? :-)

von Chris (Gast)


Lesenswert?

spontan schrieb:
> Je nach Gangart wird er die Lichtschranke öfter unterbrechen als du
> glaubst.

Das ist richtig, aber deshalb will ich die Auswertung auch am Rechner 
machen. Da kann ich solche Mehrfach-Unterbrechungen raus filtern und nur 
den ersten Kontakt zur ermittlung der Zeit nehmen.

von Chris (Gast)


Lesenswert?

Schlumpf schrieb:
> Ich würde die Auswertung definitiv an der Lichtschranke machen und nur
> die Ergebnisse übertragen.
> Ggf. kann man dafür sogar einen Pi hernehmen und ein schickes
> Webinterface programmieren.
>
> Aber bist du sicher, dass dir die 1/10 Sekunde reicht?
>
> 0,4m/0,1s = 4m/s = 14km/h

Die Idee mit dem Pi ist auch gut. Der hat ja direkt ein I/O Interface 
als Ergänzung. Danke! ;)

Ich meinte eher genauigkeit bei der Zeitnahme.
Das die Hunde schon schneller sind, ist klar.
Daher auch >80Hz für die Abtastung der Lichtschranken, damit ich die 
Durchlaufrichtung bestimmen kann. Wie genau die Zeitmessung hinterher 
wird, ist aber nebensächlich, da es im Training hauptsächlich um die 
Wechsel geht.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Schlumpf schrieb:
> Aber bist du sicher, dass dir die 1/10 Sekunde reicht?
>
> 0,4m/0,1s = 4m/s = 14km/h

 Es ist eigentlich noch schlimmer, denn es ist 25cm Abstand, also
 wird alles, was schneller als 9km/h lauft, nicht mehr unterschieden
 und es kann sogar passieren, dass die hintere Lichtschranke den
 Durchlauf gar nicht registriert.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Chris schrieb:
> Was kann ich als Schnittstelle verwenden, das mir die Stati der
> Lichtschranken schnell genug zum PC über USB übertragen kann?

Da schlage ich einen Mikrophoneingang vor. Der ist einigermaßen 
Echtzeitfähig und es gibt Ausreichend Beispiele im Netz wie man damit 
misst.

Man muss dann aber aus dem Lichtschrankensignal einen Ton machen.

Eine "richtige" Schranke (Stab mit Feder und Kontakt) kommt nicht in 
Frage?

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Chris schrieb:
> Daher auch >80Hz für die Abtastung der Lichtschranken,

Ein Stereoeingang macht ca. 20 KHz.

von Schlumpf (Gast)


Lesenswert?

Die Auswertung am Rechner bringt den Nachteil, dass du langsam in 
Bereiche kommst, wo eine gewisse Anforderung an die Echtzeit 
erforderlich sind, die u.U. mit Windows nicht mehr zu bewerkstelligen 
sind.

Auch die Auswertung auf einem Pi hat das Problem. Aber ich schätze mal, 
dass der Pi da deutlich besser ist, als ein normaler PC.

Das mit der 1/10s habe ich dann falsch gelesen. Sorry.

Aber so richtig verstehe ich das noch nicht.
Quetschen sich der ankommende und der startende Hund durch die gleiche 
Lichtschranke?

von Chris (Gast)


Lesenswert?

Schlumpf schrieb:
> Das mit der 1/10s habe ich dann falsch gelesen. Sorry.
>
> Aber so richtig verstehe ich das noch nicht.
> Quetschen sich der ankommende und der startende Hund durch die gleiche
> Lichtschranke?

Kein Ding.
Es war für mich nur ein Richtwert, wie schnell das ganze minimal sein 
muss.
Je schneller (genauer), desto besser.

Jein.
Also die Start-/Ziel-Linie ist die erste Lichtschranke. Die zweite ist 
nur dafür da, Wechselfehler zu erkennen.
Der erste Hund läuft los, LS1 (LS = Lichtschranke), LS2, Wendepunkt, 
LS2, LS1 ... nun darf der zweite Hund los laufen ... LS1, LS2, 
Wendepunkt, LS2, LS1 ... und so weiter bis zum vierten Hund.
Wenn allerdings ein raus laufender Hund (in der Regel linke Seite) erst 
nach einem einlaufenden Hund (rechte Seite) die LS1 durchbricht (also 
die Kontakte von LS1, LS2, LS1, LS2) wäre das ein Wechselfehler.

Und ja, die passen da locker aneinander vorbei. ;)

von Schlumpf (Gast)


Lesenswert?

Mir ist nicht klar, wie du erkennst, welcher Hund jetzt die LS 
durchbrochen hat.
Was passiert, wenn die sich gleichzeitig im Lichtschrankenbereich 
aufhalten? Hast du da mal alle Fälle durchgespielt?

Wäre es nicht einfacher, den Eingang und den Ausgang der Box räumlich 
getrennt zu halten und mit jeweils nur einer LS zu versehen?
Dann fällt die ganze Richtungserkennung weg.

von Schlumpf (Gast)


Lesenswert?

z.B. Einlaufender Hund unterbricht LS2. Auslaufender Hund startet zu 
früh und unterbricht LS1.
Wie detektierst du, dass LS1 nicht vom einlaufenden Hund, sondern vom 
startenden Hund unterbrochen wurde?

von Blinky (Gast)


Lesenswert?

Wie genau müssen diese Wechselfehler erkannt werden?
Mit der Anordnung wird es nämlich schwierig wirklich zuverlässeig so 
einen
Wechselfehler zu erkennen da eventuell nicht genau festgestellt werden 
kann wann welcher Hund beim Wechsel die L1 unterbrochen hat.

z.B.:
Hund 1:   L1 - L2 --- Wenden --- L2 - L1
Hund 2:   Warten -------------------L1 - L2 ---

Hier läuft Hund 2 los nachdem Hund 1 zwar die L2 Lichtschranke schon 
passiert hat aber noch nicht die L1 Lichtschranke.

Am besten wäre es, die eigendliche Wechsellinie dann nach den 
Lichtschranken zu machen. Damit müssen für einen gültigen Wechsel die 
Lichtschranken erst in der Reihenfolge L2-L1 und dann L1-L2 verdeckt 
werden. Alles andere wäre dann ein Fehler (z.B. wie oben L2-L1 aber dann 
nur L2 weil der nächste Hund bereits in L1 war).

von Karl (Gast)


Lesenswert?

Schlumpf schrieb:
> Aber bist du sicher, dass dir die 1/10 Sekunde reicht?
>
> 0,4m/0,1s = 4m/s = 14km/h
>
> Oder sind das nur altersschwache, hüftkranke Hunde? :-)

0,1 s war die gewünschte Genauigkeit der Zeiterfassung. Zur Abtastrate 
wurden 80 Hz angegeben. Das reicht dann bis 100 km/h.

Mein Vorschlag für den TO wäre ein Arduino. Der wertet den Status der 
Lichtschranken aus und schickt die Daten mit Zeitstempel versehen an den 
PC. Dann Kann er dort die Auswertung machen. Ggf. macht er die 
Auswertung dann auch noch auf den Arduino. Ich denke es ist auf 
Jedenfall ein guter Einstieg.

von Chris (Gast)


Lesenswert?

Blinky schrieb:
> Wie genau müssen diese Wechselfehler erkannt werden?

So, wie mein Aufbau aussieht, sind auch die Wettkampfsysteme aufgebaut.
Daher braucht ihr euch um verbesserung an der Wechselfehlererkennung 
keine gedanken machen.
Trotzdem Danke dafür.

von Chris (Gast)


Lesenswert?

Karl schrieb:
> Mein Vorschlag für den TO wäre ein Arduino. Der wertet den Status der
> Lichtschranken aus und schickt die Daten mit Zeitstempel versehen an den
> PC. Dann Kann er dort die Auswertung machen.

Danke, das werde ich mir mal anschauen!

von Schlumpf (Gast)


Lesenswert?

Chris schrieb:
> So, wie mein Aufbau aussieht, sind auch die Wettkampfsysteme aufgebaut.
> Daher braucht ihr euch um verbesserung an der Wechselfehlererkennung
> keine gedanken machen.

Gut, dann reden wir also von insgesamt 12 Lichtschranken und nicht von 2 
Lichtschranken, wie von dir geposted.

Chris schrieb:
> Zum erfassen der Hunde wollte ich 2
> Lichtschranken (IR oder Laser) im Abstand von ca 25 cm einbauen.

von Lurchi (Gast)


Lesenswert?

Die Lichtschranken sind beim Hund ggf. nicht so super zuverlässig. Da 
wird man ggf. mehr Lichtschranken übereinander brauchen - sonst geht der 
Dackel drunter weg und der Windhund drüber.

Als Lichschranken würde ich so etwas wie gut gebündelte IR LEDs und die 
Empfänger für die Fernbedienungen empfehlen. Das ist relativ 
unempfindlich auf Fremdlicht (vor allem wenn die Empfänger etwas 
vertieft angeordnet sind), günstig und auch noch schnell genug (1/100 s 
sind gut machbar). Direktes Sonnenlicht ist aber für fast jede 
Lichtschranke zu viel.

Zusätzlich zu den Lichtschranken wäre zu überlegen eine Webcam in der 
Wechselzone mit laufen zu lassen - im Zweifelsfall kann man da die 
Aufzeichnung ansehen.

von Karl H. (kbuchegg)


Lesenswert?

https://www.youtube.com/watch?v=n4CSGtllyuQ

Interessanter Hundesport.

es geht wohl um die 2 gelben Stangen am Anfang jedes Parcours.
1
(Seitenansicht)
2
3
4
5
                L2    L1
6
7
               -------+----------------------------------------------
8
                      |
9
                    Linie
So wie ich das sehe geht es im wesentlichen darum festzustellen, ob L2 
vor L1 unterbrochen wird. Die 'Grauzone' der paar Hunderstelsekunde, 
wenn der von links kommende Hund schon L2 durchbricht, aber der von 
rechts kommende Hund die L1 gerade noch in der Zeit schafft, und man 
eine Fehler anzeigt obwohl es keiner war, kann man ignorieren?

von Schlumpf (Gast)


Lesenswert?

Lurchi schrieb:
> Da
> wird man ggf. mehr Lichtschranken übereinander brauchen - sonst geht der
> Dackel drunter weg und der Windhund drüber.

Wenn man mal nach den Teilen im Netz schaut, ist das auch so gelöst.
6 Lichtschranken übereinander, in zwei Reihen.
Und der TO schrieb ja ausdrücklich, dass er das so löst, wie die "Profi" 
Geräte und wir uns deswegen keine Gedanken um den Aufbau machen sollen.

Karl Heinz schrieb:
> So wie ich das sehe geht es im wesentlichen darum festzustellen, ob L2
> vor L1 unterbrochen wird. Die 'Grauzone' der paar Hunderstelsekunde,
> wenn der von links kommende Hund schon L2 durchbricht, aber der von
> rechts kommende Hund die L1 gerade noch in der Zeit schafft, und man
> eine Fehler anzeigt obwohl es keiner war, kann man ignorieren?

Auch hier gilt:
Der TO löst das so, wie die Profigeräte ;-)

Es geht also nur um die Frage, ob er die Auswertung an einem PC macht, 
oder nicht. Alles andere ist gelöst, bzw. wird von Profigeräten 
abgeschaut.

von Lurchi (Gast)


Lesenswert?

Die Frage ob man 2 oder bis zu 12 Lichtschranken hat, beeinflusst halt 
schon die Art wie man die Daten aufnehmen kann oder muss. Ganz klar war 
dem TO die Sache mit den Lichtschranken offensichtlich auch noch nicht - 
sonst wäre da nicht die Frage nach der gegenseitigen Beeinflussung. Je 
nach Art des Aufbaus sehen die Empfänger auch die Senderseite der 
anderen Lichtschranken. Bei unabhängiger Modulation wären auch noch 
Interferrenzeffekte möglich - es wird einfacher wenn man alle 
Lichtsender zusammen moduliert. Der Rest ist dann vor allem eine Frage 
der Optik bzw. der Öffnungswinkel.

Wenn man sich einen alten PC mit echter serieller Schnittstelle besorgt, 
kann man auch darüber recht direkt die Zeiten messen - vor allem wenn 
man dann kein Windows, sonder DOS oder ähnliches nutzt.

von Schlumpf (Gast)


Lesenswert?

Lurchi schrieb:
> Die Frage ob man 2 oder bis zu 12 Lichtschranken hat, beeinflusst halt
> schon die Art wie man die Daten aufnehmen kann oder muss.

Klarer Fall!

Der TO hat geschrieben, dass er es so macht, wie im Wettkampfsystem.
Da sind 12 Lichtschranken verbaut. (Zumindest sieht das auf den Bildern 
so aus)
Warum der TO im Eingangspost schreibt, dass er nur 2 LS hat, ist mir 
jetzt unklar.

Ich sehe es so:
Die Auswertung auf einem PC mit der Begründung, dass man PC 
programmieren kann, halte ich für Quatsch.

Die Erfassung der LS-Signale direkt im PC dürfte zu langsam sein.
Also muss zumindest ein µC zur Erfassung dazwischen geschaltet werden.
Und dann müssen die Daten zur Auswertung an den PC.

Wenn der TO es schafft, auf einem µC USB, Ethernet oder Serielle 
Schnittstelle in Betrieb zu nehmen (was er zwingend braucht, um die 
Daten zur Auswertung an den PC zu bringen), dann sollte es ihm auch 
gelingen, ein paar simple mathematische Operationen, die für die 
Auswertung erforderlich sind, auf dem µC durchzuführen.
Und damit hat sich die Frage nach der Auswertung auf dem PC erübrigt.

von STK500-Besitzer (Gast)


Lesenswert?

Schlumpf schrieb:
> Warum der TO im Eingangspost schreibt, dass er nur 2 LS hat, ist mir
> jetzt unklar.

Weil es sich dabei um eine Trainingsanlage handelt.

von Karl H. (kbuchegg)


Lesenswert?

Lurchi schrieb:
> Die Frage ob man 2 oder bis zu 12 Lichtschranken hat, beeinflusst halt
> schon die Art wie man die Daten aufnehmen kann oder muss.

Nicht wirklich. Denn es sind nur physisch 12 Lichtschranken. Logisch 
gesehen sind es nach wie vor 2 Lichtschranken bzw. eher ein paar 
Lichtschranken, die zu einem Lichtvorhang geschaltet werden. Wird eine 
LS eines Lichtvorhangs unterbrochen, so gilt die ganze Lichtschranke als 
unterbrochen.

Ja nachdem, ob die Lichtschranken bei Unterbrechung eine 0 oder eine 1 
liefern, sind also immer 3 Lichtschranken mit einer UND bzw. ODER 
Verknüpfung zusammengefasst. Das kann man natürlich im Rechner machen. 
Ich denke aber, das es simpler ist, ganz einfach bei den LS diese 
Verschaltung vorzunehmen.

> Wenn man sich einen alten PC mit echter serieller Schnittstelle besorgt,
> kann man auch darüber recht direkt die Zeiten messen - vor allem wenn
> man dann kein Windows, sonder DOS oder ähnliches nutzt.

Kann man.
Aber ehrlich gesagt ist so ein PC für diese Auswertung nicht wirklich 
das gelbe vom Ei. Zum einen hat man Probleme mit der Hardware Anbindung. 
Zum anderen hat man Probleme mit der Zeitauswertung. Dann muss man das 
ganze Geraffel dauernd mitschleppen, aufbauen. Um wieviel einfacher ist 
eine kleine Box mit einem µC drinnen. Einfach zu transportieren. 
Unempfindlich im Ausseneinsatz. Bedienung mit ein paar Drucktasten und 
LCD was Fehlbedienung nahezu ausschliesst. Es gibt keine 
Freitags-Updates was Überraschungen mit eines Tages nicht mehr 
funktionierendem Programm ausschliesst. .... Hingegen besagte Box: 
Auspacken, anstecken, einschalten ... 2 Sekunden später: läuft. Zur Not 
auch im Akkubetrieb. Und wenn er mal runterfällt ist es auch kein 
Beinbruch.
Die Rechenpower eines PC braucht hier kein Mensch, vor allen Dingen weil 
er genau in dem Bereich in dem es wichtig wäre - der Zeitmessung - 
sowieso 2-te Wahl ist.

: Bearbeitet durch User
von Chris (Gast)


Lesenswert?

Vielen Dank für die rege Diskussion.
Ich habe zu einigen meiner Fragen Antworten, oder zumindest neue Ideen 
bekommen und müsste damit jetzt weiter kommen.

Was die Lichtschranken betrifft, werde ich wohl um einen Praxistest 
nicht rum kommen. Wenn die "billige" Version des eigenbaus nicht richtig 
funktioniert, muss halt doch eine teure Fertiglösung her.

Danke aber für die Rückmeldungen!

von Karl H. (kbuchegg)


Lesenswert?

Chris schrieb:

> Was die Lichtschranken betrifft, werde ich wohl um einen Praxistest
> nicht rum kommen. Wenn die "billige" Version des eigenbaus nicht richtig
> funktioniert,

Gerade bei Lichtschranken kann man noch einiges drehen.
Zb ist ein ganz einfacher Trick, die Lichtquelle bzw. den Empfänger in 
eine Röhre zu stecken, so dass man sein Gesichtsfeld eineingt.
Vom Grunde eines 5m tiefen Brunnens siehst du auch nur den kleinen 
Ausschnitt am Himmel, den du eben durch die Brunnenöffnung sehen kannst. 
Den LKW auf der Strasse, bzw. dessen Scheinwerfer siehst du nicht.
Selbiges mit der Taschenlampe, die du mithast: Vom Grunde des 5m tiefen 
Brunnens aus, wirst du dir schwer tun, den LKW Fahrer zu blenden.

Also nicht gleich die Flinte ins Korn werfen!

: Bearbeitet durch User
von Flyball Team (Gast)


Lesenswert?

Wir, ebenfalls ein Flyballteam, sind auch auf der Suche nach einer 
Trainingslichtschranke.
Von daher meine Frage an Chris, was ist aus deinem Projekt geworden?

von W.A. (Gast)


Lesenswert?

Der Rächer der Transistormorde schrieb:
> Man muss dann aber aus dem Lichtschrankensignal einen Ton machen.
>
> Eine "richtige" Schranke (Stab mit Feder und Kontakt) kommt nicht in
> Frage?

<ironie>Warum nicht gleich eine Echtzeit Video-Auswertung, damit der i7 
auch ein bisschen was zu tun hat?
Man kann sich die Hose auch mit der Kneifzange anziehen.</ironie>

Wie wäre es mit einem kleinen Mikrocontroller für 2€. Der langweilt sich 
bei der Auswertung der Lichtschranken, selbst wenn man auf 1/100s misst 
und kann die Ergebnisse dann gemütlich per USB zum PC übertragen.

von somewhere (Gast)


Lesenswert?

Hallo Flyballteam,
ich habe so ein System vor ca. 9-10 Jahren gebaut. Lief damals mit einem 
Atmega (ich glaube Atmega32), die Richtungserkennung wurde in Hardware 
gelöst. Das System hat lange Zeit sehr gut funktioniert.

Gruss
Eduard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.