Wecker-Piepen erkennen akkustisch mit Mikro

#5243257
Lesenswert?

Liebe alle,

was analoge Schaltungen angeht, bin ich nicht sonderlich talentiert, 
deshalb frage ich hier um Rat: Ich möchte das Piepen eines Weckers mit 
einem Mikro, genauer mit einer kleinen Elektret-Kapsel, die sich direkt 
vor den Wecker (in < 5cm Abstand) befindet, detektieren.

Die Kapsel soll standardmäßig beschaltet sein, so wie hier gezeigt:

http://www.loetstelle.net/praxis/elektretmikrofon/elektretmikrofon.php

Ja, ich weiß es geht auch mit einem AVR, Frequenz aufnehmen usw.
Ja, ich weiß, direkt am Wecker das Signal abgreifen wäre einfacher.

Das will ich aber gerade nicht, sondern eher aus Wissensdurst und 
vielleicht auch aus Nachbau-Lust eine analoge Schaltung kennenlernen 
(also den Teil, der dann nach dem Koppel-Kondensator kommt), die ein H 
ausgibt wenn sie ein Piepen erkennt, sonst ein L.

Wie hat man das früher gemacht / wer hat Ideen?
#5243287
Lesenswert?

Stefan U. schrieb:
> Mit einem passiven Glasbruchmelder

Interessante Idee - nur dass der Wecker nicht wie brechendes Glas 
klingt..

Aber der Wecker hat einen Piezo zum piepen - vielleicht könnte man ja 
einen Piezo als Mikro verwenden - würde der in Resonanz mitschwingen und 
Spannungsspitzen ausgeben?

Ich möchte halt schon das Piepen vom Wecker detektieren, nicht 
beliebigen anderen "Krach" resp. Glasbruch.. :-)
#5243309
Lesenswert?

Rainer U. schrieb:
> Ja, ich weiß es geht auch mit einem AVR, Frequenz aufnehmen usw.
>
> Das will ich aber gerade nicht, sondern eher aus Wissensdurst und
> vielleicht auch aus Nachbau-Lust eine analoge Schaltung kennenlernen

Gerade für niedrige Frequenzen wäre eine digitale Lösung angemessen.

Aber sonst
https://de.wikipedia.org/wiki/Bandpass
http://elektroniktutor.de/analogtechnik/filter.html
Gast #5243313
Lesenswert?

> Interessante Idee - nur dass der Wecker nicht wie brechendes
> Glas klingt..

Das macht nichts. Diese Sensoren reagieren sogar auf Anschreien.
Solange die Frequenz hoch genug und der Ton laut genug ist, reagieren 
diese Sensoren auf einiges, was ganz anders klingt.
Gast #5243408
Lesenswert?

Ich will dir keine fertige Lösung vorschlagen, denn du möchtest basteln. 
Das halte ich für lobenswert.

Ich will dir keinen µC mit irgendeiner Software vorschlagen, denn 1. 
halte ich das nicht gerade für eine einfache Lösung und nur wenig 
lehrreich, 2. ist es schon gar nicht, was du willst.

Ich warte nur noch auf diejenigen, die eine geniale Lösung mit einem 
Smartphone und einer Cloud-basierten universellen (also auch Piepser) 
Erkennungs-App dir ermöglicht, weltweit das Klingeln deines Weckers zu 
erfahren. Und dich natürlich warnt, wenn der Piepser nicht zur 
erwarteten Uhrzeit piepst..

Ich kann dir Schaltungen vorschlagen: Vorverstärker, Filter (kann man 
evtl. drauf verzichten, aber nächtliches Schnarchen, Husten...), 
Gleichrichter, Schaltstufe. Aber erzähle, was dir davon etwas sagt, ob 
du es löten oder auf einem Steckbrett aufbauen kannst oder willst, und 
ob du - entschuldige, aber wir haben alle mal angefangen - einen 
Kondensator von einem Widerstand und Plus von Minus nicht unterscheiden 
kannst.

Grundschaltung Verstärker mit Operationsverstärker bekannt?
Gleichrichterschaltung bekannt?
Wie steuert man einen MOS-FET an?
Schon mal was von aktiven Filtern gehört?
#5247649
Lesenswert?

