PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Enfernungsmessung + PC



filth
30.05.2008, 08:45
Hallo zusammen,

ich brauche für ein Projekt, was nicht direkt mit Robotik etwas zu tun hat eine Entfernungsmessung. Und zwar soll die Entfernung der Hand zum Sensor festgestellt werden. Genauer gesagt bewegt der User seine Hand vor dem Monitor.

Was könnte man da verwenden, was ich aus C++ dann auslesen kann? Es muss nicht sonderlich genau sein, es würde reichen, wenn ich die Entfernung Sensor --> Hand (max 50cm) in 3 Ebenen teilen könnte.

Grüße
Alex

Besserwessi
30.05.2008, 12:46
Bei den Geringen Anforderungen könnte ein IR reflex Sensor das einfachste sein. Eine IR Diode sendet Licht, und ein Phototransistor empfängt das Signal. Ähnliches könnte man auch mit Ultraschall aufbauen. Da man am PC ja viel Rechenleistung zur verfügung hat, wäre eventuell auch eine Webcam eine Alternative. Wenn man einen einfarbigen Hintergrund hinkreigt sollte die Auswertung auch nicht so schwer sein.
Sonst muß man sehen wie man die Daten zu PC kriegt. Ein anloges signal geht eventuell über die Game Schnittstelle, wenn denn ein neuer PC die noch hat. Sonst via RS232 oder USB.

filth
30.05.2008, 13:03
IR wäre vielleicht interessant, da ich an der Hand, die vor dem Monitor bewegt wird sowieso schon IR Dioden habe, bzw IR Licht von der Hand reflektiert werden soll.

Gibt es da schon fertige Lösungen (IR oder Ultraschall), die ich benutzen könnte?

johns
30.05.2008, 13:32
ultraschallsensoren mit serieller schnittstelle und c++ beispielcode gibt es von devantech, siehe http://www.robot-electronics.co.uk/ . die sind auch bei robotik onlineshops in deutschland erhältlich.

lg

filth
30.05.2008, 13:43
Hey,

vielen Dank! Das ist so ziemlich das, was ich suche.

Sehe ich das richtig, dass um zB den SRF08 am PC anzuschliessen ich noch den USB to I2C Adapter bräuchte?

Gruß
Alex

johns
30.05.2008, 18:18
ja, beim srf08 brauchst du eine usb-i2c adapter, ich sehe gerade dass nur der srf02 eine serielle schnittstelle bietet (UART, dh. du würdest noch einen rs232 pegelwandler benötigen, zusätzlich eventuell einen RS232-USB adapter, oder auch beides integriert)
für den fall dass du linux oder auch osx verwendest könntest du anstatt eines i2c adapters uU auch einen vga ausgang misbrauchen, siehe zb hier http://www.paintyourdragon.com/uc/i2c/index.html
suchworte zu dem thema: 'i2c dcc'
das ganze funktioniert zwar auch unter windows... aber anscheinend weiss niemand wie, bis auf diesen kommerziellen anbieter: http://www.nicomsoft.com/wini2cddc/
hier trotzdem noch zwei msdn links zu dem thema:
http://msdn.microsoft.com/en-us/library/ms775230%28VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms800514.aspx

lg

filth
30.05.2008, 22:38
Och usb geht ja auch, muss nicht zwingend seriell sein, oder gibt es da irgendwelche Probleme bezüglich des c-interfaces?

Also wenn ich unter Windows bin reicht der SRF08 mit einem usb-i2c Adapter wie zB den hier? :
http://www.channaa.com/html/i2c_usb_adapter.html

Gibt es kostengünstigere Lösungen für die Adapter?

Grüße
Alex

johns
31.05.2008, 06:33
Och usb geht ja auch, muss nicht zwingend seriell sein, oder gibt es da irgendwelche Probleme bezüglich des c-interfaces?

nein



Also wenn ich unter Windows bin reicht der SRF08 mit einem usb-i2c Adapter wie zB den hier? :
http://www.channaa.com/html/i2c_usb_adapter.html

nein, da es sich bei diesem um einen i2c slave adaper handelt, du benötigst einen master



Gibt es kostengünstigere Lösungen für die Adapter?

- usb: http://www.robot-electronics.co.uk/acatalog/USB_I2C.html
- rs232: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=73&products_id=68
- die erwähnte dcc methode
- und eben der anschluss über rs232 adapter -> pegelwandler -> sensor mit uart

lg

filth
31.05.2008, 07:04
Ok, dann ist das schon mal klar. Danke dafür!

Eine Frage zu dem Ultraschallmpdul habe ich noch.
Mein Ziel ist es die Enfernung der Hand des Benutzers von dem Monitor (SRF08 liegt unter oder auf dem Monitor) zu bestimmen.

Jetzt spielt natürlich die Streuung eine Rolle - denn wenn der SRF nur einen relativ schmallen Strahl abstrahlt, wird die Hand diesen oft verfehlen - die bewegt sich ungefähr in einem Radius, der einem 17'' Monitor gleicht.

In der FAQ habe ich folgendes gefunden: SRF04/08 55°. Das sollte von der breite her eigentlich passen - was ich nicht weiß, ist ob diese 55° auch vertikal gelten.

Fragen:
- Was denkt ihr? Wird man damit die Entfernung der Hand vor dem Monitor messen können?
- Wie funktioniert das mit der Messung? Wenn sich ein Mensch vor dem Sender befindet, wird ja seine Hand aber auch der ganze Körper angestrahlt. Welcher Punkt wird jetzt als Abstandswert genommen?




Gruß
Alex

johns
31.05.2008, 10:08
was ich nicht weiß, ist ob diese 55° auch vertikal gelten.

natürlich, siehe schallquelle



Wird man damit die Entfernung der Hand vor dem Monitor messen können?

ja, aber mit einschränkungen: einen toten bereich nahe am bildschirm wirst du mit nur einem sensor immer haben, ausserdem wird das messergebnis durch die vertikale position der hand beeinflusst. abhilfe könnte die verwendung von 2 oder mehr sensoren und eine abstandsberechnung mittels triangulation bringen



Welcher Punkt wird jetzt als Abstandswert genommen?

ich schätze der punkt mit geringstem abstand, ich kann das später mal ausprobieren falls das sonst niemand beantworten kann, aber erst gehts mal in die sonne :)

lg

filth
31.05.2008, 13:19
Hey,

ich brauche da keine besondere Genauigkeit - wie gesagt, reicht es mir, wenn ich einen Bereich vor dem Monitor in 3-4 Ebenen einteilen kann.

Könntest Du bitte ausprobieren, welcher Punkt als Messergebniss verwendet wird? Wäre sehr nützlich für mich.

Grüße
Alex

filth
02.06.2008, 14:05
Hi,

hat es jemand in der Zwischenzeit testen können? Wird nur der näherste Punkt an dem Sensor als Entfernungswert genommen?

Das ist interessant zu wissen, weil ich vor habe die Entfernung der Hand vor dem Display (Hand wird in der Luft bewegt, Stichwort Gestenerkennung) zu tracken. Wie wird der Sensor auf andere Gegenstände (wie zb Flaschen) auf dem Tisch reagieren?

Grüße
Alex

RP6conrad
02.06.2008, 22:11
So eine US Sensor sieht alles. Ihre Hand oder eine flasche, das ist alles Egal. Sucht mal eine PKW mit Parksensoren an hinterseite, und probier mal aus was da passiert mit verschiedene Objecten. Diese Sensoren arbeiten normal in eine Abstand von 30cm bis 1 meter.