PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geräuschsensonsoren



thomasonfire
28.06.2008, 13:02
Hi,

ich bin neu hier und noch ein bisschen ein Anfänger wenn es um Roboter geht.

Habe mir vor kurzem den Asurobausatz gekauft und habe vor diesen Hardwaremäßig zu erweitern.

Deswegen wollte ich mal fragen, ob es möglich ist den Asuro mit Sensoren zu bestücken, die die Richtung und/oder die Frequenz der Schwingung herausfinden können.

Ich hab jetzt weniger an sowas (Klatsch An/Aus): http://www.extremenxt.com/sound.htm
sondern an durch mehrere Microphone und ein Vergleich der Lautstärken um die Richtung herauszufinden gedacht.

Gruß Thomas

Besserwessi
28.06.2008, 14:55
Wenn man mit mehreren Mikrofonen die Richtung bestimmen will, macht man das am Einfachsten über die Verzögerung. Im Prinzip sollten dazu 3 oder 4 Mikrofone ausreichen, jenachdem, ob man nur die Richtung in der ebene oder auch die Höhe bestimmen will. 3 Mikrofone solle man auch noch gerade so mit dem einen AD Wandler in Atmel Controller auslesen können. Das bestimmen der Verzögerung könnte aber von der rechenzeit relativ aufwendig sein. Im Prinzip könnte man mit hilfe der FFT die Korrelationsfunktion berechenen. Es ist aber zu befürcheten, das das etwas viel für den Mega8 aus dem Auro ist, besonders das RAM könnte knapp werden.

Wie das der Mensch da mit nur 2 Ohren macht bleibt mir ein Rätzel.

Gock
28.06.2008, 21:19
Wie das der Mensch da mit nur 2 Ohren macht bleibt mir ein Rätzel.
Die unsymmetrisch ausgebildete Ohrmuschel sowie der Oberkörper des Menschen filtern Schall aus unterschiedlichen Richtungen (besonders azimutal) auf unterschiedliche Weise/in unterschiedlichen Frequenzen. Dadurch ist es möglich, besonders gut bekannte Geräusche einer Richtung (oben/unten) zuzuordnen. Das nennt man monaurales Hören. Bei unbekannten Geräuschen klappt das auch, aber nicht so gut.
Hinzukommt, dass sich das Geräusch durch die unterschiedliche Filterung bei Kopfdrehung ändert. Daher ist es besonders gut möglich, Geräusche zu lokalisieren, während man den Kopf hin und her dreht/neigt.
Komischerweise macht man das auch, wenn man diese Information nicht hat... ;-)

Einen "günstigen" Sensor, der so etwas macht ist mir unbekannt. Man benötigt schon relativ starke Rechenleistung um derartige Filter bzw. Algorithmen laufen zu lassen. Mit einem Mega8 wird man wahrscheinlich kaum auskommen...
Man macht so etwas mit "Mikrofonarrays" (-> Google). Das Problem bei der ganzen Sache ist die Echokompenation, weil Echos im Raum das eigentliche Signal stark stören. Außerdem sind recht hochwertige/teuere Mikros notwendig, weil diese das Signal natürlich auch beeinflussen.
Gruß

Murdoc_mm
29.06.2008, 00:04
Hi,

so wie am Anfang von diesem Video: http://www.youtube.com/watch?v=etgMZie0jEw ?

Mehr Infos kann dir Meckpommer und/oder sein Thread geben: https://www.roboternetz.de/phpBB2/viewtopic.php?p=367438#367438

Gruß

Manf
29.06.2008, 05:06
Hier ist die Messung der Laufzeit eines Klatschsinals.

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=104552#104552

------------- https://www.roboternetz.de/phpBB2/images/nickpage/5981121443019.gif -------------------- https://www.roboternetz.de/phpBB2/files/schall_laufzeit.jpg

Herkulase
30.06.2008, 10:10
Außerdem sind recht hochwertige/teuere Mikros notwendig, weil diese das Signal natürlich auch beeinflussen.

Da kann ich zum Glück widersprechen: Ich war vor ca 2 Monaten bei einem Vortrag der AES in Wien, wo eine "akustische Kamera" vorgestellt wurde. Eben ein solches Mikrofonarray mit ca 16 - 200 Mikrofonkapseln. Die verwenden die billigsten Elektret-Kapseln also ca 30 - 50 Cent pro Stück... Das ist also durchaus noch mit Hobbymitteln zu bestreiten.


Gerald

