PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entfernungsmessung



BlackBroom
28.02.2004, 18:30
Hallo
Ich möchte für meinen Roboter, das Transreciver-Set Best.Nr. 190360-13 bei Conrad, für die Datenübertragung nutzen. Ich suche jetzt eine Art Entfernungsmesser/senor, mit dem ich sehe, wie weit mein Roboter, von dem Funkemfänger weg ist. Die Entfernungsmessung, sollte bis ca 300 Meter gehen. Dies will ich dazu nutzen, um zu sehen, wann mein Modell aus der Sendereichweite draussen ist. Wie kann ich das machen?
Gibt es dafür Sensoren oder Bauteile?

MicroTex
28.02.2004, 19:12
ich kenne diesen transreceiver nicht. aber eine möglichkeit wäre die distanz mittels eines akustischen signals zu überprüfen. wenn du alle paar sekunden ein kurzes Signal (ev Ultraschall damits nicht nervt) aussendest, dieses auf dem roboter empfängst und an die sendestation per funk meldest dass du das signal erhalten hast kannst du so die entfernung bestimmen (oder umgekehrt dh. roboter sendet signal und pc empfängt).
benutze die formel s=v*(t-x) (s=entfernung, v=schallgeschwindigkeit, t=gemessene zeit zwischen signalausgabe und funkrückmeldung, x=konstante)
x ist die zeit, die der controller braucht um die daten zu verarbeiten + die zeit für die funkübertragung (wobei diese sehr kurz ist und vom weg parktisch nicht abhängt)

Matthias
28.02.2004, 22:30
Oder du sendest mit nem anderem Funkmodul und guckst, wie stark das empfangene Signal ist.

Matthias

BlackBroom
29.02.2004, 10:47
Das Set was ich benutzen will, sind ja schon Funkmodule oder?
Nur werte ich das aus, wie stark, dass Signal ist?

Kjion
29.02.2004, 11:17
Das ist bei fertigen Modulen vermutlich eher schwierig bis gar nicht möglich. Ist es denn wirklich so wichtig zu erkennen wann der Roboter aus dem Empfangsbereich fährt ??
Du könntest es doch einfach so machen, dass der Roboter sobald er merkt das kein Signal mehr empfangen wird den Weg wieder zurückfährt bis er wieder was empfängt...

MfG Kjion

BlackBroom
29.02.2004, 11:20
Hallo
Das wäre genauso gut.

Ringelkrat
29.03.2004, 18:11
Du kannst folgendes machen: (So was ähnliches hab ich auch vor!)

- Du sendest ein IR (infrarot) Signal, was dein Roboter empfängt und gleichzeitig ein US (Ultraschall) Signal
Sobald der Roboter das IR Signal emfängt (sofort durch Lichtgeschwindigkeit) setzt er einen Timer auf null und misst die Zeit bis er das US Signal empfängt. Mit der Schallgeschwindigkeit (307 m/s Hängt aber auch von der Luft-Temperatur ab) kannst du die Strecke zwischen US-Sender und Roboter berechnen.

MfG Ringelkrat

recycle
29.03.2004, 20:37
- Du sendest ein IR (infrarot) Signal, was dein Roboter empfängt und gleichzeitig ein US (Ultraschall) Signal
Sobald der Roboter das IR Signal emfängt (sofort durch Lichtgeschwindigkeit) setzt er einen Timer auf null und misst die Zeit bis er das US Signal empfängt. Mit der Schallgeschwindigkeit (307 m/s Hängt aber auch von der Luft-Temperatur ab) kannst du die Strecke zwischen US-Sender und Roboter berechnen.

Das Addlink Funkmodul ist mit knapp 300m Reichweite angegeben.
Ich kann mir eigentlich nicht vorstellen, dass man mit üblichen Infrarot- oder Ultraschall-Sendern auch nur annähernd an diese Reichweite rankommt und den Robby viel zu früh zurückzupfeiffen, weil die Entfernung des Addlink-Moduls viel grösser als die Rechweite der Entfernungsmessung ist, ergibt nicht unbedingt Sinn.

Gibt es da nichts passendes im Modellbaubereich? Das Problem müsste doch auch jedem Modellflieger regelmässig Kopfzerbrechen bereiten.

Vielleicht könnte man ja irgendeine andere billige Sender-Empfänger Kombination mit etwas niedriger Reichweite verwenden und wenn diese Reichweite überschritten ist wird Robby zurückgepfiffen.

