Heyho, ich bin auf der Suche nach einem Soundsensor bzw. Mikrofon für ein Projekt. Ich brauche einen Soundsensor, der mir die Lautstärke im Raum misst. Damit möchte ich erreichen, dass ich Geräusche im Raum registrieren kann, und zwar so, dass sowohl bspw. eine Tür bei sonstiger Stille, als auch nen lautes Geräusch bei einer Grund-Geräuschkulisse erkannt wird. Softwareseitig sollte das auch kein Ding sein. Mein Problem ist die notwendige Hardware. Ich habe von meinem alten Arduino-Set noch einen Soundsensor gehabt, das dürfte ein ky-038 oder ky-037 sein. Dieser gibt eine Spannung entsprechend der registrierten Schwingungen aus. Das Signal kann ich mit dem Analogen Eingang auslesen und so Unterschiede in der Laustärke erkennen. Das Problem ist, dass (unabhängig von der eingestellten Sensibilität/des Thresholds für den digitalen Ausgang) selbst ein stiller Raum einiges an Spannungsschwanungen erzeugt, aber gleichzeitig weder Reden noch Klatschen noch Musik wirklich etwas an den registrierten Werten ändert. Lediglich starkes in das Mikrofon pusten gibt einen deutlich höheren Ausschlag. Deswegen meine Frage: Hab ich da grundlegend etwas falsch verstanden? Ist der Sensor einfach nur schlecht/nicht hierfür geeignet? Ich hab gelesen, dass diese einfachen Soundsensoren recht unsensibel, und auch eher zur Messung von Druckunterschieden gedacht sind. Und in dem Fall, könntet ihr mir ein Sensor/Mikrofon empfehlen? Ich bin bei meiner Suche auf MEMS-Mikrofone auf Breaktoutboards getroffen (Adafruit SPW2430 oder Adafruit SPH0645LM4H), und von den Beschreibungen her klingen die auch nicht verkehrt, wirklich kann ich das aber nicht einschätzen. Alternativ hab ich noch Electret-Mikrofone gefunden, wie das Adafruit MAX4466, oder auch MAX9814 mit Automatic Gain Control. Klingt auch nicht schlecht. Jedenfalls bin ich mit der Auswahl etwas überfordert, gleichzeitig war es der ky-03x-Sensor aber wirklich überhaupt nicht, weil es einfach garnicht funktioniert hat. Vielleicht hat ja jemand Erfahrung in dem Bereich, oder kann mir zumindest eine Richtung weisen. Im Endeffekt kosten die Sensoren meistens auch nur 5-10€, ich könnte also auch mehrere Testen. Diekt etwas gscheides zu finden, wäre natürlich angenehmer. Das ganze mach ich übrigens mit einem ESP32 NodeMCU Dev Kit, ich arbeite also mit 3.3V, hab Analoge Inputs ohne Ende, und auch glaube ich I2S (hab ich zumindest gelesen, wenn auch noch in keinem Pinout gefunden). Wäre super, wenn mir da jemand weiterhelfen kann! Viele Grüße Beo
Um leise und laute Umgebung halbwegs zu erfassen greift man u.a. auf Dynamickompressoren zurück. Z.B. sowas hier: https://www.farnell.com/datasheets/81324.pdf
Das Problem ist, dass ein Sound-Sensor der auf alles reagieren soll, tatsächlich auf alles reagiert. Was du eigentlich willst ist, auf ungewöhnliche (auch sehr leise) Geräusche zu reagieren. Die muss man man aber erst mal von den gewöhnlichen Geräuschen trennen, das ist die Kunst. Durch Einschränkung des Frequenzbereiches und besonders rauscharme Vorverstärker kann man ein bisschen was erreichen, aber letztendlich bleibt die Sache schwierig. Auch dann reicht es wahrscheinlich nicht, an einem Poti eine Lautstärke-Schwelle festzulegen und alles was lauter ist zu erkennen. Wenn du es wirklich deutlich besser brauchst, wirst du komplexe Filter in Software implementieren müssen. Für eine in diesem Bereich unerfahrene Einzelperson ist das kaum zu leisten. Selbst die großen Hersteller von Audio/Video Konferenz-Systemen haben sich das nicht mal eben schnell aus dem Arm geschüttelt.
Hm ok, dann scheine ich mir das zu einfach vorzustellen. Andererseits soll es auch nicht unfassbar präzise sein, im Endeffekt reicht es mir, wenn ich damit halbwegs zuverlässig plötzliche Geräusche erkenne, die im Raum stattfinden. Ich schau mir mal an, was es so an Möglichkeiten für Verstärker gibt, und teste einfach mal, ob sich die MAXxxxx Sensoren eignen, gerade hier könnte automatischer Gain ja nicht verkehrt sein.
Beitrag #7172847 wurde von einem Moderator gelöscht.
Beitrag #7172881 wurde von einem Moderator gelöscht.
Beitrag #7172884 wurde von einem Moderator gelöscht.
Arvid schrieb: > dass sowohl bspw. eine Tür bei sonstiger Stille, als auch nen lautes > Geräusch bei einer Grund-Geräuschkulisse erkannt wird. Das nennt man Dynamikumfang, wobei zur blossen Erkennung die lauten Geräusche durchaus zur Übersteuerung fuhren dürfen. Du musst halt überlegen, wie leise der leiseste Ton ist, den du vom Tauschen unterscheiden willst. Mikrophone sind notorisch unempfindlich, Sänger und Trompeten brüllen da schliesslich rein, sie sollen eher robust sein. Besonders empfindlich sind Grossmembranmikrophone wie RODE NT1-A, aber das wird für dich zu teuer sein. Du suchst also einen Kompromiss. Neumann TLM 102, AKG C391B, Arvid schrieb: > mit Automatic Gain Control Willst du MESSEN wie laut es ist (dann ruiniert dir AGV den Messwert) oder willst du nur einen Klatschschalter ? Zum MESSEN müsste man auch eine Frequenzbewertungskurve wie dB(A) als analogen oder digitalen Filter einbauen, und das Ding KALIBRIEREN. Das kauft man besser fertig als Messgerät.
Kann das Problem die Abtastrate vom DA Wandler sein? Vielleicht sind die lauten Impulse schon vorbei, bevor er sie registriert.
Vorschlag, wenn man das rein digital machen will: - Nimm ein x-beliebiges MEMS/Elektretmikrofon das du an deinen Controller ankoppeln kannst. Die sind alle empfindlich genug, kein Großmembran/AKG/von Neumann nötig. Die zum Reinschreien, die Mawin erwähnt, sind dynamische Mikros, die willst du nicht. - Begrenze ggf. den Frequenzbereich nach unten entweder analog oder digital, um tieffrequentes Rumpeln zu entfernen (<50Hz). Digitale MEMS-Mikrofone haben da wahrscheinlich sowieso schon eine geeignete untere Grenze. - Begrenze den Frequenzbereich nach oben so dass du immer noch mit der doppelten Frequenz abtasten kannst (mind. 4kHz sollten es aber schon sein). Erübrigt sich, wenn das Signal schon digital als I2S-Strom kommt. - Das digitale Signal quadrieren und einen langsamen und einen schnellen und einen langsamen gleitenden Mittelwert bilden. Wenn der schnelle x Mal größer als der langsame ist hast du dein Geräusch detektiert. Die Parameter kann man dann alle nach Gefühl oder mit aufgenommenen Beispielsignalen tunen. Filtern kann man vorher natürlich noch beliebig um selektiver zu werden. Und analog kann man das ganze natürlich auch machen, wenn man unbedingt möchte.
NichtWichtig schrieb: > Um leise und laute Umgebung halbwegs zu erfassen greift man u.a. auf > Dynamickompressoren zurück. Ja, klassische Musik gibt es öfter im Radio, aber so richtig gut dynamisch, also sehr leise Passagen sehr leise, bzw. sehr laute Passagen sehr laut - ist die gar nicht wie sie sollte. Um Musik noch lauter auf die "Platte" zu bekommen, werden u.a. frequenzselektive Kompressoren und Limiter benutzt. Man könnte auch einen Kopfhörer als Mikro missbrauchen, oder eventuell auch ein Karnickel. Schall hat den Vorteil, rundherum zu wirken und kann Dinge im Raum mitschwingen lassen. Wir hatten mal einen Absetzer vorm Dorf, der hatte die Hauswände in den Dorfhäusern zu zum Wackeln gebracht, dass neben der unangenehmen Zitterei auch noch ein unangenemes Geräusch mitschwang. Wenn man Geräusche in einem Raum messen möchte, könnte man zuerst mal versuchen, den Dynamikbereich zu bestimmen. Wie auch bei Lautsprechern könnte man sich eine 3-Wege Abhöre überlegen - oder eben mehrere Mikrofone zur Abhöre, wie bei einem Schlagzeug. Nicht zuletzt könnte ein Equalizer hilfeich sein. Und Mikrofone können z.T. sehr stark Richtungsgesteuert aufnehmen. Man bräuchte für Arvid schrieb: > Geräusche im Raum aber eher ein Mikrofon mit Rundherum-Abhör-Charakteristik - oder, wird auch oft versucht: Kopfgerechte Aufnahmen mit zwei Mikrofonen, um die menschliche Abhöre zu simulieren. Eventuell kann man einen Umweg über ein Wandmikro gehen o.ä. https://www.delamar.de/mikrofon/richtcharakteristik-mikrofon-22647/
Schau dir dieses Modul an, macht exakt was du brauchst und kostet kleines Geld: https://de.aliexpress.com/item/1005001621747722.html?spm=a2g0o.search0304.0.0.5b352b3avPfyvy&algo_pvid=a7790414-0f07-4c93-b875-150fc61313f9&aem_p4p_detail=202208270755562170494458694240034294471&algo_exp_id=a7790414-0f07-4c93-b875-150fc61313f9-0&pdp_ext_f=%7B%22sku_id%22%3A%2212000016846490838%22%7D&pdp_npi=2%40dis%21EUR%21%210.9%21%21%21%21%21%402100bdde16616121561157406e7715%2112000016846490838%21sea
Benedikt L. schrieb: > Schau dir dieses Modul an, macht exakt was du brauchst ??? So weit ich das erkennen kann, weiß der TO nichtmal wirklich, was er eigentlich erkennen will. Ist mir schleierhaft, wie du aus dieser Nicht-Information ableiten kannst, was er braucht...
c-hater schrieb: > ??? Da hast du vollkommen Recht. Aber so führt man den Kunden auf den Pfuhl der Tugend das er sich echte Gedanken macht was er will. Ein Mikrofonmodul ist da sicher nicht die schlechteste Wurst auf dem Grill.
@MaWin Nein, ich will tatsächlich nur Änderungen messen, die tatsächliche Laustärke ist dabei egal. Die genannten Mikrofone wären tatsächlich völlig überdimensioniert ^^ @hiege Ja, das hatte ich auch überlegt, allerdings sollte das dann ja zumindest ab und zu mal einen Ausschlag zufällig mitbekommen, aber selbst in mehreren Sekunden singen mit zig Datenpunkten sieht man keine Ausschläge, die sich von der "Stille" unterscheiden. @Andreas Vielen Dank für die Antwort! Da informier ich mich mal über die von dir erwähnten Punkte, aber das klingt ja schonmal nicht verkehrt. Nur das Quadrieren verstehe ich nicht, wozu soll das gut sein? @rbx Danke für die Ausführliche Antwort, aber das is für meinen usecase dann doch ein wenig überdimensioniert ^^ Soll ja am Ende doch einfach nur auf nen Klatschen, Stimmen, o.ä. reagieren, da will ich schon eher was einfaches nehmen. Hab ja auch nur den ESP32 zum verarbeiten. @dembenseineleiche Genau das (und das mit Automatic Gain Control) werd ich wohl mal nehmen, das scheint sich ja generell zu eignen. Und ja, man mag es kaum glauben, aber ein Mikrofonmodul war tatsächlich exakt, wonach ich gesucht habe! Danke dafür :) :/ @c-hater Danke für nichts, wer lesen kann is klar im Vorteil. Der Vorschlag von deinem Vorredner mag zwar nicht begründet sein, aber mit den anderen Antworten meine ich, dass er nicht verkehrt is. Ich dachte eigentlich, dass ich relativ gut weiß was ich will, aber vielleicht hätte ich das ja noch ausführlicher beschreiben müssen. Oder knapper, damit auch du hinterherkommst.
> Nur das Quadrieren verstehe ich nicht, wozu soll das gut sein?
Ein Mikrofon misst die Luftdruckschwankungen um den statischen Luftdruck
herum. Die sind mittelwertfrei (z.B. Sinus), das zu Mitteln bringt also
nichts. Was du messen möchtest um Geräusche zu erkennen ist der
Schalleistungspegel. Um den aus dem Mikrofonsignal zu bestimmen musst du
quadrieren und über eine bestimmte Zeit mitteln. Basierend auf der
Schalleistung könntest du z.B. als Kriterium nehmen „mittlere Leistung
in der letzten Sekunde ist doppelt so hoch wie mittlere Leistung in den
letzten 10 Sekunden“.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.