PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Lichtsucher" mit Servo und LDR



09.08.2004, 19:03
Hallo,

weil Fragen zur Servosteuerung und Digitalisierung immer wieder vorkommen, könnte ich als kleine Anwendung einen "Lichtsucher" mit Servo und LDR anbieten:

Ein Servo dreht einen LDR im Winkelbereich 0..180Grad, digitalisiert den LDR-Widerstandswert und speichert die Postion des jeweils hellsten (=kleinsten) Werts. Danach steuert das Servo den LDR in die hellste gefundene Position.
Die Werte während des Durchlaufs und das hellste Ergebnis werden auf einem 16*2 LCD ausgegeben.

Benutzt wird ein Graupner-Servo, ein Standard-LDR und ein Kondensator mit 100nF.

Gruß, Harald


'Lichtsucher mit Servosteuerung und LCD-Ausgabe
'==============================================
'Servo: Steuerkabel an PD4
'LDR : Reihenschaltung LDR und C=100nF an PD6 und GND;
' 10K parallel zum LDR, da bei Dunkelheit LDR >10KOhm

Config Servos = 1 , Servo1 = Portd.4 , Reload = 10 'Faktor für Imp.zeit
Config Pind.4 = Output
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
Config Lcd = 16 * 2

Enable Interrupts
Dim Ldr As Word , Wert As Word
Dim I As Byte , Pos As Byte , S As Byte
Dim T1 As String * 12 , T2 As String * 12

Cls 'LCD löschen

Do
S = 0 : Pos = 0 : Wert = 400
Servo(1) = 30 : Waitms 100 : Cls

For I = 30 To 110 Step 5 'Rechts drehen
Servo(1) = I 'Pulszeit i*10us
Waitms 100
Ldr = Getrc(pind , 6) 'Helligkeit lesen
If Ldr < Wert Then 'Wert neu setzen, wenn heller
Wert = Ldr : Pos = S 'als alter Wert
End If

Locate 1 , 1 : Lcd "Min " ; Wert ; " "
Locate 1 , 10 : Lcd "Akt." ; Ldr ; " "
Locate 2 , 1 : Lcd "Pos " ; Pos ; " "
Locate 2 , 10 : Lcd " " ; S ; " "
S = S + 1 'S= gedrehte Schritte
Next
'Drehe auf gefundene hellste Position
S = 5 * Pos : S = S + 30 'Eigentlich: S=30+5*pos
Servo(1) = S

Cls
Locate 1 , 5 : Lcd "Min " ; Wert 'Ausgabe der gefundenen Werte
Locate 2 , 5 : Lcd "Pos " ; Pos ; " " 'für Helligkeit und Position
Wait 1
For I = 1 To 3 'Warteschleife vor neuem Durchlauf
Lcd "*";
Wait 1
Next
Loop

End 'end program


Ich hab spät, aber doch, aus meinem privaten Depot zwei Code-Tags spendiert mfg PicNick

09.08.2004, 19:06
Oh, ich war nicht eingeloggt!
Der Beitrag ist von Netbird!

Netbird
09.08.2004, 19:11
Hallo, wenn mir jemand erklärt, wie ich den BASIC-Code anständig posten kann, tue ich das. So sieht es ja furchtbar aus, weil alle Formatierungen futsch sind.

Harald.

Roberto
03.11.2004, 19:45
Hallo Netbird

Für was braucht man den sowas ? (Lichtsucher)

Netbird
04.11.2004, 08:01
Hallo,

wenn man weiß, wo sich die hellste Stelle in einem Raum befindet, kann man dorthin z.B. ein Fotovoltaikelement drehen, einen Roboter dorthin fahren lassen (also z.B. den Ausgang finden) usw.
Man kann feststellen, wie die Helligkeitsverteilung in einem Raum im Laufe von Tagen ist, wenn man die Daten über längere Zeiträume loggt usw.

Wenn Du die Beiträge hier im Forum liest, kannst Du immer wieder feststellen, dass viele Anfänger Probleme haben, weil sie zu viel auf einmal wollen und dann Probleme bei der Elektronik, bei der Programmierung, beim Datentransfer PC- Mikrocontroller ... bekommen.