Wenn beides auf Funk basiert sind die Bedingungen auch ähnlicher.
Bei einer Kombination aus Funk, Infrarot und Ultraschall dürften alle alle 3 Reichweiten unterschiedlich auf Tageslicht, Wind, Luftfeuchtigkeit usw. regieren.

Kjion
29.03.2004, 21:23
Gibt es da nichts passendes im Modellbaubereich? Das Problem müsste doch auch jedem Modellflieger regelmässig Kopfzerbrechen bereiten.

Naja, da gibt es dann halt Störungen und daran kann man erkennen, das man langsam wieder zurückfliegen soll. Und ab und zu ists dann schon zu spät *g* Dafür gibts ja Fail-Save Funktionen ... allerdings hilft das hier leider nix ...

MfG Kjion

trickTronic
30.03.2004, 12:18
bei http://www.rfsolutions.co.uk/products/rf_modules/433_narrow.htm gibts ein RX-TX-Modul mit 433MHz, bei dem der Empfänger einen Analogausgang hat, der angibt wie gut das Signal empfangen wird.
Dieser Sender/Empfänger ist zwar um einiges billiger, aber die Beschaltung und Software zur Steuerung muss man halt selber programmieren.
Ich habe als Fail-Safe-Fkt. einen Watchdog und Checksum-Codierte Daten verwendet. Wenn in einer gewissen Zeit keine gültigen Daten kommen, bremst der Roboter...

hrrh
30.03.2004, 15:29
1. mit gps kann man die position auch messen (teuer)
2. mit ultraschall sind problemlos reichweiten von bis zu 2km moeglich (alles eine frage von lautsprecher und verstaerker); statt IR-LEDs wuerde ich einen laser (mit entsprechender ablenkptik) werwenden, oder einen IR-scheinwerfer (und grosse akkus)
3. nimm eine normale antenne und eine richtantenne, wenn nur noch mit der richtantenne was empfangen wird, sollte man zurueckfahren, bis beide antennen etwas empfangen

Ringelkrat
30.03.2004, 22:00
Hi
Du könntest ja auch per Funkt (Oder was anderes?) eine genaue Uhrzeit senden, die der Roboter auch hat. Wenn das Signal beim Roboter angekommen ist, vergleicht der Roboter die Zeit mit der aktuellen Zeit (Ankunftszeit) und errechnet die Differenz. Damit kann man die Strecke berechnen. Du muss aber mal nachgucken, ob die Funksignale nicht zu schnell für dein Microcontroller sind und, dass deine innere Uhr auch immer genau läuft.

Ist ja nur son, Vorschlag!?!


(Hab den Beitrag zuerst aus versehen in nem anderen Forum gestellt!)
MfG Ringelkrat

NumberFive
31.03.2004, 00:54
Hallo wenn ich das jetzt richtig über flogen habe.
ist doch problenm das er nicht aus der reiche weite möcte das kann in keinem fall über die entfernung gehen
den funk verhällt sich nicht überall gleich also muß man die feld stärke messen das kann in ja auch am PC dann kann ich rechtzeitig das komanndo zu zurück ab setzen.

Leider sag mir die beschreibung nicht ob man das empfangssignal vom pegel her messen kann damit ehrlich keine ahnung.

Gruß

recycle
31.03.2004, 05:24
Du könntest ja auch per Funkt (Oder was anderes?) eine genaue Uhrzeit senden, die der Roboter auch hat. Wenn das Signal beim Roboter angekommen ist, vergleicht der Roboter die Zeit mit der aktuellen Zeit (Ankunftszeit) und errechnet die Differenz. Damit kann man die Strecke berechnen.

Jetzt weiss ich endlich auch warum hier abends auf NDR 3. immer die Tageschau von vor 20 Jahren läuft. Das ist gar keine Wiederholung, die Sendung kommt jetzt erst hier an, weil der NDR so weit weg ist und die Funkwellen so lange gebraucht haben ;-)



Du muss aber mal nachgucken, ob die Funksignale nicht zu schnell für dein Microcontroller sind und, dass deine innere Uhr auch immer genau läuft.
Man könnte ja an den Robby und an den Sender jeweil eine Funkuhr dranhängen, dann haben beide immer die genaue Uhrzeit ;-)

