Viele bauen sich im Rahmen der Maker-Bewegung eine Oszilloskop-Uhr, ich auch :-)
Benutzt habe ich einen ESP32 verbunden mit einem HAMEG HM 806.
Allerdings benutze ich drei seiner Eingänge: Channel 1+2 für X und Y und Channel Z (auf der Rückseite) um den Elektroden-Strahl aus- und einzuschalten.
Die Software wurde mit dem freeRTOS von Espressiv unter Linux gebaut. Die Geometrien der dargestellten Elemente kommen ursprünglich aus einer CorelDraw-Zeichnung. Dort habe ich das Ziffernblatt und alle einzelnen Zusatzelemente gezeichnet und als HPGL-File exportiert. Diese HPGL-Files wurden mit dem Tool xxd (Linux) in Header-Files umgewandelt und in die main.c includiert. Die ESP32-Software interpretiert die HPGL-Befehle zu Beginn und erzeugt daraus die nötigen Grafikelemente in der schon passenden Skalierung.
Das ESP32 Programm meldet sich am Hotspot an und holt sich die Anfangszeit via SNTP von sntp-pool.
Um nun die Zeit und den aktuellen Tag anzuzeigen werden die Zeiger-Geometrien 2D transformiert (verschoben und um einen Pivot gedreht).
Das Besondere bei dieser Uhr ist: Die Grafik-Elemente haben eine Z-Ordnung. Das bedeutet zum Beispiel: Der Sekundenzeiger wirft einen "Schatten" auf alle darunter liegenden Elemente, der Minutenzeiger ebenfalls, usw... Im Video kann man zum Schluss gut erkennen, wie der Minutenzeiger einen "Schatten" auf den Schriftzug "thoemel.info" wirft. Dieser Effekt wird durch den zusätzlichen Z-Eingang des Oszilloskops erzeugt. Die ESP32-Software baut ein Schattenbild auf und schaltet immer dann den Elektroden-Strahl ab, wenn er nicht sichtbar sein soll, weil an dieser Stelle durch ein vorheriges Element ein Schatten geworfen werden soll. Am Ende vom Video kann man das ganz gut erkennen.
Das Bild wird mit 29 FPS aufgebaut. Das Programm hat 500 Zeilen Code.