Ich habe deshalb für mich beim Einstieg in das "Mikrocontrollern" eine Reihe von kleinen Programmen geschrieben, um Vertrauen ´für größere Projekte zu sammeln. Dieses gehört dazu. Damals gab es hier eine Reihe von Fragen in diese Richtung.

Also, eine großartige Anwendung soll das nicht sein, ein Anfänger kann aber vielleicht die eine oder andere Anregung erhalten.

Gruß, Harald.

PS: Eben lese ich im Forum Sensoeren eine Frage von Mister X, der möchte genau diese hellste Stelle für seinen Roboter finden ...

RCO
04.11.2004, 13:38
Also wenn du asntändig Code posten willst, dann gehe links unten, unter dem eingabefeld auf "Antwort erstellen", und klickst du auf "Code", im, ich sag mal, 'Menu', es wird ein [ Code ] im Text (ohne Leerzeichen) eingefügt, du kopierst den Code rein und klickst wieder, jetzt im Menu "Code*", es erscheint [ /Code ] oder \ ? egal.

Ich finds gut, wenn du ein par lockere Progs reinstellst, es suchen tatsächlic viele Anfänger nach Beispielen, poste das doch mal in die Codeschnipsel-Ecke.

MFG Moritz

Netbird
05.11.2004, 10:50
Hallo Moritz,

danke für den Tipp fürs Posten. Ich probiere es das nächste Mal aus.

Harald

Roberto
17.11.2005, 06:38
Hallo

Ist zwar schon ein alter Thread, aber sonst finde ich auch nichts zu diesem Thema..
Darum schreibe ich gleich mal hier rein.

Zuerst hatte ich noch gefragt, für was man sowas verwenden kann und jetzt möchte ich mir auch schon so einen Lichtfinder bauen. :-)

Habe dazu zwei Servos.
Eins zum drehen und eins für auf und ab (X/Y)

Jetzt frage ich mich, wie ordnet man am besten die Sensoren an und wie viel sollte man nehmen ?

Dachte da an 4 Phototransitoren für die Richtungen und vielleicht einer für die Generelle Raumhelligkeit.

Das Programm sollte dann nicht immer den ganzen Berreich skennen
(zu langsam) sondern dann geziehlt auf die Lichtquelle hinfahren.
Wenn alle 4 Sensoren dann das maximum haben, sollte es ausgerichtet sein...


Hat jemand noch damit Erfahrung oder Netbird inzwischen vielleicht mehr ?


l.G. Roberto

PicNick
17.11.2005, 09:24
Ich arbeit' (leider auf kleiner Flamme) grad dzt. an so einem "Radar", allerdings mit dem GP2D12. Die Anforderung ist aber wohl ähnlich. Eins bin ich mir aber schon sicher: Wenn du X/Y bewegen kannst, brauchst du genau EINEN Sensor.

Roberto
17.11.2005, 09:36
Hallo Robert

Einen Sensor ?
ich will aber nicht immer alles X/Y abscannen!
Ich dachte mir da:
Zwei für die X Achse und zwei für die Y Achse
Wenn z.B. bei der X Achse (Dreh-Achse) , der linke Sensor dunkler wird
und der rechte ist noch hell, dann dreht das Servo weiter nach rechts, bis wieder beide Sensoren Licht haben.
Im Prinzip eine Nachführung.

Derzeit probiere ich gerade mit einem Sensor und einer Achse und scanne dabei immer.
Also einmal scannen, dann auf Max. fahren und solange warten bis Lichtquelle dunkler wird. Dann nochmal scannen.. u.s.w.

PicNick
17.11.2005, 09:55
Wie immer, kommt's darauf an. Hast du EINE helle Stelle und die bleibt, ist das das vielleicht ok. Wenn du dann aber darauf zufährst, sollte das Licht eigentlich heller werden, d.h. du kannst nicht sagen, ob es relativ dazu dünkler geworden ist.
Sprich, du kannst dann ev. auf eine 180 Grad scan verzichten, aber um das Ziel herum wird dir nix überbleiben, und damit sind mehrere Sensoren nebeneinander auch wieder sinnlos.

