Berliner Uhr
Aus BraLUG-Wiki
K |
(→...und etwas für den PC) |
||
Zeile 43: | Zeile 43: | ||
==...und etwas für den PC== | ==...und etwas für den PC== | ||
+ | ===Linux=== | ||
Eine "Berliner Uhr" mit einem Mikrocontroller als vollständiges Gerät kann jeder aufbauen und als Firmware implementieren (;-))...! Aber auch der "Nicht-Hardware-Freak" will etwas von dieser mystischen Uhrzeit-Anzeige haben: | Eine "Berliner Uhr" mit einem Mikrocontroller als vollständiges Gerät kann jeder aufbauen und als Firmware implementieren (;-))...! Aber auch der "Nicht-Hardware-Freak" will etwas von dieser mystischen Uhrzeit-Anzeige haben: | ||
Zeile 58: | Zeile 59: | ||
Um die Sache zum Abschluss zu bringen, hier noch die [http://bralug.de/wiki-common/images/d/db/Berliner_uhr_x.tar.gz X-Version] der Berliner Uhr von mir. Vom Layout sieht sie (fast) genau so aus, wie die Tcl-Version (siehe weiter oben...), kann aber in den Abmessungen dynamisch geändert werden. | Um die Sache zum Abschluss zu bringen, hier noch die [http://bralug.de/wiki-common/images/d/db/Berliner_uhr_x.tar.gz X-Version] der Berliner Uhr von mir. Vom Layout sieht sie (fast) genau so aus, wie die Tcl-Version (siehe weiter oben...), kann aber in den Abmessungen dynamisch geändert werden. | ||
+ | ===Windows=== | ||
+ | [[Bild:Sitebar berlin uhr.png|meine Tcl/Tk-Version einer Berliner Uhr (ach so..., 15:33 Uhr)]] | ||
+ | |||
+ | Nein, ich habe jetzt nicht das Betriebssystem-Lager gewechselt, aber in einer der letzten c't-Ausgaben war ein Artikel (17/2010; S.158ff.), in dem erläutert wurde, wie man GadGets für den Windows-Vista-Sitebar programmiert. Da ich eine etwas längere Zugfahrt vor mir und mein Firmen-Notebook dabei hatte (da ist halt Windows Vista drauf...), dachte ich, dies wäre doch mal eine nette Programmierübung zum Zeitvertreib. | ||
+ | |||
+ | Entstanden ist eine Sidebar-Applikation, die die Uhrzeit in "Ausgabeformat" der Berlin Uhr anzeigt. | ||
+ | |||
+ | ''Quelltext kommt noch...!'' | ||
==Andere komische Uhren== | ==Andere komische Uhren== |
Version vom 4. August 2010, 17:14 Uhr
Inhaltsverzeichnis |
Motivation
Karsten meinte neulich, dass eine "Berliner Uhr" doch mal etwas lustiges für ein Mikrocontroller-Projekt wäre. Nachdem ich mich ein wenig belesen hatte, war ich der gleichen Meinung und baute einen Prototyp auf einer Lochraster-Platine auf. Hier das Ergebnis:
Hardware (Prototyp)
Die Schaltung beinhaltet folgendes:
- ein ATmega8 als Mikrocontroller,
- 24 LEDs gemultiplext (3 plus 8 MC-Ausgänge)
- Uhrenquarz (als Zeitbasis)
- 3 Taster (zum Einstellen von Stunde, Minute sowie "Null-Stellen" der Sekunden)
- Anschluss für DCF77 (entweder TWI oder nativ) vorgesehen
Bemerkung zu obigen Foto des Prototyp: Die LEDs für die "Minuten-Einer" hätten eigentlich auch gelb sein sollen, leider hatte ich die auf meiner Bestellliste vergessen. Deshalb erstmal rote LEDs.
Mikrocontroller-Software
Firmware
Die erste Version der Firmware beinhaltet lediglich die Grundfunktionalitäten einer Uhr plus der lustigen Umsetzung der Uhrzeit in das spezielle Anzeigeformat der "Berliner Uhr". Mittels der drei Taster ist das Stellen der Uhr möglich (Stunden/Minuten/0-Sekunde).
Das Ganze sollte ohne Probleme um DCF77-Funktionalität, entweder via TWI oder nativ (also direkt angeschlossenem DCF77-Empfangsmodul), erweiterbar sein und kommt vielleicht in einer nächsten Version der Firmware.
RTF(-Atmel-)M
Jaja, Datenblätter sollte man lesen und auch verstehen...!
Irgendwie habe ich mich schon von Anfang an gewundert, warum die Uhr es so grottenschlecht mit der Ganggenauigkeit handhabt, obwohl ich eigentlich extra deswegen einen Uhrenquarz mit eingebaut hatte. Heute abend aktivierte ich meinen Speicheroszi, um die Frequenz des Quarzes zu bestimmen und entsprechende softwaretechnische Änderungen in die Firmware einzubauen. Zum Glück streuten die Meßergebnisse so stark, dass ich doch nochmal im Datenblatt nachgelesen habe...: die internen Kondensatoren im ATMega8 müssen via Fuse-Bits aktiviert werden (Fuse-Bit CKOPT)!
Mittels dem Programm avrdude und einem usbasp als angeschlossene Programmierhardware würde die Befehlszeile zum Setzen der entsprechenden Fuse-Bits so aussehen:
avrdude -c usbasp -p m8 -U hfuse:w:0xc9:m -U lfuse:w:0xe1:m
Jetzt bin ich mal gespannt, ob sich die Ganggenauigkeit der Uhr dadurch verbessert...
...und etwas für den PC
Linux
Eine "Berliner Uhr" mit einem Mikrocontroller als vollständiges Gerät kann jeder aufbauen und als Firmware implementieren (;-))...! Aber auch der "Nicht-Hardware-Freak" will etwas von dieser mystischen Uhrzeit-Anzeige haben:
Ich konnte es dann doch nicht lassen und habe im Anflug von Langerweile ein kleines Tcl/Tk-Script geschrieben, welches die PC-Uhrzeit in dem Format der Berliner Uhr darstellt.
Wenn schon eine Tcl/Tk-Version, dann natürlich auch etwas für ein ganz normales (farbfähiges) ASCII-Terminal, zumal ich schon immer ein ncurses-Programm schreiben wollte. Hier also die Version der Berliner Uhr für die "Kommandozeile". Mit der Taste 'q' kann man, wie von anderen vergleichbaren Tools gewohnt, das Programm beenden.
Um die Sache zum Abschluss zu bringen, hier noch die X-Version der Berliner Uhr von mir. Vom Layout sieht sie (fast) genau so aus, wie die Tcl-Version (siehe weiter oben...), kann aber in den Abmessungen dynamisch geändert werden.
Windows
Nein, ich habe jetzt nicht das Betriebssystem-Lager gewechselt, aber in einer der letzten c't-Ausgaben war ein Artikel (17/2010; S.158ff.), in dem erläutert wurde, wie man GadGets für den Windows-Vista-Sitebar programmiert. Da ich eine etwas längere Zugfahrt vor mir und mein Firmen-Notebook dabei hatte (da ist halt Windows Vista drauf...), dachte ich, dies wäre doch mal eine nette Programmierübung zum Zeitvertreib.
Entstanden ist eine Sidebar-Applikation, die die Uhrzeit in "Ausgabeformat" der Berlin Uhr anzeigt.
Quelltext kommt noch...!