Tux
31.03.2004, 05:53
Du muss aber mal nachgucken, ob die Funksignale nicht zu schnell für dein Microcontroller sind und, dass deine innere Uhr auch immer genau läuft.
Man könnte ja an den Robby und an den Sender jeweil eine Funkuhr dranhängen, dann haben beide immer die genaue Uhrzeit ;-)

Naja, eine Zeit zu senden ist ja keine schlechte Idee (wird bei GPS ja auch so gemacht) aber die Entfernungen sind halt doch etwas zu gering, weil die Uhren von Sender und Empfänger absolut synchron laufen müssten. Die Lichtlaufzeit bei 300m beträgt ja nur 6µs. So synchron laufen auch keine Funkuhren, weil das Signal der Funkuhr auch an die Lichtgeschwindigkeit gebunden ist. Wenn also eine Funkuhr 300m näher am Sender ist als die Andere haben die Uhren auch eine Zeitdifferenz von 6µs...

Die beste Lösung die vorgeschlagen wurde (meiner Meinung nach) war das gleichzeitige Senden eines Schall und eines EM Signals und aus dieser Zeitdifferenz (praktisch nur durch die Schallgeschwindigkeit) die Entfernung zu berechnen.

recycle
31.03.2004, 07:03
So synchron laufen auch keine Funkuhren, weil das Signal der Funkuhr auch an die Lichtgeschwindigkeit gebunden ist. Wenn also eine Funkuhr 300m näher am Sender ist als die Andere haben die Uhren auch eine Zeitdifferenz von 6µs...


Das mit den Funkuhren war ein Scherz.
Ist mir schon klar, dass ich mit Funkuhren die per Funk aus x km gestellt werden nicht die Genauigkeit erhalte um die die Zeiten die ein Funksignal für ein paar hundert Meter benötigt zu messen ;-)


Eigentlich sollten die Funkuhren ein kleiner Wink mit dem Zaunpfahl sein.

Da das Zeitsignal für Funkuhren den Ruf hat recht genau zu sein obwohl es per Funk über weit grössere Strecken als 300m übertragen wird, kann man sich auch ohne viel Rechnerei ausmalen, dass man es bei Distanzen von ein paar hundert Metern mit sehr kurzen Zeiten zu tun hat.



Die beste Lösung die vorgeschlagen wurde (meiner Meinung nach) war das gleichzeitige Senden eines Schall und eines EM Signals und aus dieser Zeitdifferenz (praktisch nur durch die Schallgeschwindigkeit) die Entfernung zu berechnen.


Finde ich nicht. Die Entfernung ist ja gar nicht wirklich gefragt.
BlackBroom möchte vermeiden, dass sein Robby sich aus der Reichweite des Addlink-Moduls entfernt. Da diese Reichweite aber nicht unter allen Bedingungen gleich ist, nützt Kenntniss der Entfernung gar nicht so viel.

Irgendwie die Stärke des empfangenen Signals zu messen wäre meiner Meinung nach sinnvoller.
Ich könnte mir vorstellen, dass das sogar weniger aufwendig ist als die Enfernungsmessung mit Ultraschall bei Entfernungen bis zu 300m.

God
31.03.2004, 11:17
Denke ich auch was recycle geschrieben hat.
Ich würde es auch so machen wie schon hier erwähnt: Einfach vielleicht jede 5 Sek. ein Signal über das Addlink senden und wenn der Bot kein Signal mehr erhält fährt er einfach 2-3 m zurück und sendet ein Signal das dem PC sagt das er außer Reichweite ist.
Dann kann der PC entscheiden was er jetzt machen soll.

mfg God

Tux
31.03.2004, 11:52
Ja, war mein Denkfehler in dem moment, war schon spät in der Nacht *ausredesuch*

Kann man bei dem Addlink das Protokoll selbst festlegen? Dann könnte man ein fehlertolerantes Protokoll (Parität, Blocksicherung...) nehmen und einfach nicht weiterfahren bzw. umdrehen, wenn sich die Fehler häufen. Wäre sinnvoll, falls die Verbindung nicht abreißen darf/sollte... Ansonsten ist wohl das zurückfahren wenn das Signal ausbleibt wirklich das Beste.

Max
31.03.2004, 20:49
Du kannst dir auch Uhren basteln, mit Quarzen!

God
31.03.2004, 22:15
Du kannst dir auch Uhren basteln, mit Quarzen!