Roberto
17.11.2005, 10:05
Dazu dachte ich, noch einen Sensor (vielleicht in der Mitte) der mir die Grundhelligkeit ermittelt
Die anderen Sensoren dann mit einem dunklen Röhrchen von den Seiten abgeschirmt.
Ob ich dann auf die Lichtquelle zufahren will, weis ich noch nicht.
Dachte eher als Orientierung...
z.B. Licht vom Fenster ist immer rechts oder so.. :-)

PicNick
17.11.2005, 10:18
Grundhelligkeit tät ich einfach den Durchschnitt der Scan-Werte nehmen.
Es ist schwer und störanfällig, einen LDR (fix) so zu montieren, daß er die "Grundhelligkeit" ermitteln kann

Roberto
17.11.2005, 10:28
Der Sensor für die Grundhelligkeit würd auch auf die Plattform kommen, die sich per Servo dreht.
Nur halt nicht abgschirmt, wie die anderen Sensoren..

gestern hatte ich Phototransitoren beim Conrad gekauft. (SFH309)
Heute musste ich aber draufkommen, das die Phototransistoren für die AD abfrage doch nicht das ware ist.
Darum habe ich jetzt mit Photowiderständen probiert.(aber nur einer)

Kannst du da welche Photoempfindliche Sensoren empfehlen
(die schön klein sind ?)
Die Photowiderstände sind ja doch recht gross.

PicNick
17.11.2005, 10:47
LDRs hab ich zum experimentieren noch aus meinen 70-er Beständen, was neues würd ich nicht damit anfangen, daher kann ich nix raten.
Ehrlich gesagt, da der CNY70 doch sehr empfindlich im sichtbaren Bereich ist, würd ich glatt versuchen, ob das nicht auch langt (Ich versuche, unnötige Typenvielfalt zu vermeiden).
Habt ihr in Graz ein Elektronikgeschäft ?

Roberto
17.11.2005, 10:57
>Habt ihr in Graz ein Elektronikgeschäft ?
Ja, haben wir .
http://www.lta.at/
http://www.neuhold-elektronik.at/catshop/ (Restposten)
http://www.riedl-electronic.at/
unter anderm auch den Conrad..

Roberto
17.11.2005, 12:57
Hab jetzt endlich meinen Code geschaft..
Da war ein Wurm drinnen :-(
Bei den Fotowiderständen habe ich jetzt gemerkt, dass die eine gewisse Nachlaufzeit haben.
Muss ich beim fahren der Servos beachten..
Beim anhalten eine gewisse Zeit warten und dann erst messen..u.s.w.

Im Conrad Katalog habe ich so IR-Silizium-Fotodioden gesehen.
Könnte man die auch für sichtbares Licht verwenden ? (BPW 34)

Ich bräuchte was, das relativ linear zum Licht sich verändert und wenig lachläuft,
Phototranistoren ändern zu abrupt.

Nacher möchte ich sowas mal mit PIR Sensoren machen und auch mal mit zwei Mikrofonen auch :-)

PicNick
17.11.2005, 13:08
.. auch mal mit zwei Mikrofonen auch :-)

Größter Lärm ? Soll er dein Kind suchen ? O:)

EDIT: Irgendwie hab ich das Gefühl, du hast eine besondere Affinität zu Balsaholz ? Ist das Möglich ?

Roberto
17.11.2005, 13:15
>besondere Affinität zu Balsaholz ?

mmh...
eigentlich nicht.
habe aber noch ein bisschen herrumliegen von meinen früheren Modellbautagen und man kann es einfach super schnell mit dem Messer bearbeiten und braucht nicht in den Keller zu gehen, um dort dann was mit der Säge runterzusägen...

Ist ja alles nur als Versuchsaufbau ;-)
(Probieren ist besser als studieren ;-)

Aber um dich zu überzeugen:
Hier mal was in Birkensperholz (10mm) und gefräst ;-)
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=13915&highlight=
ganz unten .


Edit:
>Größter Lärm ? Soll er dein Kind suchen ? Angel
So einen schnellen Robi gibt es gar nicht , wie mein kleiner rumdüst ;-)
Aber vielleicht mal zur Raumüberwachung ;-)

PicNick
17.11.2005, 13:30
Kein Problem, Holz ist schon ok, in der Kindheit war ich der Matador-König

Ist Balsa überhaupt noch zu kriegen ? (Naturschutz, wie Mahagoni ?)

