Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatische Zielerfassung
So, da ich mich jetzt stundenlang durch Google und das Forum gewühlt habe Frag ich doch einfach mal ob mir hier jemand weiterhelfen kann.
Zu meinem Problem ich muss für die Schule einen Roboter bauen, dieser Roboter, in Form eines Panzers soll ein mit einem Sender ausgestatestes Ziel erkennen und sich darauf zu bewegen. d.h. ein Sender im Ziel der Empfänger im Panzer.
Ich bin auf 4 Verschiedene Systeme für die Zielerfassung gekommen:
Ultraschall --> Strahlt aber vermute ich mal zu weit ab
Funk --> stell ich mir sehr kompliziert vor
normales licht --> müsste denk ich relativ einfach sein, aber ungeeignet da der Panzer jedes Fenster abschießen würde.
hab mal infrarot näher ins Auge gefasst.
Also kann sein das ich mir alles etwas einfach vorstelle.
Ich habe mir gedacht es muss doch Sensoren geben, ähnlich einer Fotodiode, die je nach dem wie viel Licht darauf fällt den Widerstand verringert. naja da fängts leider schon an hab keine Dioden gefunden, die nur auf Ir-Licht reagiert. ich nenn des ding einfach mal Ir-Diode, weiß jemand wo ich welche bekommen kann??
Also würde man jetzt diese Diode an eine Spannungsquelle mit ca. ??5V?? anschließen sollte doch bei maximaler Ir-Strahlung 5V rauskommen, bei weniger Strahlung einfach weniger.
Das Ganze an Einen AD Wandler angeschlossen sollte mein µcontroller die Signale doch auswerten können.
hab mir das jetzt so vorgestellt, der Panzer dreht sich einmal um die eigene Achse misst wo die Ir-Strahlung am größten ist und fährt darauf zu.
Was meint ihr, ist diese Idee realisierbar??
Hoffe ich habe keinen kompletten mist geschrieben, da ich ziemlicher Anfänger bin.
mfg Matthias
dennisstrehl
18.02.2006, 01:04
Bei reichelt gibt es z.B. BP 104 F und BP 104 FS, die sind von 800nm - 1100nm geeignet, eine Infrarotdiode strahlt so mit ca. 900nm ab.
Aber angeschlossen werden die glaub ich ein wenig anders, als du beschrieben hast.
MfG
BPW34 ist eine PIN-Diode. Die gibts auch mit IR-Filter.
Dann heißt sie BPW34FA für Senderdioden mit 880nm oder BPW34FS für IR-Dioden mit 950nm. Das letztere weiter vom sichtbaren Licht weg ist, ist die Filterwirkung hier noch besser.
Die PIN-Diode wird in Sperrichtung betrieben (Spannungsteiler mit hochohmigem Widerstand z.B. 1MOhm. Bei Lichteinfall fließt ein Leckstrom. Dieser liegt bei dieser Diode etwa bei 56µa pro 1000Lux, wenn ich mich recht entsinne.
Ich plane gerade eine ähnliche Anwendung.
Möchtest du mehr erzählen?
Gruß Sigo
Ob Du Infrarot oder sichtbares Licht nimmst ist zweitrangig, da ja das Licht vom Sender (Ziel) ausgeht. Wichtig ist vor allem dass das Sendersignal
viel höher ist als das Umgebungslicht.
Ich würde eine gepulste LED als Sender empfehlen. Durch das Pulsen
kann:
1. Die Led kurzzeitig eine höhere Strahlungsleistung abgeben.
2. Wenn Du eine vernünftige Frequenz nimmst (also z.Bsp. nicht ein kleines Vielfaches von 50Hz), kannst Du das Signal sicher vom
Umgebungslicht unterscheiden. Durch einen entprechend dimensionierten
Hochpass kanns Du z.Bsp. das Tageslicht und das Flackern von
Leuchtstofflampen vernhalten.
Das Signal wird nach der Verstärkung gleichgerichtet und ausgewertet.
also ich habe mir das ganze so vorgestellt:
Habe bei ebay einen panzer ersteigert, dieser wird erstmal ausgeschlachtet bis nur noch die motoren und schießelektronik drin sind. dann möchte ich 3 solcher sensoren einbauen, einer direkt nach vorne und je einer schräg nach links und rechts....
zuerst soll der panzer sich einmal um die eigene achse drehen und mit dem mittleren sensor die stelle mit der maximalen infrarot strahlung finden. dann fährt er darauf zu... weiterhin wird überprüft ob die strahlung auf einem der seitlichen sensoren nicht stärker als auf dem hauptsensor ist. falls doch korrigiert er seine fahrtrichtung um auch bewegliche ziele treffen zu können. theoretisch müsste das signal ja auch stärker werden, je näher man dem ziel und somit dem sender kommt. hierüber müsste sich auch der zeitpunkt zum abschuss ermitteln lassen.
Bei der Methode mit der BPW34FS diode, wie weit wäre denn ungefähr die Reichweite?? so 2m sollten denk ich mindestens drin sein.
und dann hätte ich noch eine ganz doofe frage, für was brauch ich überhaupt den spannungsteiler?? und wie müsste dieser angeschlossen werden??
gruß matthias
So hab mor da nochmal paar gedanken dazu gemacht.... ist die skizze mit dem spannnungsteiler richtig?? ich verstehe nur den sinn dahinter nicht, für was br5auch ich den??
hoffe mir kann jemand helfen
gruß matthias
Hallo,
1: Die Fotodiode (Pindiode) wird in Sperrrichtung betrieben. SIe muss also umgekehrt gepolt sein. Durch das Licht wird ein kleiner Leckstrom in Sperrrichtung erzeugt.
2.: Da der Strom sehr klein ist, muss der Widerstand in deinem Bild sehr groß sein, typisch mind. 1MOhm oder mehr). Die entstehende Spannung ist sehr klein und hochohmig und muss erst verstärkt werden. (z.B. mit einem OP)
Gruß Sigo
Ich würde die LED pulsen (Stichwort 555).
Das empfangene Signal mit einem Verstärker mit AC-Kopplung
verstärken.Danach mit einem phasenselektiven Gleichrichter eine
DC-Spannung daraus machen. Die kannst Du dann auf den A/D-Pin
des uC führen. Vielleicht währe es sogar vorteilhaft die Verstärkung
zu regeln.
Mit einfach einer Photodiode direkt am uC-Port wirdst Du wahrscheinlich
nicht weit kommen. Enweder hast Du zuwenig Signal und das
Sendersignal von der Umgegungsstrahlung (Lampen, Tageslicht) überdeckt oder der uC übersteuert.
das mit der zielerfassung interresiert mich auch(siehe nachbarthema)wie ist das gleiche mit wärme statt licht? g zepp
oh man ich glaub des hab ich mir ein bisschen arg einfach vorgestellt...
mal ne bisschen andere frage... wegen der reichweite... gerade bei infrarot fenbediungen... die schaffen es doch auf bis zu 10 meter entfrenung infrarot daten genau zu empfangen... ist es dann so schwer die infrarotstrahlung vom normalen licht zu unterscheiden??
und noch ne andere idee weiß aber nicht ob das möglich ist...
also ein LDR liefert doch ohne verstärker oder solche spielchen vernünftige wiederstandsunterschiede, je nach lichteinfall... ist es möglich einfach einen infrarotfilter vor den LDR zu setzen und damit den LDR nur auf infrarotstrahlen reagiern zu lassen?? gibt es einen derartigen filter überhaupt??
naja hatt vielleicht jemand mal einen fertigen schaltplan gesehen der meine anforderungen erfüllt??
zu zepps Pferdemistproblem, ich denke nich das es übertragbar ist, da der panzer ja nur ziele anteuert die entsprechende signale aussenden. außer du bringst deinen Pferden bei äpfel fallen zu lassen welche infrarot strahlen aussenden^^
hoffe mir kann jemand helfen
gruß
matthias
Bei der Fernbedieung funktioniert das mit gepulstem Licht, dadurch kann man die IR-LED mit einem Größeren Strom betreiben, und der empfänger erkennt nur IR-Lich mit einer bestimmten Frequenz!!! Ich glaube die Epfängerbausteine sind TSOP oder so... schau am besten mal im RN-Wiki nach!!!
hmm ich kann ja auch einfach ne alte fernbedinung umfunktionieren... sollte doch dann eigentlich die reichweite steigern oder??
//edit
hab grad mal im wissen nach TSOP gesucht... und bin bei nem atmel AVR410 gelandet... naja aber das ist ja nen decoder für die signale der fernbedinung... ich denke nicht das der die strahlungsintensität messen kann oder?? ist ja der einzige was ich brauche... daten werden nicht verschickt...
eine genannte diode wie z.B. die BPW34FS müsste doch auch die strahlung einer Fernbedinung messen können oder??
Die Fernbediehnung ist ja der Sender !!
In der Fernbedienung wird gepulstes Licht verwendet, zusätzlich strahlt
die Diode im Infrarot. Durch ein optisches Filter im Empfänger (TV)
kann schon ein grosser Teil des Umgebungslichtes ausgefiltert werden.
Nachher wird das Signal im Frequenzband des Senders sehr stark verstärkt. Die Information ist ja nicht in der Amplitude.
LED's kannst Du vergessen ! Wohl ändern sie sich relativ stark bei sich änderndem Licht, aber sie sind sehr träge und unstabil.
Also wie gesagt:
1.IR-Diode om Sender Pulsen (Stichwort 555).
2.Optisches Filter einsetzen oder IR-Photodiode mit integriertem Filter nehmen.
3.Empfänger mit OP-Aufbauen und stark verstärken.Durchlassfrequenz übereinstimmend mit dem Sender.
4.Gleichrichten.
5.Signal auf Port des uC bringen (Auf richtigen Pegel achten !!).
6.A/D-Wandlung.
Punkt 3 bis 6 brauchst Du zwei Mal.
Nun Vergleich des Signals zwischen beiden Ports per Software und
Regelung implementieren.
so jezt muss ich hier doch mal weiterplanen... mich haben eure ratschläge leider noch nicht viel weitergebracht weil ich einfach nicht geung davon verstehe tut mir leid wenn ich mich etwas dumm anstelle...
ich habe beim stöbern im internet diesen sensor gefunden :
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=71&products_id=115.
wenn ich jetzt den mit einem verstärker an den analog eingang des µc anschliese, sollte es doch theoretisch möglich sein die ir strahlung zu messen oder??
noch mal zu dem Pulsen. Ir Fernbedinungen haben ja eigentlich eine relativ gute und für mich mehr als ausreichende reichweite. würde es jetzt aureichen wenn ich einfach mit einer Fernbedinung auf den sensor "ziele" oder muss der sensor auch gepulst werden?
schonmal vielen dank für eure hilfe
//--> edit
mir ist da grad was eingefallen... meint ihr das ganze wäre mit uv-strahlung einfacher?? oder ist es zu schwer eine geeignete quelle zu finden??
gruß
matthias
Alex20q90
14.04.2006, 16:54
Hallo,
fals Du folgendes Video anschaun kannst, wirst Du sehen wie einfach eine "Zielerfassung" arbeitet. Leider sieht man nicht wies funktioniert!
Ist aber einfach bei Kamerasystemen :
Das Bild hat viele markannte Punkte. In diesem Beispiel ein Logo auf dem Spielfeld. Der Rechner versucht nun dieses Bild in der Mitte zu halten. Dafür steuert er einige Servos an.
Es gibt die CMU-Cam2. Die Kann solche sachen "von Bord" aus.
Ich habe die Datei in ZIP umbenannt WEIL HIER -->> *.ASX <<-- VERBOTEN IST!
Was soll der Blödsinn?
EDIT :
http://defencemercury1.dyndns.org/videos/1de6112a-bee6-4447-a1c1-7e3f77106328.asx
hm hab ich mir auch schon überlegt, aber da wir nur einen µc controller zur verfügung haben der mit assembler befehlen angesteuert werden soll stell ich es mir sehr schwer vor dieses bild so auszuwerten das der panzer sein ziel auch wirklich anvisieren kann... wie funktioniert überhaupt eine video auswertung per µc über farben oder??
ich denke es ist am einfachsten ir strahlung anzuvisieren... auch ultraschall hab ich mir überlegt nur da lässt sich ja die "stärke" nicht oder nur sehr schwer messen...
gruß matthias
Eine Richtungserkennung mit Ultraschall betrachtet nicht die "stärke" = Amplitude des Signals, sonder die Laufzeit, bzw. bei der Peilung die Laufzeitdifferenz. Das geht sehr gut und sicher.
Wenn dein Ziel ein Ultraschallsignal (Impulspakete) aussendet und dein Verfolger 2 Ultraschallsensoren möglichst weit auseinander hat, kannst du die Laufzeitdifferenz messen..
Aus V= 340m/s ergibt sich eine Laufzeit von ca. 3ms/m
Das sind dann ca. 3µs/mm. Und die kann schon mit einem AVR auswerten..(2 Interrupteingänge und Timer1 nutzen)
In der Praxis wird die Auflöung gröber sein, aber die Richtung zu deinem Target bekommst du so ziemlich genau raus. Wenn dein Target zusätzlich bei jedem Impulspaket eine IR-LED anmacht, kannst du die Laufzeit und damit die Entfernung zum Ziel messen.
Sigo
hmm also mein panzer ist ca 30 cm breit... wenn ich da jetzt ganz links und ganz rechts einen ultraschall sensor hinsetze sollte er z.b. das ultraschall signal zuerst am sensor 1 und dann am sensor 2 erhalten, und je nachdem wie lang die zeit dazwischen is kann er das ziel anpeilen, richtig??
nur gibt es bei einem abstand von 30 cm einen messbarn zeitunterschied?? müssten doch dann bei 3ms/m max 1ms zeitunterschied sein, und das auch nur wenn der sender auf einer linie mit den beiden empfängen ist der µc controller der uns zur verfügung steh hat auch nur eine taktfrequenz von 1 mhz... also ist eben nen 8051 mit 12mhz, die dann aber eben noch durch 12 geteilt werden.
Wenn deine Sensoren 30cm auseinander sind, ist das doch ziemlich gut.
Wenn das Signal nur ein wenig schräg von vorn kommt, kast du doch schnell 1cm Unterschied zum Ziel.
Das sind dann schon 30µs (ca.)
Eine Zeit, die man primal messen kann, und du kannst mit einem 12MHz Controller ja noch schneller messen.
Wenn du z.B. einen AVR Mega48 mit 20MHz nimmst, und einem Befehl pro Takt, kannst du locker auf 1mm Auflösen (soviel gibt der Ultraschall sowieso nicht her)..
Gruß Sigo
hmm des hört sich eigentlich leichter an als des infrarot spielchen... nur was schätz du wie hoch die maximale entfernung zwischen sender und empfänger sein dürfte?
ultraschallabstandswarner gibts doch glaub bis max. 2m oder?? weil weniger dürfte es ned sein... allein der panzer is scho 80 cm lang oder verdoppelt es sich sogar?? weil die schalwellen müssen ja nicht erst reflektiert werden sondern treffen direkt auf den empfänger.
gruß matthias
Abstandswarner arbeiten ja mit der Reflektion am anderen Objekt. Der Strahl legt also 4m zurück.
Entfernungsmesser zum Messen von Wandabständen in Bauten kommen schon auf bis zu 10m - hin und 10m zurück.
Ich denke, dass du mit >4-5m rechnen kannst.
Wichtig wäre aber noch, den Abstrahlwinkel des Senders zu beachten und zur Not mehrere Sender (Fächer) zu montieren, damit du auf einen hinreichenden Winkel kommst. Alternativ, kannst du auch von oben auf einen Kegel strahlen, dann wird der Strahl rundum abgestrahlt, aber dann schwächer..
Was willst du eigentlich machen?
sigo
ich muss für die schule einen panzer mit ner automatischen zielerfassung baun... also man stellt den panzer irgendwo hin dieser dreht sich , visiert das ziel an, bewegt sich dann darauf zu und schiest zum schluss.
also das ziel bekommt dann den ultraschall sender mit der ir diode und der panzer soll es erstmal finden... das mit dem abstrahlwinkel dürfte ja kein großes problem sein, da er mit sicherheit größer ist als bei der infrarot idee... entweder dann eben 2 sender oder wirklich einen kegel. 3meter reichweite sind eigentich ausreichend...
theoretisch sollte es doch mindestens die doppelte reichweite eines normalen abstandswarners sein, da dieser ja erstens den doppelten weg zurücklegt, und außerdem die reflektion auch noch einiges an reichweite kosten wird oder??
klar, 5m sollten kein größeres Problem sein. Und ich denke, dass die Peilung genaugenug ausfallen wird. Zusätzlich könntest du nachdem die grobe Richtung steht noch die Phasenlage ausregeln, sodass die Signale wirklich gleichphasig werden..
wie funktioniert eigentlich so ein reiner ultraschall sender?? schlies ich den einfach nur an ne stromquelle an oder brauch ich noch ne art taktgeberator?? schon mit generator oder?? und da häng ich dann eben noch ne infrarot diode mit dran über die ich dann die entfernung zum ziel berechnen kann oder??
Du brauchxt einen Taktgenerator mit der Resonanzfrequenz des Wandlers (meist ca. 40kHz). Damit musst du Impulspakete erzeugen, die z.B. aus 16-32 Perioden bestehen...
Nach jedem dieser Pakete machst du erstmal Pause, z.B. solange wie die maximale Laufzeit beträgt, die sich aus der Entfernung ergibt..dann das nächste Paket..
Das kannst du ja z.B. mit einem Doppeltimer oder auch Nand-Gattern erzeugen, oder auch Zählern, oder besser gleich mit einem AVR-controller, ... viele Wege führen nach Rom
Du solltest die Frequenz auf den Ultraschallsensor abgleichen können..so dass der Empfänger an einem Oszi max. Signal ergibt..
sigo
hmm das einfachste wäre dann ja 2 µc zu verwenden, einem im panzer um diesen zu steuerun und einen um das signal zu erzeugen. nur wie soll ich die frequenzen abgleichen?? der panzer ist ja mobil und hat keine verbindung zum sender.
Du musst die Frequenz ja nur 1x abgleichen, auf dem Labortisch halt. Du kannst ja die optimale Frequnez auch mit einem Tongenerator ermitteln und dann ein entsprechendes Timing programmieren..
Du kannst auch bei dem Sender-Controller einen Poti an den AD-Eingang anschließen und dann mittels Timer usw. den Takt abhängig vom Poit erzeugen, und z.B. den Vorteiler verstellen...musst du dir halt die Möglichkeiten des AVR und der jeweiligen Programmierumgeung ansehen...
Die Ultraschallwandler sind sehr schmalbandig und es muss schon auf ein paar 100 Herz die Resonanzfreuenz sein.
Sigo
hmm funktioniert es eigentlich nicht auch ohne den frequenzabgleich?? wenn der sender ein paket aus 16 impulesen sendet, lass ich meinen µc einfach "lauschen" bis er das erste signal empfängt. sobald dieses ankommt fängt er an die zeit zu stoppen, bis auch der 2. us sensor das signal bekommt, sollte ja kurz danach sein. aus dieser zeit kann er ja dann die optimale richtung berechnen oder??
ja klar. Der Frequenzabgleich ist ja nur für die maximale Reichweite nötig, wenn die nicht genau passt, und es gibt Streuungen, hast du gleich eine deutlich geringer Amplitude und somit weniger Reichweite..
Bez. Empfänger würde ich Timer 1 eines AVR nehmen und dann beide Empfänger (über Komparatoren usw.) auf Interrupt-Eingänge oder Capture-Eingänge (hat der 2 Captureeingänge?) legen und beide Zeiten (des rundlaufenden Timers) in Register schreiben. Dann die Differenz bilden. Wenn der Timer einen Überlauf hat, siehst du das ja und kannst die Different tzotzdem bestimmen
oder eben mit dem ersten den Timer starten...ein Flag setzen usw..
hmm ok das mit dem frequenzabgleichen hab ich immer noch nicht ganz verstanden, weil immer wenn ich den controller an und aus schalte verschiebt sich des doch oder??
zu dem timer ist eine gute idee, hätte ich wahrscheinlich um einiges umständlicher gemacht. muss ich nur mal schaun wie es bei unserem µc mit capture eingängen aussieht...
achja und ich wollt dir einfach mal danke sagen für deine geduld und hilfe, hast mir jetzt schon sehr viel geholfen.
gruß matthias
so hab da gestern beim suchen mal diese schaltung gefunden
http://www.roboterwelt.de/info/schalt/usmodul/index.htm#Beschreibung
sie sollte sich ja eigentlich recht leicht für meine zwecke umbaun lassen, nur sender und empfänger trennen, eine ir diode einbaun und irgendwie das mit den paketen hinkriegen. der frequenzagleich fällt ja weg, da beide mit der selben frequenz arbeiten oder??
nur was mir noch eingefallen ist, für was brauche ich die pakete?? das der µc genau weiß wann er die passende schalwelle am 2. sensor empfangen hat und nicht einfach die nächste nimmt?? oder einfach um ein genaueres messergebnis zu erreichen, indem er 16 schallwellen zählt und dann den mittelwert ausrechnet??
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.