PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DCF Schlafphasenwecker mittles eines Piezosensors



elayne
13.04.2008, 16:50
Hey!

Ich lese jetzt schon einige Zeit in diesem Forum mit und habe auch schon bei einigen tollen Projekten mitdisskutiert. Nun möchte ich mein aktuelles Projekt vorstellen. Wie so oft ein Funkwecker. Eigentlich gibt es ja genug Weckerprojekte die inzwischen vorgestellt wurden aber ich bin einer der ersten der eine Schlafphasenerkennung eingebaut hat. Angeregt wurde das alles von diesem (https://www.roboternetz.de/phpBB2/viewtopic.php?t=36175) Thread. Von daher weiss ich auch das es einige mehrere gibt die sich solch einen Wecker bauen wollen und deshalb ist es bestimmt nicht schlecht wenn ich über ein paar meiner Erfahrungen rede.

Also das ganze ist aufgebaut mit einem ATmega32. Ich habe nur diesen großen Controller verwendet da ich alles mit dem RN-Controll entwickelt habe. Das Funksignal wird vom Conrad DCF Modul emfangen und an einem normalen Pin ausgewertet. Die Auswertung der Schlafphasen habe ich mittels eines einfachen Piezo Plättchen realisiert welches ich an einem Lattenrost festgeklebt habe. Durch die Biegung des Rostes wird eine Spannung erzeugt welche ein ADC Port erkennt und ggf. den Alarm auslöst. Die Anzeige der Uhrzeit und der Weckzeit habe ich als erstes mit 7 Segment anzeigen aufgebaut. Dies hat auch ganz gut funktioniert, war aber zu kopliziert von der Bedienung der Einstellungen. Deshalb benuze ich jetzt ein 2x16 LC - Display mit einer programmierten 3-Knopf Menuführung. Zusätzlich stellt ein Kontakt an der Tür die Snooze funktion da. Der Wecker gibt alle 5 mins Alarm bis ich die Tür geöffnet habe. Alle daten wir Weckzeiten, Weckaktivierung und Schlafphaseneinstellungen werden im EEPROM gespreichert sodass ich auch nach einem Stromausfall zuverlässig geweckt werde. Soweit zur Funktionsbeschreibung.

Die entwicklung des Projektes habe ich angefangen mit deinem RC Controll und einem Breadboard. Darauf habe ich alles aufgebaut und das Programm geschrieben. Als das alles soweit funktionierte habe ich einen Prototyp auf einer Lochrasterplatine aufgebaut. Diesen habe ich heute fertigestellt. Nun werde ich die Schaltung noch einige Wochen testen bevor ich mir eine SMD Platine ätzen lasse und evt auch ein Gehäuse baue. Die Endgültige version plane ich mit einem ATmega 8 und einer kleineren Platine.

Nun meine bisherigen Erfahrungen sind äuserst positiv. Der Wecker weckt mich immer einen gewissen Zeitraum vor der eingestellten Weckzeit wenn ich mich bewege und ich muss sagen das funktioniert wirklich gut. Ich wache jeden Tag auf und fühl mich direkt fitt und bin nichtmehr verschlafen. Ich kann so ein Wecker nur jedem empfehlen. Ich will noch eine ganze Nacht analysieren und die Werte mitloggen um die optimale Weckeinstellung herauszufinden. Wie genau ich das mache weiß ich nochnicht. Entweder mit SD karte oder Terminalprogramm. Kennt zufällig jemand ein gutes Terminalprogramm das Loggs mit Timestamps schreibt? Oder hat jemand eine andere gute Idee wie man mit einem AVR Messwerte loggen kann?

Das ganze war kein besonders schweres Projekt, aber dafür das es eins meiner ersten Projemt mit µControllern war bin ich doch zufrieden damit.
Am ende möchte ich mich noch bei allen Usern bedanken die Anregungen und Ideen gebracht haben und die mir bei Problemen geholfen haben, im Forum wie auch im Chat. Besonderen Dank geht an EZ81 der einiges an Vorarbeit geleistet hat.
Anbei hänge ich noch ein paar Bilder des ganzen

Gruß
elayne




http://img231.imageshack.us/img231/7021/weckerjq6.th.png (http://img231.imageshack.us/my.php?image=weckerjq6.png)
Schaltplan des Weckers

http://img232.imageshack.us/img232/1055/dscf1637cd5.th.jpg (http://img232.imageshack.us/my.php?image=dscf1637cd5.jpg)
Ester aufbau mit RN-Controll und 7 Segment Anzeigen

http://img231.imageshack.us/img231/796/dscf1647qw9.th.jpg (http://img231.imageshack.us/my.php?image=dscf1647qw9.jpg)
Piezo als Sensor am Lattenros

http://img215.imageshack.us/img215/3550/dscf1690kb3.th.jpg (http://img215.imageshack.us/my.php?image=dscf1690kb3.jpg)
Türkontakt "Hardware Snooze"

http://img215.imageshack.us/img215/9090/dscf1761mu9.th.jpg (http://img215.imageshack.us/my.php?image=dscf1761mu9.jpg)
Fertiger Aufbau des Prototyps.
Wie man unschwer erkennen kann hat sich ein kleiner Fehler eingeschlichen...

http://img237.imageshack.us/img237/6383/dscf1667nq7.th.jpg (http://img237.imageshack.us/my.php?image=dscf1667nq7.jpg)
Anzeige der Uhrzeit und der Weckzeiten

Michael 123
13.04.2008, 20:40
Hallo,

das ganze hört sich sehr gut an.
Ich glaube ich werde mir auch sowas bauen, täglich ausgeschlafen sein. Da kann ja schon am Tag fast nix mehr schiefgehen. =P~



Die Auswertung der Schlafphasen habe ich mittels eines einfachen Piezo Plättchen realisiert welches ich an einem Lattenrost festgeklebt habe. Durch die Biegung des Rostes wird eine Spannung erzeugt welche ein ADC Port erkennt und ggf. den Alarm auslöst.
Auf dem Bildern ist zu erknenn das das so ein Lautsprecher enhliches Teil ist. Sehe ich das Richtig? Und wenn ja, wie wird das ausgewertet. Ich kann mir das gerade nicht vorstellen.

mfg
Michael

elayne
13.04.2008, 21:01
Das Piezoplättchen habe ich einfach aus einem Piezo-Summer ausgebaut. Angeschlossen habe ich es nach dem Schaltplan den mir EZ81 beschrieben hat:
https://www.roboternetz.de/phpBB2/files/piezo_adc.png

Die Wiederstände sind dazu da um den ADC im unbewegten Zustand auf 2,5V zu ziehen. Wird nun der Lattenrost bewegt, erzeugt das Plättchen eine Spannung welche vom ADC gemessen wird und softwaretechnisch ausgewertet wird.

Gruß
elayne

goara
13.04.2008, 21:39
funktioneit das mit der schlafphasenerkennung echt so einfach ueber die bewegung ??
gibt ja so komerzeille dinger, bei denen muss mann dann aber immer ein armband mit pulssesor oder sowas in der art tragen..

µautonom
13.04.2008, 21:50
Hi, das Thema interessiert mich auch. Wie erkennst du den genau, wann du eine Tiefschalfphase hast?. So wie ich das verstanden habe wird über bestimmte Bewegungen eine Schlafphase zugeordnet. Kann man sich den so festlegen, ist doch bei jedem anders oder?

Mfg

elayne
13.04.2008, 22:07
Naja also bisher habe ich mir einfach den aktuellen wert anzeigen lassen. Dann habe ich mich auf mein Bett gelegt und mich gedreht, sowie ich es auch nachts machen würde denke ich. Diesen Wert habe ich dann als "Weckwert" benuzt. Das funktioniert soweit eigentlich ganz gut aber wie gesagt möchte ich um diesen Wert genauer zu bestimmen einmal eine ganze nacht analysieren und pro Sekunde ein Wert loggen. Ich weiss nur nochnicht wie genau ich das mache. Ich habe mir auch Dehnungsmessstreifen bestellt um zu versuchen ob diese besser funktionieren wie der Piezo. Wenn dem so wäre berichte ich das. Ich vermute das bei den gekauften Wecker in dem Armband auch nur ein Bewegungssensor ist und da finde ich es gemütlicher nicht verkabelt zu sein :)