Also ich habe die o.g. Stichpunkte mal aufgegriffen und gebastelt. 
Zuerst mit div. Hoch und Tiefpässen auf dem Steckbrett. Das Filtertn an 
sich funktioniert erwartungsgemäß, allerdings ist es schwer, und ich 
denke nur mit Filtern nicht möglich, zwischen Sprachbestandteilen, 
Umgebungsgeräuschen und dem Piepen sauber zu unterscheiden. Von der 
Analogtechnik hab ich jetzt erstmal genug gebastelt für meinen 
Geschmack.

Dann habe ich doch wieder einen Arduino Uno hergenommen (weil der gerade 
hier lag) und das kleine Mikrofonmodul angeschlossen (so ähnlich wie 
dieses hier http://www.segor.de/#Q=Mikrofon-Modul&M=1 )

Zum Auswerten habe ich den analogen Komparator genommen, AIN0 auf die 
interne Referenz und AIN1 so angeschlossen (s.u.) - mit dem Poti kann 
ich also die "Empfindlichkeit" einstellen (je näher an der internen 
Referenz, desto empfindlicher)

               5V
                |
               100k
                |
Mic_out--330nF--+---AIN1
                |
            Poti 50k
                |
               GND

Der Wecker piept mit ca. <2kHz - also bin ich davon ausgegangen, wenn 
ich 10ms messe, sollte konstant ich 20+ Impulse bekommen. Das klappt 
manchmal, aber ist abhängig von der Mikrofon-Empfindlichkeit und der 
Entfernung. Als ich dann 50 oder auch mal 100 Impulse bekam, hab ich mir 
das Piepen vom Wecker mal auf dem Oszi angeschaut - und gesehen, dass 
das nicht einfach so ein einfaches Rechteck / Sinus ist, sondern 
Oberwellen drauf, die je nach Entfernung / Intensität den Komparator 
auslösen oder auch nicht.

Jedenfalls gibt es auch da "Fehlerkennungen" - also manche Sprachanteile 
liegen auch mal zufällig in diesem Spektrum. Dann hab ich mehrmals 
gemessen und nur dann eine Erkennung gewertet, wenn 4x das Signal oder 
die Oberwellen erkannt wurden - und als es auch da noch ganz seltene 
"Fehlauslösungen durch Sprache" gab, hatte ich erst mal keine Lust mehr.

Sollte ich anders messen / wie?

Nun könnte ich noch den o.g. NE567 testen - aber da ist mir nicht klar, 
was die Minimalbeschaltung ist, und wie ich den auf die Piepfrequenz 
abstimmen soll? Ok man kann erstmal rechnen, aber die Bauteile haben ja 
Toleranzen.. Also wäre ein Poti zum Einstellen schon gut..
Gast #5247659
Lesenswert?

Der NE567 eignet sich meiner Meinung nach dazu, herauszufinden, ob eine 
bestimmte Frequenz zu hören ist. Aber auch dann hast du keine klare 
Trennung zwischen deinem Wecker und anderen Geräuschen. Ein Staubsauger 
würde sicher auch erkannt werden, da er unter anderen Tönen auch 2kHz 
mit beträchtlicher Lautstärke erzeugt.
Moderator (Firma: Titel) Persönliche Seite #5247662
Lesenswert?

Rainer U. schrieb:
> dass das nicht einfach so ein einfaches Rechteck / Sinus ist, sondern
> Oberwellen drauf, die je nach Entfernung / Intensität den Komparator
> auslösen oder auch nicht.
Ja, du kommst der Sache langsam auf die Spur: so einfach mit einem 
simplen 1-Bit-ADC (das ist dein Komparator) geht das nicht.

Du musst das Signal mit meher Auflösung schnell wandeln und danach eine 
DFT oder eine Kreuzkorrelation berechnen, um die Grundfrequenz des 
Piepsers zu detektieren.
Gast #5247915
Lesenswert?

Es gibt mehrere Varianten wie man es machen kann.
Die einfachste, so wie ich es machen würde, einen
selektiven Verstärker, dann gleichrichten und noch
einen Komparator. Damit ist die "ja nein" Information
dann schon fertig. Die Filter kann man mit LC oder
RC aufbauen.

Oder die Variante mit Tondecoder IC NE567.

Oder was Lothar Miller vorgeschlagen hat.
>Du musst das Signal mit meher Auflösung schnell wandeln und danach eine
>DFT oder eine Kreuzkorrelation berechnen, um die Grundfrequenz des
>Piepsers zu detektieren.

Aber da muß man dann gut programmieren können und wissen was daß
mathematische Prinzip der "Kreuzkorrelation" ist. Ich wüste das
jetzt auch nicht, vielleicht kann das ja jemand mal erklären.
#5248099
Lesenswert?

Günter Lenz schrieb:
> Aber da muß man dann gut programmieren können und wissen was daß
> mathematische Prinzip der "Kreuzkorrelation" ist.

programmieren kann ich, aber die Theorie fehlt mir.

Harald W. schrieb:
> Man nehme ein Mikrofon, einen Mikrofonverstärker
> und ein tone decoder IC NE567.

wie genau geht der denn so? hat der die o.g. Funktionalität einfach 
schon fertig einprogrammiert? Wie viel darf die Frequenz abweichen, so 
dass sie noch erkannt wird?
Gast #5248114
Lesenswert?

> aber die Theorie fehlt mir.

Ich kenne diese Methode:

Erfasse das Signal des Mikrofons als vorzeichen behaftete Folge von 
Werten (PCM).

Multipliziere das PCM Signal mit Wert für Wert einem berechneten 2kHz 
Sinus.
Multipliziere es parallel dazu mit einem 2kHz Cosinus (also 
phasenverschoben).
Addiere die Ergebnisse dieser beiden Multiplikationen. Berechne davon 
den gleitenden Mittelwert.

Du erhältst dadurch eine "Gleichspannung" die aussagt, wie "laut" das 
gesuchte Signal im erfassten Geräusch enthalten ist.

Ich denke, die FFT Methode könnte auch hilfreich sein: 
https://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation
Gast #5248445
Lesenswert?

Die von mir beschriebene Methode hatte ich mal auf einem PC (und DOS, 
lang ist's her) umgesetzt, um DTMF Töne zu erkennen. Ich hatte damals 
das Glück, einen Ausbilder zu haben, der in bildlicher Sprache (statt 
Mathematik) so ziemlich alles Mögliche gut erklären konnte. Mathe ist 
halt nicht so mein Ding.
#5248454
Lesenswert?

Georg M. schrieb:
> Ich verstehe auch nicht, wie das funktioniert.

Den Goertzel kann man sich ganz einfach vorstellen als eine diskrete 
Fouriertransformation für nur eine einzige Frequenz. Nichts anderes ist 
es letztendlich.

Wenn Du die Samplerate geschickterweise als 4-faches der zur erkennenden 
Frequenz wählst kannst Du Dir auch einen Haufen Rechnerei sparen, hast 
nur noch Koeffizienten von -1, 0, +1 (also entfallen sin(), cos() und 
Multiplikation komplett, übrig bleiben ein paar Additionen und 
Subtraktionen, sonst nichts) und du kannst es dann sogar in Echtzeit 
direkt im Sampleinterrupt rechnen.

Du kannst Dir den Goertzel auch so vorstellen daß Du das zu erkennende 
Signal mit einem selbsterzeugten Sinus/Cosinus kreuzkorrelierst. Wählst 
Du die Samplerate entsprechend geschickt dann wird Dein selbsterzeugter 
Cosinus eine Folge von +1, 0, -1, 0 und der Sinus wird 0, +1, 0, -1 also 
wird das Berechnen der Kreuzkorrelation ein simples Addieren und 
Subtrahieren, ganz ohne Multiplikation.

Am Schluss musst Du nur noch mit dem Pythagoras den Betrag der Amplitude 
berechnen, das ist der einzig verbleibende Aufwand. Aber auch da kann 
man schummeln, für grobes Erkennen eines Tons reicht vielleicht auch 
schon die Manhatten-Länge des Vektors anstatt der Euklidschen Länge dann 
entfällt das teure Quadrieren und Wurzeln auch noch.
Gast #5248648
Lesenswert?

Tolle Erklärung. Mathematische Algorithmen sind schon eine super Sache, 
wenn man sie beherrscht. Ich bin immer dankbar für die zahlreichen 
fertigen Codeschnipsel und Libraries, die mir trotz geringem Know-How 
wenigstens deren Anwendung ermöglichen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren