Forum: Mikrocontroller und Digitale Elektronik Welchen Soundsensor verwenden?


von Arvid (beo)


Lesenswert?

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

von NichtWichtig (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

Der SSM2165 ist abgekündigt. Ersatz SSM2167.


Mfg Spess

von Stefan F. (Gast)


Lesenswert?

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.

von Arvid (beo)


Lesenswert?

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.
von MaWin (Gast)


Lesenswert?

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.

von DANIEL D. (Gast)


Lesenswert?

Kann das Problem die Abtastrate vom DA Wandler sein? Vielleicht sind die 
lauten Impulse schon vorbei, bevor er sie registriert.

von Andreas (Gast)


Lesenswert?

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.

von rbx (Gast)


Lesenswert?

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/

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?


von c-hater (Gast)


Lesenswert?

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...

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

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.

von Arvid (beo)


Lesenswert?

@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.

von Andreas (Gast)


Lesenswert?

> 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“.

von Arvid (beo)


Lesenswert?

Ah ok. Dann werd ich das mal so ausprobieren.

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
Noch kein Account? Hier anmelden.