Wäre möglich.
Aber was soll das hier?!!!!! :evil: :shock:

recycle
31.03.2004, 22:23
Du kannst dir auch Uhren basteln, mit Quarzen!

Bei Sonne kann man auch einfach einen Ast in die Erde stecken und ne Skala drum malen ;-)

Tux hat doch schon geschrieben, dass man es bei der Entfernungsmessung von so kurzen Distanzen mit Zeiten im µs (millionstel Sekunden) Bereich zu tun. Aparaturen für so genaue Messungen lötet man nicht mal eben aus einem Quarz zusammen.


Selbst das wäre aber nur das keinere Problem, den man bräuchte 2 Uhren die absolut synchron laufen.
Wenn die Uhren nür eine tausendstel Sekunde abweichen kommt bei der Berechnung schnell 50km statt 300m raus.

Ausserdem sind Microcontroller im MHz Bereich getaktet, dass heisst die brauchen für ein paar einzelne Takte schon länger als die gesamte Entfernungsmessung dauern darf.
Das Addlink Modul selber ist natürlich auch viel zu langsam. Das überträgt 19200b/s.
Das entspricht Millisekunden für die Übertragung der aktuellen Uhrzeit und die Zeit die das Funksignal zur Überwindung der Entfernung benötigt liegt Faktor 1000 darunter

Letztendlich ist es also eigentlich echt egal, ob man sich Uhren aus Quarzen bastelt oder gleich eine Sonnenuhr nimmt.
Die über die Laufzeit der Funksignale gemessenen und berechnete Entfernung wird so sehr wenig mit der tatsächlichen Entfernung des Robbys zu tun haben.

hrrh
01.04.2004, 09:53
kannst dir auch 2 gute atomuhren kaufen :) das ist dann zur positionsbestimmung durch die signallaufzeiten genau genug undnicht soooo ungenau mit qarzuhren

REB
01.04.2004, 20:40
[...Gibt es da nichts passendes im Modellbaubereich? Das Problem müsste doch auch jedem Modellflieger regelmässig Kopfzerbrechen bereiten.
...

Genau deshalb haben diese keine Kopfzerbrechen. Die Sendestation sendet ein Trägersignal. Sobald dieses abbricht verstellt sich der Servo auf kreisen und man kann gemächlich seinen verlorengegangenen Schatz wieder abholen...
REB

Zipper
01.04.2004, 21:59
Ich finde die ganze Diskussion um die Entfernungsmessung durch Laufzeitanalyse eigentlich trotzdem sehr interessant.

Nur das mit den genauen Uhren kriegt man natürlich nie hin. Ist aber eigentlich nicht nötig. Station A sendet ein Signal an B, und B sendet sogleich wieder eines zurück (das Verarbeiten in B sollte natürlich immer gleich lange dauern). Dann wertet A die Zeit zwischen Anfrage und Antwort aus und schliesst daraus auf die Entfernung (dt = Verarbeitungszeit + 2 d/c).

Das Problem mit der Zeitauflösung des Controllers stimmt bedingt, es kommt halt auf den Chip an. Angenommen ich will die 300m Distanz messen, mit einer bescheidenen Auflösung von 15m, dann entspricht dies einer Laufzeit von 20Microsec und eine Zeitauflösung von 0.1Microsec wäre nötig. Das liegt schon fast im Bereich von Mikrocontrollern (vgl. BasicStamp: 0.8Microsec).

Eventuell wäre die Zeitmessung auch über eine einfache elektronische Schaltung möglich (Laufzeit auf einem Kondensator "aufzeichen" danach über grösseren Widerstand abspielen, dadurch wird das Zeitsignal gestreckt). Das kommt dann aber halt auf die Anschlüsse der Funksender an.

Bastler
08.04.2004, 15:09
Ok, da muss ich jetzt ja auch mal meinen Senf dazugeben :)

1. Das mit der Uhrensynchronisation ist Schwachsinn, selbst MIT hochpräzisen Uhren! Das versucht die NASA seit 30 Jahren, um ihre Radioteleskope an verschiedenen Enden der Welt zusammenzuschalten (und dadurch die Auflösung dramatisch zu erhöhen, weil sie damit effektiv eine 10.000Km große Schüssel hätten) und selbst die haben's bis jetzt nicht vernünftig hingekriegt!


