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?
Geht viel einfacher: Mit einem passiven Glasbruchmelder direkt vor dem Piepser. https://www.conrad.de/de/glasbruchmelder-abus-fu7301b-1234044.html
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.. :-)
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
> 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.
Stefan U. schrieb: > Diese Sensoren reagieren sogar auf Anschreien. Klingt, als hättest Du Spaß gehabt beim Testen.. :-)
Suche hier im Forum nach NE567 (Tondecoder-IC). Du wirst eine Menge Schaltungen und Anregungen finden.
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?
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..
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.
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.
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..
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
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.
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? :-)
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.
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?
> 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
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..
Ich verstehe solche Formeln auch nicht. Manchmal hilft mir ein analoges oder digitales Schaltbild (je nach Fall), um etwas als Algorithmus umzusetzen.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.