Hallo, ich suche eine Anregung, wie man eine Signalerkennung mit wenigen Bauteilen machen könnte. Das (Ton)Signal stammt von herkömmlichen Digital-Timern (Kurzzeit-Timer, Küchen-Timer, Kitchen-Timer) Die haben überwiegend den gleichen Prozessor und entsprechend ist das Ton-Signal gleich. - - - - kurze Pause - - - - kurze Pause - - - - längere Pause usw. Eine Signalfolge wie oben mit 3 x 4 Tönen und den zwei kurzen Pausen dauert geschätzt 3 Sekungen. Dann kommt die längere Pause von 1 Sekunde. Danach wieder von vorn. Das Signal soll von einem Ton-Sensor mit Electret-Mikrofon erkannt werden. Es geht mir hier nur um die Signalerkennung. Alles andere, Tonverstärker und Schaltstufe, ist nicht die Frage. Die Signalerkennung muß nicht unbedingt sofort bei der ersten Tonfolge schalten. Hat jemand eine Idee? Mit Digital-ICs oder Mikrocontroller? Gruß hdt
Bruno F. schrieb: > Mit Digital-ICs oder Mikrocontroller? Mit ICs wohl kaum, dann schon eher FPGA. Aber am besten fährst du mit einem uC. Jetzt so aus der Hüfte wirds wohl ein Automat und was mit timern.
Bruno F. schrieb: > Die haben überwiegend den gleichen Prozessor Sicher? > und entsprechend ist das Ton-Signal gleich. Da würde ich aber noch ein paar Messungen machen, wenn da mit allen möglichen Geräten funktionieren soll... BTW: was ist mit sonstigem Lärm? Du hörst dank ausgefuchster Signalverarbeitung im Gehirn mämlich noch Sachen, die sind mit überschaubaren Mittlen schnell nicht mehr automatisch auffindbar. Du hörst und erkennst(!) den Piepser nämlich auch noch, wenn da ein Radio läuft und 5 Leute in der Küche diskutieren. > Electret-Mikrofon ... Digital-ICs oder Mikrocontroller? Mein Tipp aus der Praxis: ERST mal die Aufgabe genauer analysieren und spezifizieren. DANN nach einer Lösung suchen. > Hat jemand eine Idee? Tondecoder mit dem NE567. Oder einer DFT für die gesuchte (wenn immer gleiche) Frequenz mit dem Goertzel-Algorithmus auf einem uC: https://de.wikipedia.org/wiki/Goertzel-Algorithmus
:
Bearbeitet durch Moderator
Ich denke auch, daß es mit einem Mikrocontroller am einfachsten sein wird. Meine eigene (simple) Grundidee ist, das Signal "als Referenz" im Mikrocontroller zu speichern. Und sobald es ein gleiches von außen über den Ton-Sensor gibt, kann das mit UND-Gattern zum Schalten dienen.
Bruno F. schrieb: > Ich denke auch, daß es mit einem Mikrocontroller am einfachsten sein > wird. Meine eigene (simple) Grundidee ist, das Signal "als Referenz" im > Mikrocontroller zu speichern. Und dann mit einer Kreuzkorrelationsfunktion drüber zu gehen? Du kennst dich mit Signalverarbeitung gut aus? > Und sobald es ein gleiches von außen über den Ton-Sensor gibt, kann das > mit UND-Gattern zum Schalten dienen. Lies mal meinen Post nochmal durch. Und wenn dir etwas unklar ist bezüglich der Fremdgeräusche, dann fragst du einfach nochmal. Du stellst dir das mit dem µC offenbar ein wenig romantisch und simpel vor. Es gibt in einem µC keine Funktion im Sinne von is_signal_stored_in_ram_equal_with_real_world_signal(), die dann true oder false zurückgibt. Ich hatte dir schon die einfachsten Lösungen genannt. Sieh sie dir einfach mal an...
:
Bearbeitet durch Moderator
Hallo Lothar Selbstverständlich habe ich Deinen Beitrag gelesen. Ich kam nur noch nicht dazu, zu antworten. Also das Signal ist immer gleich, davon muß man einfach mal ausgehen. (Man findet kaum einen solchen Digital-Timer, der anders "tönen" würde. Ich habe hier einige liegen.) Und NEIN, ich kenne mich mit Programmierung überhaupt nicht aus. Mit dem Tondecoder NE567 habe ich das Projekt vor einigen Jahren schon mal versucht. Es gab damals dafür keine vernünftige Schaltung im Web, hatte mich auch bei den Funk-Amateuren umgehört. Und dort sagte man mir schon, daß der NE567 nicht einfach sei. Das ist auch so. Hab dann selbst was gebastelt. Sehr umständlich zu justieren. Funktioniert hat es. Und Störungen durch Fremdgeräusche gab es nie. Aber es mangelt an einem professionellen Schaltplan. Ansonsten reicht die Auswertung der Tonfrequenz für diese simple Aufgabe völlig aus. Ich greife das gern wieder auf, aber es muß ein anständiger Schaltplan her. Wenn es andere ICs für die Erkennung der Tonfrequenz gibt, versuche ich auch das gerne. Wie gesagt, das reicht völlig. Ich kann ja noch einen Zähler dahinter schalten, so daß es nicht gleich beim ersten Piepser schaltet. Meine Vorstellung ist, daß sich mit einem Mikrocontroller der Schaltungsaufwand wesentlich reduzieren ließe. Das Programmieren werde ich dann einem anderen übergeben, der solche Sachen (gegen Bezahlung) macht. Wenn ich den hier über dieses Forum finde, wäre mir das recht. Aber ich werde das in der Vorplanung NICHT einem Fachmann überlassen. Der baut mir irgendwas, was ich nicht will. Gruß hdt
Bruno F. schrieb: > Also das Signal ist immer gleich, davon muß man einfach mal ausgehen. Das mag für das ausgegebene Signal zutreffen, d.h. das, was elektrisch am Schallwandler ankommt. Aber das aufgenommene Signal ist mit recht hoher Wahrscheinlichkeit nie komplett gleich, sondern sich nur mehr oder weniger ähnlich. Bereits atmosphärische Schwankungen (Luftdruck und -Feuchtigkeit) können sich auswirken, und eine geänderte Raumbedämpfung erst recht. Und die hast Du, wenn in dem Raum, in dem das Signal abgegeben wird, ein Mensch herumsteht, oder ein Vorhang etwas anders drapiert ist als sonst. Auch ein gekipptes Fenster wird das Reflexions- und Dämpfungsverhalten in Deinem Raum beeinflussen, so daß das aufgezeichnete Signal nicht "gleich" ist. Und sobald die geringsten Störgeräusche auftreten, ist eh gar nix mehr "gleich". Du solltest stattdessen folgendermaßen vorgehen: Audiosignal "anhören" und dabei das Frequenzspektrum analysieren. Wenn die Grundfrequenz des Piepens erkannt wird, und ein gewisser Signalpegel überschritten wird, kannst Du das als "erkannt" ansehen. Das Stichwort lautet hier FFT. Das kombinierst Du noch mit dem Zeitverhalten, so daß Du das ganze auf etwas wie kein signal - 5 Sekunden Signal - 2 Sekunden kein Signal - 5 Sekunden Signal - kein Signal herunterbrechen kannst.
Danke Rufus! Rufus Τ. F. schrieb: > Bereits atmosphärische Schwankungen (Luftdruck und -Feuchtigkeit) können > sich auswirken, und eine geänderte Raumbedämpfung erst recht. Und die > hast Du, wenn in dem Raum, in dem das Signal abgegeben wird, ein Mensch > herumsteht, oder ein Vorhang etwas anders drapiert ist als sonst. > > Auch ein gekipptes Fenster wird das Reflexions- und Dämpfungsverhalten > in Deinem Raum beeinflussen, so daß das aufgezeichnete Signal nicht > "gleich" ist. > > Und sobald die geringsten Störgeräusche auftreten, ist eh gar nix mehr > "gleich". Das ist ja alles richtig. Aber ebenso auch "für diese Anwendung" nebensächlich. 1. ist und bleibt das sagen wir mal "nur eine abschaltende Eieruhr". (auch wenn das nicht exakt die Anwendung ist) 2. wird das ausschließlich in ruhigen Umgebungen angewandt. 3. ist die Empfindlichkeit des Tonsensors sehr gering vorgesehen, da nur ein Abstand von maximal 1 Meter nötig ist. Bei meinen Vorversuchen mit dem NE567 funktionierte das ohne jeglichen Störfall und sogar ohne eine extra Schallöffnung für das Electret-Mikrofon. Also durch das Gehäuse hindurch. So sollte es auch sein. Es war nur immer eine exakte Abgleichung nötig. Ich hätte es gern mit Festwerten ohne Trimmer gehabt. Aber das ging nicht. Zur Sicherheit könnte ich einen Zähler nachschalten, CD4017 z.B. und damit verhindern, daß bei zufälligen Geräuschen gleicher Tonhöhe sofort reagiert. Ich muß die Schaltung auf wenige Bauteile reduzieren. Wenn sich hier jetzt keine Vorschläge mit Mikrocontroller ergeben, werde ich die Versuche mit dem NE567 wieder aufnehmen. Den gibt es ja immer noch reichlich. Sogar in SMD. Gruß hdt
Bruno F. schrieb: > Hallo Lothar > Selbstverständlich habe ich Deinen Beitrag gelesen. Ich kam nur noch > nicht dazu, zu antworten. Wirklich? Dein Post vor Lothars Nachfrage war keine Antwort? > NEIN, ich kenne mich mit Programmierung überhaupt nicht aus. Dann fang damit nicht mit diesem Projekt an. Sieh eher zu, daß du dein Mikrofon nahe genug an die Quelle bekommst - damit das Signal stark ist und Nebengeräusche schwach. Und dann bau eine analoge Lösung dahinter. NE567 wurde ja schon genannt. Etwas aufwendiger, aber dafür auch lehrreicher wäre ein aktives Bandfilter, gefolgt von Gleichrichter und Schwellwertdetektor. Wenn du keine Nebengeräusche hast, kannst du sogar den Bandfilter weglassen. > Meine Vorstellung ist, daß sich mit einem Mikrocontroller der > Schaltungsaufwand wesentlich reduzieren ließe. Für jemand, der sich damit auskennt, durchaus. > Das Programmieren werde ich dann einem anderen übergeben, der solche > Sachen (gegen Bezahlung) macht. Wenn ich den hier über dieses Forum > finde, wäre mir das recht. Das kannst du vermutlich knicken. Oder nicht bezahlen. > Aber ich werde das in der Vorplanung NICHT einem Fachmann > überlassen. Der baut mir irgendwas, was ich nicht will. Du wandelst auf schmalen Pfaden. Je mehr du vorgibst, desto weniger Hilfe wirst du für die fehlenden Teile finden. Und es besteht die reale Chance, daß deine Vorgaben das Projekt praktisch unmöglich machen. Wenn du Vorgaben machen willst, dann mach Vorgaben nichttechnischer Natur. Einfacher gesagt: gib vor, was du haben willst. Nicht, wie es realisiert sein soll.
Bruno F. schrieb: > Wenn sich hier jetzt keine Vorschläge mit Mikrocontroller ergeben Ich würde es natürlich mit dem µC machen. Aber ich habe auch schon einige Designs mit µC gemacht und einige FFT/DFT implementiert (und dabei gelernt, das effizient zu machen). Du wirst also ein wenig Zeit brauchen und dich in diese beiden Themenfelder (µC und Frequenzerkennung) einarbeiten müssen. Dann reicht letztlich auch ein relativ kleiner µC mit überschaubarer Rechenleistung.
toll, dass heute bei jeder einfachen Aufgabe gleich einen FPGA einsetzen wollen, am Besten noch mit CPU-Kern und Echtzeitsystem. So eine einfache Ausgabe macht man mit zwei/drei Schwingkreisen, die den Ton detektieren, daraus gleichgerichtete Signale ausleiten und einem kleinen Schaltwerk, dass die Reihenfolge der Signale abtastet und meldet. Vergleich Elektorhefte der 80er und 90er
Markus W. schrieb: > am Besten noch mit CPU-Kern und Echtzeitsystem. Kann man doch gleich Alexa reengineeren,hacken, anpassen und auf einen Raspi aufspielen :D :D Sehr günstig!
Ich würde ein Filter mit OPV vorschlagen, welches die Frequenz der Pieptöne herausfiltert. Mit dem Ausgangssignal würde ich einen Mikrokontroller zur Sicherheit bis 4 zählen lassen (damit die Gerüstbauer, die den Mädelz hinterherpfeifen nicht mitgezählt werden) Den Zähler auf Null setzen, die gewünschte Aktion (Relais ansteuern etc.) ausführen und dann bis zum nächsten Mal lauern.
Herr B. schrieb: > würde ich einen Mikrokontroller zur Sicherheit bis 4 zählen lassen > Den Zähler auf Null setzen, die gewünschte Aktion ausführen Und natürlich den Zähler auch auf 0 setzen, wenn sich für 3 Sekunden nichts mehr getan hat... ;-)
Lothar M. schrieb: > Und natürlich den Zähler auch auf 0 setzen, wenn sich für 3 Sekunden > nichts mehr getan hat... ;-) Ja, natürlich. :) Praktisch so, wie man es bei einer Tastenentprellung auch machen würde.
Bruno F. schrieb: > Mit dem Tondecoder NE567 habe ich das Projekt vor einigen Jahren schon > mal versucht. Es gab damals dafür keine vernünftige Schaltung im Web > [...] Ich greife das gern wieder auf, aber es muß ein anständiger > Schaltplan her. Der Schaltplan im Datenblatt gefällt dir nicht? Was fehlt dir? Siehe Figure 16. http://www.experimentalistsanonymous.com/diy/Datasheets/NE567.pdf Bruno F. schrieb: > Bei meinen Vorversuchen mit dem NE567 funktionierte das ohne jeglichen > Störfall und sogar ohne eine extra Schallöffnung für das > Electret-Mikrofon. Also durch das Gehäuse hindurch. So sollte es auch > sein. Es war nur immer eine exakte Abgleichung nötig. Ich hätte es gern > mit Festwerten ohne Trimmer gehabt. Aber das ging nicht. Du kannst doch die Bandbreite für den zu detektierenden Ton sehr breit wählen. Lt. Datenblatt sind bis zu 14%, real vielleicht eher 10% BW möglich. Siehe Fig. 6. Ich hätte jetzt erwartet, dass man da etwas Spiel für die Bauteiltoleranzen bekommt. Geht es eigentlich um große Stückzahlen, wenn händisches Trimmen ein Problem darstellt? FFT kannst du natürlich auch machen. Wird auf keinen Fall einfacher. Und das Problem der Fertigungstoleranzen verlagerst du hier (in geringerem Maß) auf den Quarz.
Oh je, da verrenken sich wieder mal einige! "....in ruhiger Umgebung".. nimm einen Klatsch- Schalter (tolle Schaltpläne im I-Net !!). Der entspricht auch Deinem Wissensstand und benötigt keinerlei Programmierung!
Bruno F. schrieb: > Aber ich werde das in der Vorplanung NICHT > einem Fachmann überlassen. Der baut mir irgendwas, was ich nicht will Wo du recht hast hast du Recht, die meisten Fachleute weigern sich Murks zu konstruieren, auch gegen Geld. Und es liegt ja sowieso im Trend, Fachleuten kein Wort zu glauben. Für die Rekrutierung von Nichtfachleuten bist du hier schon richtig, du musst nur alle Beiträge ignorieren, die sich vernünftig anhören. Allerdings dürftest du sowieso die Kosten um Grössenordnungen unterschätzen, sowas geht nicht an einem Nachmittag und auch nicht für ein paar Flaschen Bier (aber falls doch spricht das für die gewünschte Nicht-Qualifikation, also sofort zuschlagen). Georg
Beitrag #5100907 wurde von einem Moderator gelöscht.
Dieses Projekt hier wäre vielleicht ein Ansatzpunkt: http://www.seattlerobotics.org/encoder/200112/elik.htm Den Ausgang des Frequency-to-Voltage Converters würde man dann wieder mit einem Mikrokontroller mit ADC einlesen. Vorteil: Der uC hat nur noch wenig zu tun (kein Audiosampling, FFT etc.). Er muss nur noch den sehr niederfrequenten Spannungsverlauf auswerten. Mit entsprechenden Toleranzgrenzen für Timing und Spannung (=Frequenz) kommt man dann vermutlich auch mit unterschiedlichen Signalgebern klar. Bruno F. schrieb im Beitrag #5100907: > Bin dann mal weg! zu früh...
:
Bearbeitet durch User
Tonsignal aufnehmen, gleichrichten, tiefpassfiltern und dann https://www.youtube.com/watch?v=rmcymjqFCDw
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.