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.
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
>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?
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? :-)
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.
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.
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.
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?
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?
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. ;)
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.
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?
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).
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.
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.
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!
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.
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.
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?
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.
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.
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.
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.
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.
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!
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!
Wir, ebenfalls ein Flyballteam, sind auch auf der Suche nach einer
Trainingslichtschranke.
Von daher meine Frage an Chris, was ist aus deinem Projekt geworden?
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.
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