Roberto
17.11.2005, 13:46
Bei uns schon .

Radio Eriwan
17.11.2005, 17:28
... Bei den Fotowiderständen habe ich jetzt gemerkt, dass die eine gewisse Nachlaufzeit haben. ... Ich bräuchte was, das relativ linear zum Licht sich verändert und wenig lachläuft, Phototranistoren ändern zu abrupt. ...

Warum nimmst Du nicht einfach eine 'stinknormale' LED (https://www.roboternetz.de/phpBB2/viewtopic.php?t=14150)???

hrei
17.11.2005, 18:15
Hallo und völlig OT :-) ...


Ist Balsa überhaupt noch zu kriegen ? (Naturschutz, wie Mahagoni ?)

ne, zum Glück ist Balsa ein (sehr) schnellwachsendes Holz, im Gegensatz zu Palisander, Teak, Mahagoi uvam. Sogenannter "nachhaltiger" Anbau stellt also kein Problem dar. Wäre ja auch schade, wenn man Moselle nur noch aus Kunstoff bauen könnte :-(.

Viele Grüße
Henrik

PicNick
17.11.2005, 18:21
Danke für die Info.

..Wäre ja auch schade, wenn man Moselle nur noch aus Kunstoff bauen könnte :-(.
Jetzt könnt' ich fragen: Warum geschieht dann genau das ? Gibt's noch wen, der Spanten schnitzt und Rumpfnasen aus Balsa Klötzen rausschleift ?

Roberto
17.11.2005, 18:37
Hallo

Ja beim suchen bin ich auch auf diesen Thread gestossen.
Habs aber nicht ganz durchgelesen..
Kann man da wirklich eine Diode als Fotodiode verwenden ?
Wie regiert die bei Dämmerung ? Linear wie ein LDR ,
oder eher wie ein Phototranistor ?

Radio Eriwan
18.11.2005, 07:28
Die LED hat eine lichtabhängige Kapazität, die Du messen kannst (siehe Thread). Ob sie dabei allerdings ein absolut lineares Verhalten hat, wage ich mal zu bezweifeln.

Aber: Wie Du dem folgenden Diagramm eines LDR's entnehmen kannst, ist dieser ebenfalls in keinster Weise auch nur annähernd linear.

http://img295.imageshack.us/img295/763/ldr2zy.gif

Denke dabei jetzt aber bitte nicht, daß er 'fast' linear ist, weil die Kurven im Diagramm 'fast' gerade sind. Schau' Dir mal beide Skalen an: Die sind logarithmisch!

Also, eine LED würde es demzufolge auch tun. Miß doch einfach mal ihre Kapazität bei z.B. zehn unterschiedlichen Helligkeiten und erstelle Dir selbst ein Diagramm daraus. Ich denke, das müßte für Deine Zwecke funktionieren!

Roberto
20.11.2005, 07:21
Hallo

Habe jetzt meinen Lichtsucher mit 2 Achsen fertig.

Habe dazu drei LDR's vom Conrad verwendet.

Ein LDR für oben, zwei LDR's für rechts/links.
Die Werte für den unteren (pseudo-LDR) ergeben sich aus dem niedersten Wert von rechts und links-LDR.

Funktioniert ganz gut.
Läuft schön der Taschenlampe nach :-)

Roberto
22.11.2005, 08:25
Hallo

Wer will, kann sich das Ganze jetzt auf meiner Home anschauen (mit Video)
http://people.freenet.de/rrobertoo/Auslagerung1_Homepage/Projekte/Roboter%20Projekte/Lichtfinder/Hauptseite.htm

PicNick
22.11.2005, 08:57
@Roberto: Mach doch ein Take nur von der Taschelampe aus in Richtung
Sensor, da könnt' man das besser beobachten ! Am besten wär, man kriegte auch das Einschalten der Lampe mit

Roberto
22.11.2005, 11:13
Hallo Robert.
Dann wird der Film aber zu lange, drum habe ich es so gemacht...
(was ist eigentlich, Take ?)

PicNick
22.11.2005, 11:29
..was ist eigentlich, Take ?..

'tschuldige. Das ist so'n Jargon, im Grunde einfach eine (Film)aufnahme.