Lichtschranke am PC

Hallo,
ich hoffe ich bin hier richtig. Ich möchte an oder besser in meinem
Tischfussball im Tor zewi Lichtschranken einbauen um damit dann die
Ballgeschwindigkeit zu messen. Jetzt stehe ich vor dem Problem die
Lichtschranke am PC anzuschliessen. Das Programm zur Auswertung bzw. Messung
zu schreiben stellt mich nicht vor große Probleme. Eignet sich der
Printerport dafür oder besser die serielle Schnittstelle? Bei USB wirds wohl
langsam utopisch. Vielleicht hat ja jemand mal etwas ähnliches gemacht...
viele gruesse
sven
Reply to
Sven Schoenfelder
Loading thread data ...
Der Parallelport oder auch der Gameport sind mit Sicherheit dafür die einfachsten zu verwendenden Schnittstellen.
cu, Manfred
Reply to
Manfred Schmitz
Manfred Schmitz schrieb:
Eher die COM! Zumindest wenn es interruptgesteuert sein soll. Bei der COM sind mehr Interrupts möglich.
Allerdings dürfte das eine sehr zeitkritische Sache werden! Und deshalb nicht unter Windows funktionieren.
Eher im DOS-Modus und einem reinen Polling irgendwelcher Signalleitungen. Dann allerdings geht auch der LPT-Port gut.
Gruss Wolfgang
Reply to
Wolfgang Gerber
Hallo Sven,
"Sven Schoenfelder" schrieb im Newsbeitrag = news:blsh59$5ss$01$ snipped-for-privacy@news.t-online.com...
Dann lass uns zuerst mal kopfrechnen :-). Der Ball fliegt mit maximal = 20m/s. Deine Lichtschranken sind maximal 10mm auseinander, sonst werden = Winkelfehler zu gross. Damit erreichen wir eine minimale Messzeit von = 10/20000 =3D 0,5ms.
0,5ms zu messen ist mit jeder der genannten Schnittstellen ein Problem. = Zumal Du ja um 10% Genauigkeit zu erhalten auf 50us messen musst. Also: = kleinen Prozessor, 2 Lichtschranken und das an die serielle = Schnittstelle.
Gruss, Kurt
--=20 MBTronik, Kurt Harders
formatting link
Reply to
Kurt Harders
[...]
Unfug! Am Parallelport kann man das problemlos, besonders wenn man so anschliesst dass jede Lichtschranke an !ACK einen interrupt ausluest und z.B. an !BUSY angezeigt wird, welche der Beiden nun aktiv war. Dann kann man dich in der Interruptroutine die Zeit geben lassen (mit einer Mikrosekundenaufoesung...) und fertig. Aus einem kleinen Treiber fuer diesem Zweck (kernel 2.0...): static void lpirq_interrupt(int irq, void *dev_id, struct pt_regs *regs) { lpirq_data.read_data = inb(LPIRQ_BASE+1); do_gettimeofday(&lpirq_data.irqtime); lpirq_data.nof_missed_interrupts++; wake_up_interruptible(&lpirq_wait); }
Das hat eine genauigkeit von etwa 1us....
Reply to
Juergen Hannappel
"Kurt Harders" schrieb im Newsbeitrag news:bltp48$gcdbl$ snipped-for-privacy@ID-20141.news.uni-berlin.de... Hallo Sven,
"Sven Schoenfelder" schrieb im Newsbeitrag news:blsh59$5ss$01$ snipped-for-privacy@news.t-online.com...
20m/s. Deine Lichtschranken sind maximal 10mm auseinander, sonst werden
Woher weißt du das so ein Ball nicht schneller wird ? 20m/s sind gerade mal 72km/h ! Ich könnte mir vorstellen das so ein kleiner Ball ähnlich wie beim Golf viel schneller wird.
Zumal Du ja um 10% Genauigkeit zu erhalten auf 50us messen musst. Also:
Gruss, Kurt
Reply to
Jens Orf
Hallo Juergen,
"Juergen Hannappel" schrieb im = Newsbeitrag news: snipped-for-privacy@lisa2.physik.uni-bonn.de...
Stimmt. Ich wollte dem OP nur klarmachen, dass wir nicht von einer = Abfrage der Schnittstelle im gemuetlichen Basic-Takt sprechen :-). Mit = einem Treiber laesst sich sowas oft realisiseren, aber oft koennen die = Fragenden keine Treiber realisieren :-).
Gruss, Kurt
--=20 MBTronik, Kurt Harders
formatting link
Reply to
Kurt Harders
Juergen Hannappel schrieb:
Hallo,
aber nur wenn da die Bearbeitung anderer Interrupts wie Uhr, Platte und=20 Schnittstellen nicht dazwischen kommt. Diese anderen Interrupts kann man =
ja nicht einfach sperren w=E4hrend der Lichtschranken Interrupts. Also m=FCsste man daf=FCr sorgen das der Interrupt von den Lichtschranken= =20 mit der h=F6chsten Priorit=E4t bedient wird. Was aber immer noch nicht=20 verhindert das zwischen den Interrupts von beiden Lichtschranken=20 irgendein anderer Interrupt niedrigerer Priorit=E4t bearbeitet wird und=20 dann mal kurz in der Interruptroutine alle Interrupts gesperrt werden.
Bye
Reply to
Uwe Hercksen
Hatte vor das Programm in Pascal oder C zu schreiben, welches die Ergebnisse in einer DB ablegt. Als Programmierer stellt mich das nicht vor große Probleme. Wenn ich mir aber den Hardwareaufwand ansehe, scheint mir das ganze doch sehr sehr sehr schwierig. Vielleicht sollte ich doch mit einem einfachen Torzähler anfangen. Dann könnte ich auch auf einfache Lösungen von ELV zurückgreifen und das Ding unter DOS laufen lassen. Hatte ursprünglich vor einen kleinen PC in den Tisch zu bauen (Tisch lässt sich aufklappen) und dann ein paar Gimmicks zu realisieren (Ballgeschw., Torzähler, Timer etc.)
der Schnittstelle im >gemuetlichen Basic-Takt sprechen :-). Mit einem Treiber laesst sich sowas oft realisiseren, aber oft >koennen die Fragenden keine Treiber realisieren :-).
Reply to
Sven Schoenfelder
Hallo, Sven,
Du (viruz) meintest am 07.10.03:
So isses: 4020 oder 4040 oder 4060, der im Start-Stop-Betrieb läuft. Anschliessend hast Du alle Zeit der Welt, um den Zählerstand auszulesen.
Viele Grüße! Helmut
Reply to
Helmut Hullen
Hallo Sven,
"Sven Schoenfelder" schrieb im Newsbeitrag news:bluejn$59k$03$ snipped-for-privacy@news.t-online.com...
ursprünglich
aufklappen) und
Wenn Du programmieren kannst, dann mach das doch mit nem kleinen Atmel oder Pic und schieb das ueber die serielle zum Rechner.
Gruss, Kurt
Reply to
Kurt Harders
"Uwe Hercksen" schrieb im Newsbeitrag news: snipped-for-privacy@mew.uni-erlangen.de...
Klar kann man das!
Arne
Reply to
Arne Binder
(Kurt Harders) 07.10.03 in /de/sci/ing/elektrotechnik:
Pah! Du schliesst die einfach an den Dateneingang der Seriellen an! Sobald der Pegel wechselti (z.B. ein Startbit vom USART erkannt wird) rennt das Teil mit bis zu 1Mbaud(je nach Chip geht das, steht nur nicht immer auf dem Board drauf) und sampelt den Dateneingang typ. 4fach über. Das sollte wohl reichen... Ideal ist natürlich ein USART das die Wert automatisch nach rd. 9 bit Framess den Wert seinem Fifo ablegt und dann weiter sampelt bis dsa Fifo voll ist.
Verschiebt nur das Problem.
Reply to
Rainer Zocholl
(Sven Schoenfelder) 07.10.03 in /de/sci/ing/elektrotechnik:
Am einfachsten in Form zweier Microphone! je eines pro Tor. Du könntest dann eine Fourier-Analyse des Einschlags machen und vmtl. daraus die Geschwindigkeit bestimmen. Evtl. auch die die "Klacks" zwischen "Abschuss" und "Einschlag" ausmessen und so die Geschwindigkeit ermitteln, wenn Du den Abschusspunkt ermitteln kann (sind ja 2 Mics, 4..6 wäre besser (diagonale Schüsse).).
Das klingt sehr nach "Mini-ITX.org" ;-)
"Toooooooor"rufer, Laola-Simulation?
Reply to
Rainer Zocholl

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.