PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschallsensor



e_f1986
14.12.2007, 15:43
Hallo Leute!

Ich habe mich bisher noch nicht mit Robotern, sondern eher mit der Programmierung von Mikrocontrollern beschäftig. Nun würde ich mir gerne einen Ultraschallsensor bauen. Das Besondere daran ist, dass ich den Sensor mit einem analogen Signal, z.B. einer Sinuskurve speisen will. Außerdem möchte ich nicht nur die Laufzeit messen, sondern das "ganze" empfangene Signal zurück haben, um es mit einem Digitalen Signalprozessor auf Korelation mit dem ursprüglichen Signal u.ä. testen zu können. Ich hätte breits eine Idee für einen Funktionsgenerator. Könntet ihr mir Anregungen geben, wie eine Schaltung aussehen müsste, um das Sinussignal senden und wieder zu empfangen zu können?

Danke für die Hilfe!!

mare_crisium
14.12.2007, 20:39
e_f1986,

das Beste in dieser Art ist die Schaltung aus dem Elektorheft 12/2004, Seite 30ff . Den Artikel und ggfls. auch die Platine (Nr. 040015-1) kannst Du bei www.elektor.de kaufen.

mare_crisium

Manf
15.12.2007, 09:37
Hier ist eine einfache Schaltung beschrieben, aus der man sicher auch ein paar Anregungen entnehmen kann, beispielsweise den Entfernungsausgleich mit zeitabhängiger Verstärkung.
https://www.roboternetz.de/wissen/index.php/Ultraschall_Interface

Bei der Gestaltung des Sendesignals sollte man berücksichtigen, dass die Übertragungsfunktion der Wandler noch in die Gesamtfunktion eingeht. So ist es zu überlegen, die Ansteuerung doch mit einem Rechtecksignal vorzunehmen, auch bei veränderlicher Frequenz und Amplitude.
Manfred

e_f1986
15.12.2007, 16:33
@Manfred:
ich würde eigentlich auch lieber ein Rechteck signal benutzen, weil ich es einfacher generieren könnte. Ich weiß aber nicht, wie gut sich das für die Analyse eignet. Ich glaube, ich sage dir erstmal, was ich konkret vorhabe. Ich möchte einen Roboter bauen, der über Ultraschall im Raum ruhende Objekte von 10X10 cm erkennt, und sie umfahren kann. Der Sensor soll um 360° dreh bar sein. Damit der Sensor zufällig auftretende Reflektionenen von dem zuletzt ausgesendeten Signal unterscheiden kann, möchte ich einen Chirp durchführen(ob ich das Signal auch in der Amplitutde verändere, weiß ich noch nicht). Hinterher möchte ich wie gesagt über einen DSP eine Kreuzkorelation durchfüren, um festzustellen, ob das empfangene Signal(es könnte sich dadurch, dass sich der Roboter auf reflektierende gegenstände und somit auch das Signal selber zubewegt verändert haben) auch wirklich das zuletzt gesedete ist.

Wenn du dir sicher bist, dass ein Rechteck für derartige Aufgaben ausrecht, dann würde ich das echt gerne wissen. Es würde die Sache echt einfacher machen.

ähM_Key
15.12.2007, 17:04
Da die Kapsel als Kondensator angesehen werden kann, macht der 'von selbst' aus dem Rechtecksignal was sinusartiges.

Manf
15.12.2007, 19:05
Die Ansteuerung wird sicher über eine Rechteckfunktion gehen. Hier gibt es ein Beispiel:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=16515
Du solltest Dir das Übertragungsverhalten der Wandler ansehen, den nutzbaren Bereich für 1.) die Bandbreite und für 2.) die Frequenzänderung über der Zeit, 1/s².
Machst Du auch praktische Messungen an den einzusetzenden Exemplaren oder gehtst Du nach der Spezifikation der Wandler vor?
Manfred

Johnes
16.12.2007, 00:29
Ich habe mir gerade mit den 40T/R Ultraschallkapseln einen Ultraschallentfernungsmesser gebaut. Mit Reflektionen habe ich wenig Probleme. Ich warte zwischen zwei Messungen 100ms, sodass sich die alte Impulse tot gelaufen haben. (selbst bei geringeren Messintervallen hatte ich keine Probleme)

Mein Empfänger besteht aus einer Komperatorschaltung an einem Interruptpin eines Atmel µC (M32)

Der Sender hängt an zwei Portpins des Atmels und wird über die Pins umgepolt, was dann Ipulse mit 10Vss erzeugt.

Das Programm ist recht simpel aufgebaut.

Als erstes setze ich ein Flag, welches den Empfangs IRQ aktiviert. Danach wird ein ein Timer gestartet und dann 20 Rechteckimpulse mit 40kHz ausgesendet. Nun kann man ggf. andere Programmteile abarbeiten, bis das erste Echo den IRQ auslöst, der den Timerwert einliest.

Nun könnte man ggf. weitere Echos abwarten und ggf. auch auswerten oder den IRQ abschalten und alle weiteren Echos unterdrücken.

An meinem Fahrzeug sitzen die Kapseln ca. 2cm über dem Boden und erreichen eine Reichweite von 2m und mehr. (je nach Objekt.) Mein flach auf dem Boden liegendes kleines Handy wurde bis ca. 1,5m erkannt. Dein Würfel dürfte also bei 2m keine Probleme bereiten.

Es muss also kein DSP sein, wenn du nicht kontinuierlich senden willst und rundum nur Empfäger auswertest.

Mein US ist stark gerichtet, sodass Objekte die nicht direkt vor dem Sensor stehen, ignoriert werden. Dadurch, dass sich der Bot auf der Stelle dreht, lässt sich dann das Objekt orten und umfahren. (Meiner ist heute in einem Test, im Zickzack unter meinem Esstisch durch, wo 4 Stühle drum rum standen, ohne anzustoßen.)

MfG

e_f1986
16.12.2007, 17:24
@Manfred:
Ich werde das hauptsächlich nach der Spezifikation machen, bei praktischen Dingen brache ich oft Hlife. Bin von der Motorik her eingeschränkt. Einge winige Messungen werde ich aber doch machen.

@Johnes:
Danke für den Tipp. Ich werde es erstmal mit DSP versuchen, wenn das zu komplex werden sollte, kann ich den dann ja immer noch weglassen.

Christoph

e_f1986
04.01.2008, 17:43
ich habe zu dem Ultraschall-Interface noch eine Frage. Wo ist der 2. Eingang von dem Gatter, das im Schaltbild hinter dem Sender ist?

Christoph