Gruß
elayne

goara
14.04.2008, 13:46
bau doch zum messen an den wecker ne rs232 hin und lass ihn eine nacht lang die daten an nen pc mit hyperterminal senden... das sollte zum loggen doch funtkionieren...

ansonsten gefällt mir das projekt echt gut.. werd mirt glaub auch mal sowas bauen, habe immer so die aufwachprobleme morgens.. bin halt n8mesch ... das blöde an der der technik mit dem sensor im bett is nur, dass es nich funktioniert wenn man da zu zweit schläft ... bzw nich so richtig..

avion23
14.04.2008, 13:57
Hallo elayne,
was hältst du von http://www.obdev.at/products/avrusb/easylogger.html als logger? Du könntest dann einfach deinen laptop oder pc in die nähe stellen und alles in eine große Textdatei schreiben, die du später z.B. mit excel auswertest.

Dabei müsstest du den logger nur parallel zum ADC-Pin deines atmega32 hängen und bräuchtest nicht soviel zu verändern.

elayne
14.04.2008, 16:08
Hey,
das mit dem easylogger hört sich nicht schlecht an, aber ich denke ich versuchs die woche mal zuerst per UART, sollte das einfachste sein.

Gruß
elayne

Murdoc_mm
14.04.2008, 20:09
Hi,

