Forum: Analoge Elektronik und Schaltungstechnik Wecker-Piepen erkennen akkustisch mit Mikro


von Rainer U. (r-u)


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?

von Stefan F. (Gast)


Lesenswert?

Geht viel einfacher: Mit einem passiven Glasbruchmelder direkt vor dem 
Piepser.
https://www.conrad.de/de/glasbruchmelder-abus-fu7301b-1234044.html

von Rainer U. (r-u)


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

von Georg M. (g_m)


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

von Stefan F. (Gast)


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.

von Rainer U. (r-u)


Lesenswert?

Stefan U. schrieb:
> Diese Sensoren reagieren sogar auf Anschreien.

Klingt, als hättest Du Spaß gehabt beim Testen.. :-)

von Melodram (Gast)


Lesenswert?

Suche hier im Forum nach NE567 (Tondecoder-IC). Du wirst eine Menge 
Schaltungen und Anregungen finden.

von Der Zahn der Zeit (Gast)


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?

von Rainer U. (r-u)


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

von Stefan F. (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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.

von Rainer U. (r-u)


Lesenswert?

Lothar M. schrieb:
> Du musst das Signal mit meher Auflösung schnell wandeln und danach eine
> DFT oder eine Kreuzkorrelation berechnen

Klingt mühsam :-) Hast Du ein "Kochrezept", oder ein paar Links, wo es 
nicht so furchtbar akademisch erklärt wird? Also nicht das Aufnehmen, 
sondern das Berechnen..

von Äxl (geloescht) (Gast)


Angehängte Dateien:

Lesenswert?

Brauchte ich auch schon mal.
vier Transistoren und handelsübliche Werte.. bekommt man in smd klein 
aufgebaut. Gleichrichter (delon, villard etc.) geht ganz gut.

Äxl

von Günter Lenz (Gast)


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.

von Harald W. (wilhelms)


Lesenswert?

Rainer U. schrieb:

>> Mit einem passiven Glasbruchmelder
>
> Interessante Idee - nur dass der Wecker nicht wie brechendes Glas
> klingt..

Kann man ein solches Weckgeräusch nicht einprogrammieren? :-)

von Harald W. (wilhelms)


Lesenswert?

Rainer U. schrieb:

> Wecker-Piepen erkennen akkustisch mit Mikro
> Wie hat man das früher gemacht

Man nehme ein Mikrofon, einen Mikrofonverstärker
und ein tone decoder IC NE567.

von Rainer U. (r-u)


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?

von Stefan F. (Gast)


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

von hinz (Gast)


Lesenswert?


von Rainer U. (r-u)


Lesenswert?

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

danke - sowas meinte ich halt - mehr praktische Erklärung und weniger 
griechische Buchstaben, wie in den Wikipedia-Links - damit es auch ein 
nicht-Mathematiker versteht..

von Stefan F. (Gast)


Lesenswert?

Ich verstehe solche Formeln auch nicht. Manchmal hilft mir ein analoges 
oder digitales Schaltbild (je nach Fall), um etwas als Algorithmus 
umzusetzen.

von Georg M. (g_m)


Lesenswert?

Ich verstehe auch nicht, wie das funktioniert.

https://github.com/jacobrosenthal/Goertzel

von Stefan F. (Gast)


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.

von Bernd K. (prof7bit)


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.

: Bearbeitet durch User
von Stefan F. (Gast)


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.

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.