Wortuhr

Wortuhr

Projektdatum: , Veröffentlichungsdatum:

2018 wollte ich ein selbst gemachtes Geschenk meiner Mutter zu Weihnachten schenken, da ich viel über Microcontroller gelesen hatte und zuversichtlich war, ein nicht-triviales Projekt mit meinem Wissen umsetzen zu können.

Da ich online zufällig auf Wortuhren gestoßen war, diese als Uhr praktisch sind, und eine selbst zu bauen, nicht sehr schwer schien, fiel meine Wahl darauf. Wortuhren sind Uhren, die Zeit in Wort anzeigen. Zum Beipiel “Viertel vor zehn”, indem die entsprechenden Schriftzüge beleuchtet sind. Auf dem Ziffernblatt sind für alle denkbaren Kombinationen Worte vorgesehen.

Für dieses Projekt brauchte ich also als Komponenten ein Gehäuse, das Ziffernblatt, LEDS, ein Microcontroller und die Stromversorgung.

Beim Design hab ich mit dem Ziffernblatt begonnen. Dazu habe ich alle nötigen Schriftzüge in mehreren Zeilen auf einer quadratischen Fläche in der Software Inkscape angeordnet und als SVG-Datei abgespeichert. Das Ziffernblatt habe ich dann als Folie auf einer Webseite bestellt und nach Lieferung von hinten auf einer Acrylglas-Platte angebracht.

Hinter den einzelnen Schriftzügen habe ich dann Fächer vorgesehen, die lichtundurchlässig voneinander getrennt sind, und in denen sich jeweils eine LED befindet. Für die LEDs habe ich einen Neopixel-LED-Streifen von Adafruit verwendet, welche seperat mit Strom versorgt werden und über eine Datenverbindung noch mit dem Microcontroller verbunden sind.

Für den Microcontroller habe ich einen ESP-01S (ESP8266) verwendet, den ich mit Micropython programmieren konnte. Leider hat die Real-Time-Clock-Komponente des Microcontrollers nicht sonderlich gut funktioniert und hatte einen so starken Drift, dass die Uhr nach wenigen Minuten bereits um mehrere Sekunden falsch war. Kompensiert habe ich das durch sehr häufiges Synchronisieren mit Zeitservern im Internet über die WLAN-Verbindung. Rückblickend würde ich auch vermutlich einen anderen Microcontroller verwenden, da dieser zwar sehr billig war, aber auch dementsprechend nicht viele Pins und andere Zusätze zu bieten hatte. Heutzutage würde ich vermutlich der Einfachheit halber einen Raspberry Pi Pico verwenden, den man auch mit Micropython programmieren kann und auf den man den Code wie auf einen USB-Stick über das Dateisystem übertragen kann.

Für die Stromversorgung hatte ich zunächst nur Plus und Minus mit einem Ende des LED-Streifens verlötet, musste dann aber feststellen, dass die Spannung wegen zunehmendem Widerstand immer mehr abfiel und entlang des Streifens nicht mehr ausreichend war. Um dieses Problem zu beheben, habe ich dann an 3 weiteren Stellen (jeweils nach einem Viertel), die Plus- und Minusleitung mit den LEDs verlötet.

Sehr aufwendig waren die Verbindungen zwischen den einzelnen Fächern, da ich die LEDs nicht als Streifen lassen konnte und stattdessen die LEDs in den Fächern einzeln platzieren und anschließend wieder mit den LEDs in benachbarten Fächern durch Anlöten von Drähten verbinden musste.

Zur Stromversorgung nutzte ich ein 12V-Netzteil, für dessen Stecker ich auch eine Buchse an der Außenseite des Gehäuses installierte.

Nachdem die Hardware für dieses Projekt fertiggestellt war, fehlte zur Steuerung der Uhr nur noch die Software des Microcontrollers. Die Zeitlogik war hierbei relativ einfach. Schwieriger gestalteten sich weitere Features wie die Möglichkeit die Farbe der LEDs einzeln für jede Stunde des Tages konfigurieren zu können, wofür ich sowohl ein Terminalprogramm als auch eine Web-Oberfläche umsetzte. Um den begrenzten Speicherplatz des Microcontrollers voll auszunutzen habe ich als Datenstruktur ein Byte-Array verwendet.

Leider ist die Uhr momentan nicht im Einsatz, da sich im Nachhinein herausstellte, dass zum Einen die LEDs als Lichtquelle zu punktuell sind und etwas installiert werden muss, welches das Licht streut und diffuser macht und zum Anderen hatte ich vorgesehen, dass wenn die zum Synchronisieren der Uhr unbedingt nötige WLAN-Verbindung abbricht, der Microcontroller einen Access-Point bietet über den man die WLAN-Verbindung neu konfigurieren kann, was aber leider nicht so funktioniert hat.

Alles in Allem war dies aber ein großartiges Projekt, welches für einen Anfänger im Bereich “Maker” sehr interessant sein kann und ich möchte definitiv die Uhr in Zukunft wieder ans Laufen bekommen.