kennst du diesen Thread schon: https://www.roboternetz.de/phpBB2/viewtopic.php?t=38477

Da wurden viele gute Ideen gepostet wie man so nen Wecker noch aufmotzen kann (unter anderem von mir \:D/ ). Ganz gut gefällt mir die Mathe-Weck-Funktion.

Zu deinem Speicher-Problem: Warum benutzt du denn keinen I2C-EEprom (z.B. Reichelt-nr.: ST 24C256 BN6)? Guckst du hier: https://www.roboternetz.de/wissen/index.php/Bascom_und_I2C_EEprom

Du musst nur vorher ausrechnen wie viele Werte in son Prom passen und dann die Anzahl der benötigten EEprom´s ermitteln. Wenn du dann genug hast kannste am nächsten Morgen alle Werte über RS232 an deinen PC senden und auswerten.

Gruß

elayne
15.04.2008, 18:10
Jop, den Thread kannte ich, da habe ich auch die Idee mit dem "Hardware Snooze" her. Danke übrigens dafür ^^. Den EEPROM schau ich mir mal an, hört sich auch gut an.

Gruß
elayne

1hdsquad
16.04.2008, 10:38
Schöne Sache, sollte ich mir auch mal nachbauen *gähn*

vajk
02.05.2008, 12:03
Hier: http://wiki.lochraster.org/wiki/ArmWecker noch ein Projekt in diese Richtung ...

1hdsquad
02.05.2008, 14:14
Alter, die haben aber richtig übertrieben ;-)

Murdoc_mm
02.05.2008, 16:56
Hi,


...um diesen Wert genauer zu bestimmen einmal eine ganze nacht analysieren und pro Sekunde ein Wert loggen.

Gibts eigentlich schon fortschritte?

Gruß

elayne
02.05.2008, 22:40
Hi,
mit dem Übertragen per UART hab ich immernoch meine Probleme. Das stört total das Programm und ich versteh nicht warum. Auf dem Steckbrett gings. Also entweder liegts es der Lochrasterschaltung selbst oder an der langen seriellen Leitung (gibts da Grenzwerte?). Da ich das ganze eh in einem Gehäuse nochmal sauber aufbauen wollte dachte ich mach ich erst das und versuch die übertragung dann nochmal. Und wegen des langen Programmes bleib ich nun auch beim ATmega16, deswegen ist der i2c eeprom auch wieder ne Überlegung wert. Als ich ein Anbieter gesucht hab der mir die Platine ätzt hab ich nich schlecht über die Preise gestaunt. Deswegen bau ich mir im moment erstmal was um Platinen zu ätzen. Sollte aber auch nächste Woche fertig werden. Anbei noch der aktuelle Schaltplan und ein Bild des Gehäusemodells.

Gruß
elayne




http://img134.imageshack.us/img134/1122/weckerdi9.th.jpg (http://img134.imageshack.us/my.php?image=weckerdi9.jpg)
Aktueller Schaltplan

http://img134.imageshack.us/img134/8593/dscf1849pw3.th.jpg (http://img134.imageshack.us/my.php?image=dscf1849pw3.jpg)
Modell des Gehäuses
Soll aus Polystyrol / Makrolon aufgebaut werden

vajk
02.05.2008, 22:54
Huhu.
Die Emiter Q2,Q3 hängen gemeinsam in der Luft - da fehlt wohl was? Busleitungen X3.1,4.1,5.1 ohne Beschriftung, weißt Du das in einem Jahr noch? 0V statt GND .. *schulterzuck* - genug "Anmerkungen" - viel Erfolg!

elayne
02.05.2008, 23:16
Richtig, da fehlt was. Danke für die Hinweise. Besser ich morgen aus :)

Murdoc_mm
03.05.2008, 14:08
Hi,


oder an der langen seriellen Leitung (gibts da Grenzwerte?).

Jap. Genau kann ichs dir leider auch nicht sagen aber versuch die Leitungen immer so kurz wie möglich zu halten. Allerdings kannst du auch nen Kompromis machen und mit der Baudfrequenz runter gehen, dann kannste längere Leitungen benutzen aber auch nicht so viele Daten pro Sek. übertragen.

Gruß

elayne
03.05.2008, 17:26
Ah, ok. Dann werd ich das später gleich mal mit meinem Laptop versuchen. Bisher hatte ich die Leitung 3x verlängert um mein PC zu erreichen.