Forum: Mikrocontroller und Digitale Elektronik Körperschall verstärken und damit Mikrokontroller triggern


von Karl-alfred R. (karl-alfred_roemer)


Lesenswert?

Hallo zusammen,

ich wollte ein kleines (mobiles) Gerät bauen, mit dem ich
Körperschall mit einem Mikrofon aufnehme, es verstärke und
das Signal daraus nehmen will, um einen Mikrokontrollereingang
zu triggern. So als ob ein Taster gedrückt worden wäre.  Der
Mikrokontroller (ATMEGA8, weil ich mit dem schon ein wenig
Erfahrung habe) soll dann den Triggerzeitpunkt in einen nicht
flüchtigen Speicher schreiben, so dass ich ihn zuhause auslesen
kann.

Realisierung:
Ein Mini-Mikrofon (Piezo oder Elektret) wird dazu direkt
an die Wand eines kleinen Plastikgehäuses (4*6cm) montiert.
Wenn man mit einem anderen Gerät dieses Plastikgehäuse berührt,
hat man erheblichen Körperschall. So als ob man sein Ohr auf
eine Tischplatte legt und auf diese Platte klopft.

Dieses Signal wollte ich mit einem OP-Amp verstärken. Die Signal
qualität spielt absolut keine Rolle. Hinter dem OP-Amp wollte ich
mit einem zweiten OP-Amp einen Schmitt-Trigger bauen, der ab einem
bestimmten Pegel seinen Ausgang auf EIN schaltet und diesen auch
paar Millisekunden hält (damit ich mir das Software-Entprellen
in Assembler ersparen kann, weil ich das noch nicht kapiert habe,
bzw nicht verstanden habe, wie ich das in eigenen Code einbauen
kann, ohne den anderen Code zu stören)

Die Versorgungsspannung wollte ich direkt aus drei AAA-Zellen entnehmen.
Ohne Spannungsregler. Ich hoffe, (und glaube) dass ein 3,3V Mega8
bei vollen Batterien (4,5V)nicht gleich abraucht und bei sagen wir
3V immer noch stabil läuft.


Der Mikrokontroller selbst hat ja keinen genauen Quarz und erst
Recht keine Echtzeit-Uhr eingebaut.  Deshalb müsste ich wahrscheinlich
einen genauen externen Quartz nehmen.
Dann wollte ich eine Schleife laufen lassen, die genau soviele
Takte im Kreis läuft, dass ein Schleifendurchlauf genau eine Sekunde
lang dauert.

1. Frage: Wie genau sind solche Quarze etwa? Wenn das Teil sagen wir
mal zwei Wochen am Stück an drei 1,5V AAA-Batterien laufen soll, deren
Spannung mit der Zeit ja abnimmt.
Kann man davon ausgehen, dass die Zeitliche Abdrift über zwei Wochen
unter einer Minute gehalten werden kann?
Oder gibt es einfach auszulesende genaue und billige und kleine 
Echtzeituhren?

2. Frage:
Die Triggerereignisse kann ich ja eigentlich nur ins EEPROM schreiben.
Es sollen in zwei Wochen etwa 30 Datensätze eingetragen werden.
Das dürfte Platzmäßig ja kein Problem sein. Aber wie sieht es mit
der Versorgungsspannung und Stromstärke aus?  Wie hoch ist die,
wenn man Daten ins EE-Prom brennt?  Reichen meine 3 AAA-Zellen
dafür aus?

Danke für Eure Infos und viele Grüße
Karl-Alfred Römer

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Karl-alfred Römer schrieb:
> Hallo zusammen,
>
> ich wollte ein kleines (mobiles) Gerät bauen, mit dem ich
> Körperschall mit einem Mikrofon aufnehme, es verstärke und

Zum automatischen Betätigen der Klospülung?

duck-und-weg

von micha (Gast)


Lesenswert?

1: ja, siehe 
http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC

2: vermutlich ja :-)

Ich würde mit dem Signal den externen INT0 triggern. Damit kann man den 
AVR aus dem "Tiefschlaf" wecken. Dein Program macht dann (in der 
Hauptschleife) nichts anderes als die RTC auszulesen und den Datensatz 
wegzuschreiben. Danach fällt der Controller wieder in den Tiefschlaf und 
verbraucht (fast) keinen Strom.
Du must dann noch eine  Möglichkeit haben, die Daten auszulesen. Eine 
Möglichkeit wäre es beim Aufwachen einen anderen Pin auzufragen und dann 
in eine Art Terminal (Abfrage der Werte, Uhr setzen, Speicher löschen 
etc) zur Verfügung stellt. Der Stromverbrauch wird dann hauptsächlich 
durch die analoge Schaltung bestimmt.

von Karl-alfred R. (karl-alfred_roemer)


Lesenswert?

Das  mit dem Sleep-Modus ist eine gute Idee um Strom zu sparen.
Habe damit zwar noch nie gearbeitet, aber einmal muss es ja zum
ersten Mal gemacht werden.

Habe eben mal ein Piezo-Mikrofon in das geplante Plastikkästchen
eingeklebt, an meinen Oszi angeschlossen und mit verschiedenen
Gegenständen, die dem späteren Gegenstand ähnlich sind, berührt.
Je nach Berührungsintensität kommen so schon 0,2 bis 5 Volt heraus.
Damit mein AVR auch garantiert von den 0,2V getriggert wird, werde
ich wohl verstärken müssen schätze ich mal.

Ein anderes Problem: Ein Schallereignis, bei dem zwei Kunststoff
gegenstände zusammenstoßen produziert sehr kurze und schnell
abklingende Impulse. Angenommen, er erste Impuls wäre nur eine
1000stel Sekunde: Reicht das aus, um genau einen Interrupt
auszulösen? Die Entprellerei liegt mir noch schwer im Magen.

Was die Genauigkeit der Quarze betrifft: Die externen scheinen
ja genau genug zu sein. Selbst die Temperaturabdrifft bei
50°C die je nach Quarz 20ppm ausmachen soll, wäre noch im
grünen Bereich. Hat jemand eine ungefähre Vorstellung, wie
groß die Temperaturabdrift und auch die allgemeine Genauigkeit
beim AtMega8-internen Oszillator ist?

von Vlad T. (vlad_tepesch)


Lesenswert?

ich hab zuerst an eine Art Alarmsignal vor Omas Darmwinden gedacht :-P

von Karl-alfred R. (karl-alfred_roemer)


Lesenswert?

Omas Darmwinde und automatische Klospülung hat überhaupt
nichts mit meinem Problem zu tun.

Es geht um Überwachung eines kleinen Objektes. Könnte ich
auch mit einem Bewegungsmelder realisieren. Aber man darf
es nicht sehen. Und weil das kleine Objekt auf jeden Fall
berührt werden muss, mache ich es halt mit Schall.

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.