ich bin noch ganz neu in der Arduino-Welt und stelle mir die Frage, ob ich mithilfe des Arduinos und Zubehör Geräusche orten bzw. herausfinden kann aus welcher Richtung das Geräusch kommt (wie beim Menschen das Richtungshören, die Entfernung wird dabei vernachlässigt).
Meine Vorstellung war es 2 bis 4 Mikrofone zu nutzen, die das Geräusch auffangen. Die Mikrofone sollten dabei als "Ohren" funktionieren und an verschiedenen Stellen im Raum angeordnet werden. Zur Zeit überlege ich noch die Ortung des Geräusches, z.B. ein einfaches Klatschen, über die Differenz der Lautstärke oder über den Zeitpunkt des Eintreffens des Signales an den jeweiligen Mikrofonen auszuwerten.
Besonders bei der zweiten Möglichkeit stellt sich mir die Frage ob ein Arduino hierfür überhaupt aufgrund der Geschwindigkeit geeignet ist. (und vielleicht welche Mikrofone geeignet sein könnten)
Kann mir da jemand weiterhelfen?
Ich kann allerdings sagen, die einfachen, billigen Mikrofone, die es für den Arduino gibt, funktionieren dafür nicht.
Du brauchst dazu schon gute Mikrofone mit einem passenden Verstärker, der auch genügend Spannung liefert.
Wenn Du als "Zubehör" einen PC mit Spzialhardware für mehrere Mikrofone meinst, dann schon.
Arduino alleine hat nicht die nötige Rechenleistung um ein Audiosignal zu analysieren und es dann mit einem anderen zu vergleichen damit die Verzögerung des einen mt dem anderen zu errechnen.
Wenn du die Signalformen kennst die du Orten willst könntest du
zur Feststellung ob ein passendes Signal gerade empfangen wurde
über Auto Kreuzkorrelation gehen.
Damit kannst du schoneinmal feststellen ob das gesuchte Signal da war oder nicht.
Um zu Orten woher das Signal nun kam könntest du bei mehreren Micros dein Ziel eventuell erreichen indem du bei gefundenem Signal die Maximas vergleichst die sich nach Berechnung der AKK für jedes Micro ergeben.
Ich könnte mir vorstellen dass du bei dem Micro das am nächsten an der Signalquelle liegt dieses Maximum auch höher ist im vgl. zu den anderen Micros. Kann man auch gut ausprobieren
Vorteil an der Vorgehensweise (sollte sie so funktionieren):
Einfach zu Programmieren
Auch bei hohem Signalrauschen verlässlich
Nachteile:
Mehrere Micros benötigt
Pro Micro eine AKK zu berechnen sollte zwar (je nach Sampleanzahl) überschaubar sein trotzdem braucht man den Speicher für die Samples
Man muss wissen wie die zu findenden Signale aussehen
Ich kann leider nicht sicher sagen ob man darüber zum Ziel kommt da ich das so noch nicht versucht habe halte es aber für möglich.
Wenn ich mal wieder Zeit habe werde ich auf jeden Fall mal versuchen sowas so umzusetzen.
Puscheljewski:
die Ortung des Geräusches, z.B. ein einfaches Klatschen, über die Differenz der Lautstärke oder über den Zeitpunkt des Eintreffens des Signales an den jeweiligen Mikrofonen auszuwerten.
Besonders bei der zweiten Möglichkeit stellt sich mir die Frage ob ein Arduino hierfür überhaupt aufgrund der Geschwindigkeit geeignet ist.
Einfaches Klatschen und die Richtung über Zeit-Differenz sollte gehen. Wenn die Richtung nur 1 - Dimensional und die 2 Mikrofone passend stehen. Geschwindigkeit ist kein Thema.
Ohhhhhhh ganz spannendes Thema!
Hier in der Nachbarschaft im Umkreis von ~1-2km knallt es Nachts manchmal ziemlich laut. Einige andere Nachbarn haben das auch schon gehört, aber keine hat eine Idee was das sein könnte. Für einen Schuss bei einem nächtlichen Jagdausflug klingt das nicht scharf genug, sondern eher basslastig, dumpfer wie eine Explosion. Manchmal abends um 10 Uhr, manchmal auch nachts um 2 Uhr, unregelmäßig, manchmal innerhalb weniger Minuten 2x, manchmal auch wenige Wochen gar nicht.
Und so kam mir auch schon die Idee, ein kleines Mikrofon Array aufzustellen und zu versuchen das irgendwie zu orten.
Allerdings ist es bisher bei der Idee und einiger Recherche mangels Zeit geblieben.
Dennoch möchte ich euch hier gerne meine Rechercheergebnisse mitteilen:
Eigentlich habe ich nicht geplant so früh aufzustehen aber eine Mücke raubt mir den letzten Nerv..... Und so bin ich hier gelandet....
Meine Überlegung zusammengefasst:
Ist es möglich mit Mikrofonen.....sehr sehr vielen davon eine 2D Auswertung zu machen aus welcher Richtung ein Geräusch kommt dessen Frequenz bekannt ist? Also Mückengeräusche und darauf basierend in die entsprechende Richtung mit einem neopixel zur leuchten?
Damit man einen 3D Eindruck des Raumes bekommt und der Einfachheit halber hätte ich an mehrere arduinos gedacht die in verschiedenen Winkeln bzw Ausrichtungen aufgestellt werden.... und wenn alle in eine Richtung zeigen wird da schon was sein.
Mit dem Ziel:
Die Mücke fliegt herum bzw. die Mücke hockt da an der Wand oder ist dort Tod von der Wand gefallen...also letzte bekannte Position des Monsters
Schon gemacht? Ich leider nicht, habe aber ein vergleichbares Thema, siehe oben.
Die Schwierigkeit wird sein das Signal ausreichend gut zu verstärken und zu sondieren. Da hab ich kein Gefühl für ob das mit unserem Low-Cost Equipment funktionieren wird.
Such mal nach "Mückenlaser". Das wirst du haben wollen
Schöne Aufgabenstellung. Um einen Messvorgang zur Ortung einer Schallquelle durchzuführen, müssten Entfernungsmessungen über eine Laufzeitrechnung durchgeführt werden. Dazu brauchst Du geographisch unterschiedlich angebrachte Messstellen für ein zu erfassendes Messfeld. Ein Fußballplatz könnte zum Beispiel das Messfeld darstellen und an den Seiten angebrachte Messstellen die Bezugspunkte für den Laufzeitvergleich. Die Automatisierung der Messdatenauswertung braucht sicher einiges an Programmieraufwand. Einer Cloudanwendung übergibst Du dazu deine Messdaten aus den arduinos zur Berechnung der Position.
Ich weis der Artikel ist veraltet aber man landet immer noch hier wenn man googelt, also sollten wir das hier nicht als "geht nicht" stehen lassen.
Lösungsvorschlag (für die Erkennung des einfachen Klatschends/Knallens):
Du kannst mal nach Schwellwertschaltern suchen, das sind Baugruppen die erst ab einem gewissen Pegel einen Logischen Pegel ausgeben.
Schau das das Eingangssignal zu dem Signal passt das du aus deinen Micros (du solltest drei nehemn) die du nutzen willst und das du denn Schwellwert einstellen kannst. Den Wert stellst du dann so ein dass du kein Signal bei normaler Geräuschkulisse hast, aber beim klatschen.
Damit gehst du auf drei Interrupt-Eingänge. Du lässt einen schnellen internen Zähler hochzählen und sobalt deine schwelwertbereinigten micros ein HIGH liefern speicherst du den Zählerstand (der µ springt dann in die Interupt-Routine des Eingangs)
Zum Schluss kannst du mit den drei Zählerständen ein Verhältnis bilden und weil du die Lage deiner Micros kennst, kannst du jetzt die Richtung der Klatsch-Quelle ermitteln.
Die Berechnung weis ich auch nicht aus dem stehgreif aber wenn du dir die 2D Position der Micros auf ein Blatt einzeichnest und dann die drei Zählerstände am Zirkel einstellst dann Zeigt der Punkt an dem sich alle drei Kreise schneiden in die Richtung des Knallers. Zieh von allen drei Zählern die gleiche Zahl ab so das der größte Zähler doppelt so groß ist wie der kleinste und multipliziere sie so das sie auf Blatt passen.
Das ganze ginge auch im Raum mit dem Schnittpunkt der Kugelwände. Dann sollte man aber ein vierstes micro nehmen damit man weis auf welcher Seite das Geräusch ist (es würde mit drei micros zwei Ergebnisse im Raum geben.
Je größer der Abstand der Micros desto genauer.
Man gewinnt nur die Richtung, weil man j anicht weis wann das Geräusch losgelaufen ist, nur mit welchem Abstand es ankam