PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IR Leuchtturm



Crossfire01
10.05.2013, 16:33
Hallo Zusammen,

Ich habe vor einen Rasenmäherrobotor zu bauen. Damit dieser automatisch in die Ladestation fährt, wollte ich einen IR-Leuchtturm aufstellen und diesen bei geringer Akkuleistung anfahren.
Hierfür ließ ich eine IR-Leuchtdiode dauerhaft leuchten. Denn IR Receiver verbund ich mit einem Arduino board, definierte ein input-port und versuchte somit den output vom Receiver auszulesen jedoch bleibt dieser unferändert. Habe ich hier zu einfach gedacht? Lässt sich so ein Receiver nicht so einfach auslesen?

Receiver und diode habe ich zusammen aus einem dvd player ausgelötet.
Receiver gleicht/ähnelt diesem (http://www.bg-electronics.de/datenblaetter/OptoElektronik/TSOP34836.pdf).

ranke
10.05.2013, 16:53
Habe ich hier zu einfach gedacht?

Ein bißchen zu einfach. Damit der Empfänger nicht auf sonstiges IR-Licht (z.B. von der Sonne, künstliche Lichtquellen) reagiert, ist er nur auf gepulstes IR-Licht einer bestimmten Frequenz empfindlich (bei den von Dir verlinkten Typen zwischen 30 und 56 kHz, siehe Datenblatt). Die LED strahlt aber gleichmäßiges Licht aus. Man muss die LED also mit einer in der passenden Frequenz gepulsten Spannung versorgen.

radbruch
10.05.2013, 17:15
Hallo

Ich hatte mal einen "IR-Leuchtturm" aus einem Linienlaser gebastelt. Der Empfänger ist ein LDR. Im Freien habe ich das aber nicht getestet:


http://www.youtube.com/watch?v=dmXwCAlR7OA
(Video aus https://www.roboternetz.de/community/threads/40752-Ladestation-f%C3%BCr-RP6?p=503096&viewfull=1#post503096)

Der LDR ist zwischen analogem Eingangspin und GND angeschlossen und bildet mit dem aktivierten internen PullUp des AVR einen Spannungsteiler. Die Spannung sinkt mit zunehmender Stärke der Beleuchtung des LDR. Die Auswertung ist einfach:

setMotorPWM(150, 100); // in Kurve darauf zufahren
while(readADC(ADC_ADC0) < 200);

Bedeutet: "Fahre in einem leichten Bogen auf den Leuchtturm zu solange das empfangene Licht eine vorgewählte Helligkeit (Spannung am ADC-Pin ist kleiner als Schwellwert) hat. Bei zuwenig Licht wird solange gedreht bis der Schwellwert wieder unterschritten wird. Das sollte dein Arduino auch hinbekommen.

Gruß

mic

PlasmaTubeI²C
10.05.2013, 17:38
Hi,

IR-Sensoren bei direkter Sonneneinstrahlung sinnvoll zu betreiben dürfte zum Problem werden...man müsste Leds mit mehr Leistung nehmen!
Andernfalls wäre die Leuchstärke zu gering und der Receiver würde kein Signal finden.


Man muss die LED also mit einer in der passenden Frequenz gepulsten Spannung versorgen.

Das kommt auch noch dazu, wobei die Taktabfolge im Datenblatt steht, je nachdem einige 10 Kilohertz, also für einen Arduino recht schwer zu schaffen...
Außerdem, um den IR-Leuchtturm zu lokalisieren, reicht nicht nur ein Receiver, da sind mindestens zwei nötig, da ja der Roboter nicht nur auf sein Ziel zufahren muss,
sondern auch die Richtung kennen sollte, sonst fährt er ja daran vorbei ;)
Wie am Beispiel von Radbruch gehts auch mit einem, aber da wurde ja ein fokussierter Laser als Lichtquelle genommen, ob das mit stark streuenden Leds noch geht
weiß ich ned genau.
Wenn du je zwei Receiver links und rechts vom Roboter nach vorne richtest, kannst du beide Messwerte vergleichen und so weiß der Mäher, ob er mehr nach links oder
rechts steuern muss, ist auch relativ einfach zu programmieren. Aber: Wenn das Signal kommt, dass der Akku schwach wird, während er gerade mit den beiden Sensoren in die andere Richtung "schaut",
sollte man ihn erstmal solange drehen, bis er ein Signal bekommt.

Crossfire01
10.05.2013, 18:01
Danke für Eure Hilfe! Ich versuche erstmal die Laser-Methode :) Wenn das Draußen nicht klappt muss ich wohl doch zur Induktionsschleife greifen.