2. hin- und zurücksenden: klasse Sache, erfordert aber 1. einen SENDER AM BOT (der meist nicht unerheblich Energie frisst, schwer ist, Platz braucht und bei 300m auch meist noch ne große Antenne hat etc...) und 2. nimmt die Feldstärke eines EM-Signales quadratisch proportional zum Abstand zur Quelle ab! Heisst im Klartext:
Wenn der Empfänger hinter nem Baum steht, der Sender aber auf freier Fläche kommt das Signal an, wenn der Sender hinter nem Baum steht, der Empfänger auf freier Fläche kommt das Signal NICHT an.
Für die Laufzeit ist das egal, aber die Stärke des Signals, das der Bot zurücksendet (was dann am leistungsfähigen PC ausgewertet wird oder so) lässt nur bei wirklich "homogenen Bedingungen" wie es so schön heisst Rückschlüsse auf die Qualität des Steuerungssignals beim Bot zu...

Es kann also passieren, dass Dein Kontrollrechner den Bot noch wunderbar versteht, der Bot sich aber trotzdem schon längst einsam und verlassen fühlt, weil der Berg nunmal leider dichter am Sender als am Bot ist...


3. Wenn Du schon nen Kondensator mit dem Signal lädst, kannst Du auch gleich über nen A/D-Wandler hinterher die Spannung auslesen, das ist präziser als ihn erst wieder über nen Widerstand zu entladen und Du musst Dir keine Gedanken über Signallaufzeiten innerhalb der Schaltung machen!

Ich persönlich halte auch die direkte Auswertung des Signals "onboard" für das Geeignetste. Auf diese Weise kann es Dir egal sein, ob zwischen Sender und Empfänger irgendwas ist, was die Reichweite mindert.

Selbst wenn Dein Chipsatz die Verwendung eines fehlertoleranten Protokolles nicht unterstützt könntest Du das immernoch realisieren, indem Du einfach jeden Befehl zweimal hintereinander sendest und auswertest, wie oft die Paare beim Empfänger nicht mehr zusammenpassen...

15.05.2004, 05:19
Das Addlink Funkmodul ist mit knapp 300m Reichweite angegeben.
Ich kann mir eigentlich nicht vorstellen, dass man mit üblichen Infrarot- oder Ultraschall-Sendern auch nur annähernd an diese Reichweite rankommt

IR-Baboon:
man nehme eine Menge IR-Sendedioden mit 80mA Leistung, ebensoviele gute Reflektoren, einen Transistor, eine handvoll Kondensatoren, einen 9V-Block, eine programmierbare Fernbedienung oder einen Microcontroller oder einen Parallelport und die Reichweite müsste schon fast hinkommen.
Primasache um den Nachbarn beizubringen den Standby Modus ihres Hifi Krams abzustellen. Ne Schaltung gibts von mir aber nicht :-#

Ist es eigentlich strafbar RC5 Signale durch die Gegend zu jammen? O:)

hrrh
15.05.2004, 10:57
ir-signale darf man meines wissens nach durch die gegend senden, allerdings sollte man damit nichts storeren oder zerstoeren. wenn man statt der ir-sendedioden gaasentladungslampen verwendet, wird es (auch schon bei sehr, sehr kleinen lampen) probleme geben. wenn man z.b. die waermekamera eines polizeihelis schrottet oder stoert kann es probleme geben

Albanac
15.05.2004, 16:42
nur mal so ne frage:

können die mit nem Polizeiheli überhaupt feststellen ob ich ne IR Anlage hab oder ob ich nicht einfach ein riesen Lagerfeuerchen fernanstalte?

hrrh
15.05.2004, 17:45
1. gasentladungslampe. dann geht die wawermekamera kaputt; bei einem lagerfeur bleibt die ganz und man sieht einen hellen punkt
2. das mit den netzhautverbrennungen ist mir klar. ich gehe davon aus, dass einer der eine gasentladungslampe betreibt die gefahren kennt. und auserdem kann nicht jeder so eine lampe anschliesen und in betrieb nehmen
3. eine sehr, sehr kleine gasentladungslampe hat ca. 1kW, eine mittelgrosse 10kW-50kW, eine grosse ueber 100kW
4. fals jemand auf die idee kommt mit solchen lampen waermekameras (zer-)stoeren zu wollen, dann sollte er sich erstmal nach einer kleinen, leichten stromquelle ausreichender leistung umschauen :)