Besserwessi
30.06.2008, 17:41
Bei den Elektretmikrofonen ist der Unterschied zwischen den billigen und den guten gar nicht so groß. Außerdem haben gerade die kleinen einen recht guten und stabilen Frequenzgang bei hohen Frequenzen. Die ganz niedrigen Frequenzen sind eher mau, aber die braucht man da auch nicht.

Ist ein wenig wie bei den CD-playern, da sind auch nur noch ein paar dB drin im Vergleich zum low-cost Gerät.

Gock
30.06.2008, 18:05
Mir ist auch schon aufgefallen, dass ich die Anforderungen hier möglicherweise etwas zu hoch angenommen habe, vor allem was Umgebung und Zuverlässigkeit angeht.
Wenn man nur grob die Richtung und das vielleicht nur in einer Ebene wissen will, dann geht das schon, wenn man sich "etwas" Mühe gibt.
Aber was diese "akustische Kamera" angeht, so hat die ein paar Haken (zumindest die, die ich kenne):
1. wird sie immer genau in Richtung Schallquelle ausgerichtet, weil sie nur einen relativ geringen Betrachtungswinkel hat. Sie erkennt also nicht, was hinter oder neben ihr passiert.
2. steckt da kein Mega 8 oder 32 dahinter, sondern ein PC
3. steht die optimalerweise in einem reflexionsarmen Raum
4. weiß ich nicht, wie Du Die Anordnung von 16 oder sogar 200 Mikrofonen und einen Rechner in einen Asuro einbaust... ;-)
Der Abstand der Mikros ist leider sehr relevant. Auf Größe eines Asuros ist das nicht so einfach, wie wenn ich zig Mikros auf einen "Regenschirm" spanne.
Aber wie gesagt, wenn man es nicht besonders genau haben will, dann hast Du schon recht und man kann das als Hobbyist eventuell auch hin bekommen.
Wenn mich nicht alles täuscht, macht das sogar der "Robosapiens". Bin aber nicht sicher...
Aber dass man einen solchen Sensor kaufen kann wäre mir neu.
Gruß

Herkulase
01.07.2008, 10:52
Na das ist ja eh klar, mein Beitrag bezog sich natürlich nicht auf den Asuro, sondern lediglich auf die geforderte Qualität der Mikros. Logischerweise ist der sichtwinkel der Kamera beschränkt, aber das ist doch bei jeder Kamera so. Aber sicher: Mit nem AtMega lässt sich sowas sicher nicht betreiben. Evtl. könnte man die Signale halt per Funk an einen PC übermitteln. Man könnte auch über eine Kombination aus Laufzeit und Pegelortung nachdenken, indem man gerichtete Mikrofonen nimmt. Da würden dann u.U. sogar zwei Stück ausreichen.

thomasonfire
09.09.2008, 18:51
Also ich bins nochmal ... ^^ auch wenn hier einige ein bisschen abgeschweift sind und das Thema schon älter ist.

Ich habe mir jetzt eine Schaltung aus 2 Kondensator Mikrophonen, Mikrophonvorverstärkern und FlipFlops gebaut.

Zum einen wollte ich mal fragen, ob man den Timer1 überhaupt zum Zeitabstoppen verwenden darf, hab ich in den Manuals jetzt kein Indiz dafür gefunden.

Zum anderen interessiert es mich, ob es die Möglichkeit gibt, dass man 2 Interrupts von der Asuro-Zusatzplatine auslösen kann, welche den Timer starten bzw. stoppen würden.

Mit Timer1 müsste ich schon ziemlich genau die Richtung haben (mal schauen, wie viele Befehle da wie schnell abgearbeitet werden können), bei 8Mhz könnten min. 100-200 Zeilen Befehlcode dazwischen kommen und er würd noch einigermaßen genau sein.

Achja und vielen Dank für die vielen Antworten, die man hier bekommt ;-)

Sebbokalypse
08.10.2008, 01:22
Es gibt ein interessantes Projekt zur dreidimensionalen Ortung von Geräuschen per Triangulation. Ist zwar auf Englisch, aber auf Low-Cost ausgelegt und liefert den Code gleich mit.


The goal of this project is to determine the time and location of a sound source in all three dimensions (x,y,z) using an economical and easily reproducible setup.

Für Atmel-User interessant:

We used the Atmel Mega32 microcontroller to detect the sound pulses from the microphones.

Hier der Link: Klick! (http://instruct1.cit.cornell.edu/Courses/ee476/FinalProjects/s2007/sp369_bb226/sp369_bb226/index.htm)

Dummerweise haben die ihre Schaltung nie vollständig zum Laufen gebracht, als Inspirationsquelle könnte es dennoch nützlich sein.