PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lichtsensoren für miniRoboter ( Atmega128 )



fidan
04.07.2007, 21:23
Hello!

Wer hat den Zeit und Lust einen Anfanger zu helfen?
:-k
Wir haben seit drei Wochen angefangen, die Lichtsensoren unserer MiniRoboter zu programmieren. Wir haben zuerst eine Program geschrieben, auf PWM und Interrupt basiert, so dass alle 4 Beine gleichzeitig sich bewegen und in unterschiedlichen Phasen. Die Servos können vorne geradeaus fahren, oder links und rechts abbiegen, aber das Problem ist, wie können wir der Roboter programmieren, so dass er zu Lichtflecken sich bewegt?! ](*,)

Wir haben unterschiedliche Sachen ausprobiert, z.B. die Differenz von die Werte für die zwei extreme des Lichts (sehr dunkel und sehr hell) als Voraussetzung für die Bewegung des Servos einzugeben, aber trotzdem hat der Roboter keine sensible Behaviour angezeigt.
Für einen hilfreicher Antwort werde ich dankbar sein . [-o<

squelver
04.07.2007, 21:55
Du könntest in Fahrtrichtung im Winkel von ca. 45Grad jeweils links und rechts eine Fotodiode befestigen, die voneinander aber abgeschirmt sind. Dann würde sich der Roboter in die Richtung bewegen müssen, in der die Fotodiode am meisten Licht bekommt, was ganz einfaches, hab das ma ohne Controller gebastelt \:D/

recycle
04.07.2007, 22:07
Wir haben unterschiedliche Sachen ausprobiert, z.B. die Differenz von die Werte für die zwei extreme des Lichts (sehr dunkel und sehr hell) als Voraussetzung für die Bewegung des Servos einzugeben, aber trotzdem hat der Roboter keine sensible Behaviour angezeigt.

Wie meinst du das mit "Lichtflecken" und Differenzen zwischen hell und dunkel?
Einen hellen Fleck z.B. von einer Taschenlamps die irgendwo auf die Wand oder den Boden strahlt, werden die Sensoren wahrscheinlich gar nicht erfassen können.

Wenn du lichtempfindliche Sensoren hast, kannst du den Roboter so programmieren, dass er sich zu der Seite wo er mehr oder zu der anderen dreht. Dann dreht er sich aber nur in die Richtung aus der das meiste Licht kommt.

Wenn du möchtest, dass er sich auf die Lichtquelle zu bewegt, könntest du ihn solange drehen und messen lassen, bis er die Richtung mit dem höchsten Messwert gefunden hat. Normalerweise sollte das dann die Richtung sein, aus der das Licht kommt.
D.h. wenn du ihn jetzt ein Stück geradeaus fahren lässt, fährt er auf die Lichtquelle zu.
Wenn du das Ganze dann oft genug wiederholst, kommt er hoffentlich irgenwann an der Lichtquelle oder wenigstens an der hellsten Stelle im Raum an.

squelver
04.07.2007, 22:16
Soll dein Roboter nur das sich vor ihm befindende Licht erkennen, oder kann es im ganzen Raum sein?

Noch eine Idee:
In den meisten Laserscannern befinden sich gewölbte flache Linseneinsätze. Son Teil nehmen und dahinter n paar Fotodioden oder ähnliches, dann würde alles was vor die Linse kommt als Streifen dahinter auf Fotodioden treffen, je nach Richtung aus der der hellste Streifen auf die Fotodiodenreihe trifft, wird gegengesteuert \:D/

Weiss grad nicht (hatten vor kurzem n Umzug) wo meine Linen sind, ich schau mal für n Beispiel ;)

Edit:
Hier nun meine kleinen Versuche :)

http://www.skorpion-roboter.de/images_galerien/optik/photo0001.jpg

http://www.skorpion-roboter.de/images_galerien/optik/photo0002.jpg

http://www.skorpion-roboter.de/images_galerien/optik/photo0003.jpg

http://www.skorpion-roboter.de/images_galerien/optik/photo0004.jpg

Falls Fragen hast ;)

squelver
04.07.2007, 23:47
Hier hab ich noch n kleinen Clip dazu:
http://www.myvideo.de/watch/1847116

\:D/