Fotodiode

  • Hallo zusammen,

    Ich habe folgendes Problem: ich möchte mit einer Fotodiode erkennen, ob sich ein Ball an dieser Vorbeibeweget oder nicht. Dieser Ball sendet Infrarotlicht aus. Ich habe schon viel im Internet gesucht, finde aber weder wie ich die Diode mit dem Raspberry (4A) verbinden kann, noch was für ein Programm man dafür dann letztendlich auch schreiben muss. Ich hoffe jemand hier kann mir helfen oder helfende Links schicken. Vielen Dank schon einmal für alle Antworten

  • Hallo und willkommen hier im Forum.


    Der Begriff Infrarotlicht ist relativ unpräzise, da IR Sender i.d.R. ihr Signal mit einer bestimmten Trägerfrequenz senden. Dafür gibt es spezielle IR Empfängermodule mit einem bestimmtes Frequenzspektrum, welche mit Sicherheit besser geeignet sind, als eine einfache Fotodiode. Warum verwendest Du nicht einfach eine Lichtschranke? Vielleicht solltest Du den Projekt etwas genauer beschreiben.

  • Hi, und vielen Dank für die schnelle Antwort.

    Zu meinem Projekt:

    Ich versuche einen normalen Tischkicker so umzubauen, dass die eine seite selbstständig spielt, also von Motoren gesteuert wird. Um das zu schaffen muss ich ja den Ball tracken und zu jeder zeit wissen wo er sich befindet. Dort dachte ich auch zuerst an laserschranken, aber diese arbeiteten zu langsam- haben eine zu niedrige messfrequenz. (Der Ball bewgt sich mit ca. 10m/s.) Diese sollten ein 2D Koordinatensystem "erzeugen" und dann weiß ich eben, dass der Ball jetzt bei H12 oder B8 ist.

    dann dachte ich an Ultraschallsensoren, bei denen war aber das Problem, dass der Schall an dem ball abgelenkt wird und gar keine Info ankommt...

    DA dachte ich mir, dass ich das GAnze doch umdrehen könnte: Jetzt sendet der Ball Infrarotlicht aus (940 nm) und die fotofiode soll dieses licht nun wahrnehmen. DAs Ziel ist dann, viele Fotodioden aufzustellen, die den Ball nur sehen können, wenn er direkt über ihnen ist und so die Schnittstellen der oben genannten Lasersensoren zu simulieren


    Ich hoffe diese Infos helfen dir und nochmals danke für die Rückmeldung


    Hier noch die Links:

    Der Ball:https://www.robotshop.com/de/d…rarot-roboter-fuball.html

    Die Diode: https://www.reichelt.de/silizi….html?&trstct=pos_0&nbc=1

  • Klingt für mich ziemlich hoffnungslos. Ich galube nicht, dass du die Position des Balls auf diese Weise genau genug feststellen kannst.
    Hast du mal an ein Kamerasystem gedacht? Eine Kamera mit nich tzu hoher Auflösung und OpenCV zur Positionsbestimmung. Ein leuchtorangefarbener Ball ist für OpenCV leicht erkennbar und die Position sehr genau bestimmbar. Fragt sich nur, wie schnell das geht. Prinzipiell dürfte es aber schnell genug sein.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • ohhh ok. Mit einer Kamera habe ichs schon probiert und hochgerechnet. da bräuchte ich an die 600 fps. Ich habs schon mit ner PIXY-Cam probiert. die hatte 60fps und bei 1m/s hatte die dann akzeptable messwerte. leider ist der ball 10x so schnell...

    Als ich dann um den Berech 600fps geschaut habe konnte ich kaum was brauchbares finden und wenns dann mal was war hat die gleich 1k gekostet. so viel buget hab ich leider dann doch nicht.

    Muss ich mir aber mal genauer anschauen-dnke für den Tipp.

    und kennst du zufällig ne kamera die dafür geeignet ist? Ich hätte dann roten ball auf grünem grund, sollte dann ja passen

  • Bei 600 fps kämest du auf eine Auflösung von 1,6 cm... Dein Auge versagt bereits bei 25 fps die Unterscheidung einzelner Positionen... es muss also auch mit weniger als 600 fps gehen. Du wirst die Bewegung des Balles vorausberechnen müssen. Sonst hast du eh keine Chance. Wenn du die Spieler mit Servomotoren steuern willst, brauchst du ja auch noch Zeit für die Beschleunigunge und Bewegung. Du wirst also nicht permanent die Position des Balles verfolgen müssen, sondern hochrechnen, wo er sich vielleicht in 0,05 oder 0,02 Sekunden befindet. Wenn du mit 60 fps arbeitest, hast du eine Auflösung von 16,6 cm - das ist noch recht viel. Allerdings wäre das ein Schnellschuss in gerader Linie aufs Tor - gegen sowas hast du sowieso fast keine Chance. Wenn der Tisch 120 lang ist und aus dem Mittelfeld geschossen wird, also 60 cm vom Schützen bis zum Torwart. Du kannst im ungünstigesten Fall die Position und Geschwindigekeit des Balles erst nach 32 cm erfassen, dann bleiben dir noch 28 cm für die Reaktion des Torwartes. das entspricht 0,028 Sekunden. Das ist eine ordentliche Herausforderung. Über weite Strecken ist das Spiel aber langsamer.


    Die Idee hat schon mal jemand gehabt... Lösung mit Kamera.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Klingt für mich ziemlich hoffnungslos. Ich galube nicht, dass du die Position des Balls auf diese Weise genau genug feststellen kannst.

    Mal ganz abgesehen davon, das der IR Ball für einen "normalen" Tischkicker mit seinen fast 7,5 cm Durchmesser mir doch ziemlich groß erscheint, geht es bei dem Spiel doch bestimmt ziemlich rau zu, so das der Ball trotz des stolzen Preises, vermutlich nicht all zu lange durchhalten wird.

  • Es gibt noch andere Methoden, um den Ball zu erkennen - aber die werden aufwändig.

    Du könntest ein vollflächiges Touchdisplay nehmen - der Ball müsste dann allerdings eine Metallschicht haben, wenn ich mich nicht irre. Das wird aber teuer.

    Du könntest die Position mit einer Art Laserlichtschrankengitter bestimmen.

    Gemessen an der Auflösung von 1,6 cm bei 10 m/s und 600 fps müsstest du für gleiche Auflösung alle 1,6 cm eine Lichtschranke bauen. Man kann das aber auch optimieren mit Drehspiegeln oder strichförmigen Lichtschranken und CCD-Sensorleisten. Aber das ist wohl recht aufwändig.

    Du könntest tausende Reedkontakte in die Tischfläche einbauen - in einer Art Matrixschaltung - und einen magnetischen Ball verwenden. Die Kontakte sind sehr schnell, Bruchteile von Millisekunden.

    Oder das ganze mit Hall-Sensoren - die sind wahrscheinlich noch empfindlicher und vielleicht genügen weniger Sensoren, wenn du die Werteirgendwie interpolierst.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Die Idee mit den Magneten klingt gut - die Umsetzung im Detail dürfte sehr aufwändig werden. Ist der Ball magnetisch, wäre es ein großes Problem, dass der Magnet ja in jeder Ausrichtung in der Nähe des Sensors detektiert werden müsste. Ich fürchte klappt nicht.

    Wenn die Kugel nur magnetisch wäre und ein vorhandenes Magnetfeld verfälscht, könnte es eventuell klappen. Du müsstest also Magneten in der Nähe der Sensoren so platzieren, dass sich der Wert ändert, wenn die Kugel in der Nähe ist. Dazu müsstest Du analoge Hallsensoren verwenden. Wird aber auch ziemlich aufwändig.

    Ich würde auch versuchen eine Lösung mit der Kamera anzustreben und dafür mit Vorberechnung/Vorabschätzung arbeiten. Du könntest erste Berechnungen schon machen, bevor der Schlag des Gegners überhaupt erfolgt ist. Ich glaube KI könnte bei der "Berechnung" ein vielversprechender Ansatz sein.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Mal ganz abgesehen davon, das der IR Ball für einen "normalen" Tischkicker mit seinen fast 7,5 cm Durchmesser mir doch ziemlich groß erscheint, geht es bei dem Spiel doch bestimmt ziemlich rau zu, so das der Ball trotz des stolzen Preises, vermutlich nicht all zu lange durchhalten wird.

    ja, mit diesem wollte ich das ganze zu beginn nur simulieren um ein funktionierendes Programmm zu entwickeln und dasss dann auf den kleineren ball anzupassen. dieser sollte dann nach glichem vorbild gebaut werden

    daran hatte ich zu beginn auch schon gedacht, aber da ist dann das Problem, dass der Ball auch einige zeit des spieles in der luft verbringt. dann hätte ich null chance.


    Bei dem Laserlichtschrankengitter hatte ich das Problem, das die Lase in einer zu niedrigen frequenz gemessen haben und der ball einfach durch ist, ohne bemerkt zu werden. Gibt es besonders schnelle Laser? ich konnte leider keine ffinden.


    Die Idee mit den reedkontakten gefällt mir, auch wenn das wohl sehr aufwendig wird. Erkennen die denn ball dann auch, wenn er 1-2cm über sie hinwegfliegt?


    Die Idee mit den Magneten klingt gut - die Umsetzung im Detail dürfte sehr aufwändig werden. Ist der Ball magnetisch, wäre es ein großes Problem, dass der Magnet ja in jeder Ausrichtung in der Nähe des Sensors detektiert werden müsste. Ich fürchte klappt nicht.

    Wenn die Kugel nur magnetisch wäre und ein vorhandenes Magnetfeld verfälscht, könnte es eventuell klappen. Du müsstest also Magneten in der Nähe der Sensoren so platzieren, dass sich der Wert ändert, wenn die Kugel in der Nähe ist. Dazu müsstest Du analoge Hallsensoren verwenden. Wird aber auch ziemlich aufwändig.

    Ich würde auch versuchen eine Lösung mit der Kamera anzustreben und dafür mit Vorberechnung/Vorabschätzung arbeiten. Du könntest erste Berechnungen schon machen, bevor der Schlag des Gegners überhaupt erfolgt ist. Ich glaube KI könnte bei der "Berechnung" ein vielversprechender Ansatz sein.

    Wie meinst du, dass die Kugel "nur" magnetisch ist? also dasss sie auf die magnete wirkt und es dadurch zu einer Änderung des Magnetfeldes kommt? Und währe ein Raspberry dann noch in der Lage diese ganzen daten zu verarbeiten und möglicherweise auch die bewegung weiterzu berechenen?

  • Aber warum denkt ihr, dass die Infrarottransistoren nicht funktionieren werden? Sind die nicht schnell genug oder werden die den ball nicht erkennen?

  • Gibt es besonders schnelle Laser? ich konnte leider keine ffinden.

    Ich weiß nicht, was "schnelle" Laser sein sollen... die meisten haben so 300.000 Km/sec.

    Wenn das bei dir nicht geklappt hat, hast du dich entweder auf eine mäßige Library gestützt oder die Module, die du einsetzt, arbeiten mit einem langsamen Verfahren mit irgendeiner Frequenzerkennung oder sowas. Ein einfacher Laserstrahl mit einer Empfangsdiode am anderen Ende sollte schnell genug sein. Störungen durch Umgebungslicht müsste man bautechnisch verhindern.

    Da du aber überall die Mennekens im Weg hast, kann die Lichtschranke nur ganz tief am Boden sein. Wenn der Ball fliegt, fliegt er halt - da kannst du eh kaum was machen. Kopfbälle sind beim Tischkicker wohl eher die Ausnahme. Das kann die Kamera aber auch nicht lösen, denn die sieht die Flughöhe auch nicht. (Mit einer zweiten Kamera ginge das allerdings auch.)


    Trotzdem ist die Kameralösung am Ende sicher die praktikabelste. Alles andere ist extrem aufwändig.


    Wenns zu langsam ist, kannst du vielleicht das Spielfeld in mehrere Abschnitte teilen und mit 4, 8, 12 oder 16 Kameras arbeiten.

    Und für die Verarbeitung kannst du ja auch was Schnelleres bemühen als einen Pi, falls das dann einen Zugewinn bringt. (32 Kameras und 32 20-Core-Xeons sollten reichen ;) )


    Hier hat jemand 1000 fps aus einer Pi-Kamera geholt - bei 640x480 (da steht 640x80 - das ist wohl ein Tippfehler). 640x480 reicht locker, da hast du bei 1,2 m Tischlänge ne Auflösung unter 2 mm - es würde auch die Hälfte oder weniger genügen, was die Verarbeitung beschleunigt, weil du bei halber Auflösung nur noch 1/4 der Datenmenge hast. Vielleicht gibt es auch für PC generell schnellere Kameras als für den Pi, wenn du nicht zwingend einen Pi einsetzen willst.

    Was für Antriebe willst du eigentlich einsetzen? Mir kämen da Closed Loop Schrittmotore in den Sinn. Denen kannst du die gewünschte Position geben und dann machen die. Fire and forget sozussagen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Edited once, last by Gnom ().

  • Simuliere den Ball.


    Von unten mit einem Laser und Ablenkspiegeln. Dann fällt quasi auch die Reaktionszeit für die gesteuerten Spieler weg (die wirst du dann eher reinrechnen müssen um überhaupt noch eine Chance gegen die Maschine zu haben). :) Und bei den manuellen Spielern ein "Force Feedback" wie bei guten Lenkrädern, dann "spürst" du auch den Ball.

  • Kommt als nächstes noch jemand, der einen GPS-empfänger in den Ball einbauen will... ?


    Könnt ihr mal aufhören, hier solchen Unsinn zu erzählen? Ball simulieren? Radar?

    Hier fragen Leute nach Lösungsansätzen für Ihre Projekte. Wenn ihr nichts Konstruktives beizutragen habt, dann lasst es doch bitte ganz bleiben.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Entschuldigung, aber warum ist das Unsinn?

    Er möchte doch die Position des Balles feststellen und nicht simulieren.

    Die Lösung mit der Kamera finde ich schon ziemlich gut.

    Dennoch bin ich der Meinung, daß Radar für eine schnelle Flächenüberwachung besser geeignet ist als alles andere.


    Ultraschall wäre auch noch eine Möglichkeit, Dopplerprinzip

  • Wie soll denn bei einer Radarerfassung die Bewegung ( Reflektionen ) der Spieler berücksichtigt werden? Wenn es denn keine Bewegungserkennung per Kamera sein soll, so würde ich eine Erkennung per Lichtschranken wählen, die das Spielfeld in einzelne Bereiche aufteilen. Das mit den IR Dioden im Ball würde ich verwerfen, da damit viel zu viele Probleme zu lösen wären.

  • Das stehen 22 Männchen im Weg, die sich auch noch bewegen? Das Radarsignal streut an allen Ecken und Enden (und am Spielfeldrand übrigens auch noch) und gibt ein wildes Echorauschen. Wie willst du mit Radar in dem Gewühle den Ball finden? Zudem der Ball rund ist und sein Echo überall hin streut, nur nicht in Richtung des Senders zurück. Fehlt bloß noch eine StealthLackietrung, um in gänbzlichunsichtbar zu machen. Dazu bräuchtest du noch entweder eine hochauflösende Zeitmessung oder ein zweites Radarsignal, um die Entfernung zu bestimmen. Deine Idee ist praktisch in keiner Weise umsetzbar.


    Mit dem Dopplereffekt kannst du die Geschwindigkeit bestimmen aber nicht die Position. Da musst du schon mit der Signallaufzeit arbeiten. Bei einer Auflösung im cZentimeterbereich liegen die Zeitunterschiede im zweistelligen µs-Bereich - das ist alles andere als trivial. Auch bei Ultraschall gilt aber, dass du die Signalstreuung von 22 Männchen und der Feldbegrenzung hast. In dem Signalgewirr wirst du das reflektierte Signal des Balles ebenso nicht finden. Auch ein aktives System kommt kaum in Frage, weil der Ball weder einen US-Empfänger noch einen -Sender in eine bestimmte Richtung ausrichten kann (weil er sich ja dreht). Und die Anbringung von Dutzenden Sendern oder Empfängern am Ball ist wohl kaum realistisch.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Entschuldigung, aber warum ist das Unsinn?

    Er möchte doch die Position des Balles feststellen und nicht simulieren.


    Ich versuche einen normalen Tischkicker so umzubauen, dass die eine seite selbstständig spielt, also von Motoren gesteuert wird. Um das zu schaffen muss ich ja den Ball tracken und zu jeder zeit wissen wo er sich befindet.

    Ich denke hier möchte jemand in erster Linie einen Tischkicker so umbauen, dass, wie es auch im Post steht, eine Seite selbstständig spielt. Daraus resultierte die Erkenntnis wohl den Ball tracken zu müssen. Nirgends steht, dass das Ziel des Projekts das Tracken des Balles selber sei.

    Deshalb der Vorschlag den Ball zu simulieren statt ihn zu verfolgen. Das dürfte das Ziel "alleine gegen den Computer Tischfußball spielen" ebenso erreichbar machen und wird auch nicht die Welt kosten, was ich bei so manch anderen Vorschlag doch stark bezweifel.

  • Wenn du mal die Fragestellung liest, statt wilde Argumentationen zu deinen unsinnigen Ideen abzusondern, wirst du feststellen, dass es um einen BALL -- und zwar um einen REALEN BALL geht. Und da steht ziemlich deutlich, dass die Bewegung des Balles erkannt werden soll. Und in Beitrag 3 steht sörtlich, dass er den Ball tracken muss(will).

    Sie doch einfach ein, dass dein Vorschlag an der Fragestellung meilenweit vorbei geht - deine Rechtfertigungsorgie hilt hier niemandem - außer vielleicht deinem Ego.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!