arduino:schlafphasenwecker:programmversion_0.8
Schlafphasenwecker Programmversion 0.8
Diese Programmversion 0.8 wird momentan einem ausführlichen Praxistest unterzogen. Alle Grundfunktionen sind programmiert, funktionale Erweiterungen, andere Ziffernblätter etc. können mit zukünftigen Versionen nachgereicht werden. Momentan ist das Ziel, Fehler zu entdecken und zu beseitigen, um zu einer stabilen Version 1.0 zu gelangen.
Neuerungen und Fehlerbeseitigungen:
- Die Sonnenaufgangs- und Sonnenuntergangsberechnung wurde integriert.
- Die Farbtemperatur des Standardziffernblatts wird nach Sonnenuntergang wärmer und nach Sonnenaufgang kälter.
- Die Sonnenaufgangs- und Sonnenuntergangszeit wird im Hauptmenü angezeigt.
- Die Berechnung der Sonnenaufgangs- und Sonnenuntergangszeit berücksichtigt die Sommer- bzw. Winterzeit.
- Die auf dem NeoPixel-Ring angezeigte Uhrzeit wird nun mit der auf dem TFT-Screen angezeigten Uhrzeit synchronisiert.
- Das „gain“ des TSL2591 wurde von 1 auf 25 erhöht. Damit ist das von Sensor ausgegebene Signal sehr viel stabiler. Die Helligkeit der Neopixel wird nun nach einer Formel in Abhängigkeit der Variable „full“ geregelt.
- Die Abfrage des Lichtssensors (TSL2591) geschieht nun in einer eigenen Schleife. Diese Schleife wird nun alle 200 Millisekunden aufgerufen. Wenn der Lichtsensor z.B. alle 100 Millisekunden abgefragt wird, hält der Sonsor die Schleife für 126 Millisekunden aus. Der Lichtsensor darf also auf keinen Fall häufiger angefragt werden. (Diese Aussage gilt freilich nur für die im Code angegebene Konfiguration. Wenn die Genauigkeit des Sensors erhöht wird (d.h. der Messzeitraum), dürfte der Sensor noch seltener abgefragt werden.)
- Die Empfindlichkeit des Matratzensensors kann nun im Einstellungsmenü konfiguriert werden. So lange das entsprechende Einstellungsmenü ausgewählt ist, werden Ereignisse auf den drei Achsen farblich kodiert auf dem NeoPixel-Ring visualisert. Die ausgewählten Schwellenwerte werden im EEPROM gespeichert.
- Die Auswertung des Matratzensensors wurde verbessert. Der Bezugswert wird nun als Mittelwert einer zweistelligen Anzahl (aktuell 40) von Einzelmessungen berechnet. Von diesem Bezugswert wird der aktuelle Messwert subtrahiert (und umgekehrt) und bei Überschreiten eines Grenzwerts ein Event gezählt. Damit nicht Extremwerte des unvermeidbaren Sensorrauschens ungewollte Events auslösen, wird jeweils der Medianwert einer bestimmten Anzahl (drei bis fünf) von Messwerten verwendet.
- Der Matratzensonsor wird nun nur noch ausgewertet, wenn eine Alarmfunktion aktiv ist bzw. im Menü für die Einstellung der Empfindlichkeit.
- Es können verschiedene Ziffernblatteffekte ausgewählt werden. Welches Ziffernblatt ausgewählt ist, wird im EEPROM gespeichert.
- Wenn im Lichtweckwodus die eingestellte Weckzeit erreicht ist, ohne dass innerhalb der Weckvorlaufzeit ein visueller Alarm ausgelöst wurde, wird ein akustischer Alarm ausgelöst.
- Auf der Gehäuserückseite kann nun an der (von hinten betrachtet) linken Kinkenbuchse ein externes DCF77-Empfangsmodul angeschlossen werden. Ist ein externes DCF77-Modul angeschlossen, wird automatisch dieses anstatt des internen Moduls verwendet.
- Die Weckzeit wird nun unter Berücksichtigung der Weckvorlaufzeit immer korrekt berechnet.
- Im visuellen Weckmodus wird nach Ablauf der eingestellten Weckzeit zusätzlich ein akustischer Alarm aktiviert.
- Datum und Uhrzeit der Aktivierung des Weckalarm, des Starts und des Endes des Weckalarms werden auf die SD-Karte geloggt.
- Der visuelle Weckalarm wurde überarbeitet. Er beginnt jetzt „sanfter“.
- Neben dem visuellen Weckeffekt „Morgenröte“ ist der Effekt „Blaue Stunde“ programmiert.
- Im visuellen Weckmodus werden nach einer halben Stunde die NeoPixel deaktiviert.
- Der audio-visuelle Weckmodus wurdeprogrammiert.
- Die Lautstärke des akustischen Weckalarms wird nun langsam erhöht.
- Alle Menüseiten sind nun an das neue Design angepasst.
- Um die Performance des Codes bewerten zu können, kann die Rate der durchlaufenen VOID-Schleifen an die serielle Schnittstelle ausgegeben werden.
- Viele kleinere Programmkorrekturen.
- Kleine Optimierungen an den Menüs
Todos:
- Das Zeitsignal wird nur empfangen oder verarbeitet, wenn der Wecker mit einem PC verbunden ist.
- Umlaute sollen korrekt dargestellt werden. (https://forums.adafruit.com/viewtopic.php?f=47&t=70719)
- Der Verstärker macht bei den Dateien „VOEGEL01.WAV“ und „RELAX02.WAV“ eigenartige Knattergeräusche.
- Im Audiomodus wird die Datei „VOEGEL01.WAV“ nicht abgespielt.
arduino/schlafphasenwecker/programmversion_0.8.txt · Zuletzt geändert: 18.05.2023 12:34 von 127.0.0.1