Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:schlafphasenwecker:programmversion_0.5

Dies ist eine alte Version des Dokuments!


Schlafphasenwecker Programmversion 0.5

Die Namengebende Funktion des Weckers ist seine Fähigkeit, die Weckzeit an die Schlafphasen des Schlafenden anzupassen. Der Weckalarm zu einem Zeitpunkt ausgelöst werden, der für den Schlafenden am angenehmsten ist. Meine Annahme ist, dass das Wecken in einer Leichtschlafphase erfolgen sollte. Der Wecker muss also Fähig sein, Leichtschlafphasen von anderen Schlafphasen zu ermitteln. Möglich wäre das beispielsweise mittels einer Elektroenzephalografie, aber die vielen Kabel am Kopf würden den Schlaf doch sehr stören. Insofern in den Phasen leichten Schlafs die Körperbewegungen zunehmen, sollte es möglich sein, Leichtschlafphasen durch die Messung von Körperbewegungen zu dedektieren. Zu diesem Zweck hat der Schlafphasenwecker einen Sensor, der unter der Matratze , etwa in der Körpermitte am Rattenrost befestigt wird.

Die Programmversion 0.5 fokussiert auf die Auswertung der Daten dieses „Matraztensonsors“. Der Matratzensosor ist Fähig, Beschleunigungen und Drehungen auf der X-, Y- und Z-Achse zu messen. Es wird bei meinem Bett an einem Teller eines Tempur-Flex-Systemrahmens befestigt. Um gute Messwerte zu erzielen, sollte der Abstand zwischen den Bewegungen des Sensors - verursacht durch den Schlafenden auf der Matratze) und dem Rauschen des Sensors möglichst groß ausfallen. Da der Sensor sich bei der Befestigung an einem Lattenrost auf und ab, aber kaum nach vor und zurück oder seitlich bewegen kann, verspricht die Auswertung der Beschleunigungswerte auf der Z-Achse gute Messwerte. Bei der Befestigung an einem Teller eines Tempur-Lattenrostes sind darüber hinaus prinzipbedingt aber auch Drehbewegungen um die X- und Y-Achse möglich (Roll und Pitch).

Das Programm soll den Weckalarm in einem definierten Zeitfenster vor der eingestellten Weckzeit durch eine dedektierte Leichtschlafphase auslösen. Da gegen Ende der Nacht die Häufigkeit der Leichtschlafphasen zunimmt, wird dieses Zeitfenster zunächst auf 30 Minuten festgelegt. Da in meinem Bett auch zwei Katzen schlafen, muss a) der Sensor so positioniert und b) müssen die Sensordaten so ausgewertet werden, dass vor allem meine Bewegungen erfasst werden. Hierfür müssen gute Schwellenwerte empirisch ermittelt werden.

Hilfreiche Links:

In einer nächsten Programmversion müssen nun endlich die Audio-Funktionen integriert werden. Das wird nicht einfach …

Hilfreiche Links:

Um die SDFat beta zum Laufen zu bringen, müssen im Board Manager die Arduino AVR Boards Version 1.6.11 installiert werden.

  • Die TeensySdioDemo läuft
SdFatSdioEX uses extended multi-block transfers without DMA.
SdFatSdio uses a traditional DMA SDIO implementation.
Note the difference is speed and busy yield time.

Type '1' for SdFatSdioEX or '2' for SdFatSdio

size,write,read
bytes,KB/sec,KB/sec
512,7354.11,18290.74
1024,9666.89,18028.66
2048,16196.98,18807.61
4096,16282.58,18902.37
8192,16432.82,18951.70
16384,16378.37,18984.85
32768,16415.77,18987.51

totalMicros  7715214
yieldMicros  221922
yieldCalls   333
yieldMaxUsec 7896
kHzSdClk     45000
Done

Tags: #Arduino #Schlafphasenwecker

arduino/schlafphasenwecker/programmversion_0.5.1482851115.txt.gz · Zuletzt geändert: 18.05.2023 12:16 (Externe Bearbeitung)