Die Codesnippets, die dieser Blog aus dem Linux-Kernel zitiert läßt einige Rückschlüsse auf die Entwickler zu…
Kategorie: Geek
Hier stehen ‚geeky‘ Inhalte.
Neues Projekt online: Binäre Funkuhr
Ich freue mich wieder einmal, mein letztes Projekt ins Netz gestellt zu haben: die Binary DCF-77 Clock (die Seite gibt es auch auf englisch).
Die Uhr empfängt die aktuelle Uhrzeit per Funk aus Braunschweig, dargestellt wird auf einem Raster von vier mal acht LEDs in binärer Form. Dabei verfügt die Uhr über sieben Anzeigemodi: Einmal ‚richtig‘ binär, zwei verschieden Varianten in BCD-Form (Binary Coded Digits). Diese drei Modi jeweils einmal für die Zeit und einmal für das Datum. Und als Sahnehäubchen wird im siebten Modus ein 32-Bit Unix Timestamp dargestellt.
Der Bau und die Programmierung haben wieder mal Spaß gemacht. Ich habe auch wieder eine Menge dabei gelernt was mir für die Konstruktion des fast schon mythischen ultimativen Weckers hilfreich sein wird. Unter anderem die Benutzung eines Oszilloskopes (Dank an Lucas für die Leihgabe!) und die Kommunikation per I2C-Bus (Dank an Michael Meier für die Vorlage).
Als nächstes wird dann wohl mein Fnordlicht fernbedienbar gemacht…
Binary DCF-77 Clock
Die Binary DCF-77 Clock ist ein einfaches Gerät mit dem die Zeit empfangen und in binärer Form dargestellt werden kann. Das Signal wird von einem einfachen Empfängermodul enpfangen, mit einem ATmega8 Mikrocontroller decodiert und auf einem Raster von LEDs dargestellt. Insgesamt gibt es 32 LEDs, die in Reihen zu jeweils acht angeordnet sind. Die Steuerung übernimmt ein SAA1064 IC, der vom Controller per I2C-Bus gefüttert wird.
Die Zeit kann in verschiedenen Formaten dargestellt werden, das Format wird einfach per Knopfdruck gewählt. Die Formate werden später beschrieben.
Das Paket enthält die Firmware für den Controller, die Schaltpläne, die Dokumentation und eine Kopie der GPL Lizenz.
Bau und Installation
Die Installation wird in der beiliegenden Dokumentation beschrieben.Benutzung
Die Uhr wird an einer Gleichspannung von 9V betrieben. Solange noch keine Zeit decodiert wurde, wird auf den LEDs ein Lauflicht angezeigt. Die einzelne LED in der Schaltung sollte nach einer kurzen Anlaufzeit anfangen, regelmäßig zu blinken. Sie geht an wenn das DCF-Signal in den High-Pegel geht, und wieder aus wenn es auf Low wechselt. Idealerweise sollte es also im Sekundentakt für 100 oder 200 Millisekunden aufblinken wenn ein Signal empfangen wird.
Bei korrektem Empfang wird die Uhr nach etwa ein bis zwei Minuten die Zeit anzeigen.
Die Zeit ablesen
Die Zeit und das Datum werden in sieben verschiedenen Varianten dargestellt. Mit dem Knopf wird die gewünschte ausgewählt. Nach einem Druck zeigt ein Muster aus Lichtern an welcher Stil verwendet werden soll. Das Muster kann binär als Zahl von eins bis sieben interpretiert werden.Modus 1: Die Zeit in Binärform
So werden einfach Stunden, Minuten und Sekunden als Bytes dargestellt, jeweils eines pro Zeile. Die letzte Zeile des Displays bleibt leer.
Modus 2: Das Datum in Binärform
Dies ist wie das vorhergehende, allerdings werden hier in den ersten drei Zeilen Tag, Monat und Jahr dargestellt. Die letzte Zeile zeigt den Wochentag, wobei Montag einer eins entspricht, Dienstag einer zwei, und so weiter.
Modus 3: Die Zeit als BCD
Hier wird die Zeit als Binary Coded Digits (BCD) angezeigt. Die erste Zeile zeigt die Stunden, wobei die linken vier LEDs die Zehnerstelle und die rechten vier LEDs die Einerstelle darstellen.
Auf die gleiche Weise zeigen die zweite und die dritte Zeile die Minuten und die Sekunden an.
Modus 4: Das Datum als BCD
Im Prinzip wie Modus 3, allerdings wird das Datum angezeigt.
Modus 5: Die Zeit als BCD, vertikal
Dies zeigt die Zeit in BCD-Form wie in Modus 3, allerdings werden die BCD-Werte hier senkrecht nebeneinander dargestellt. Die ersten beiden Spalten zeigen also die Stunden, die dritte Spalte ist leer. Dann folgen die Minuten in zwei Spalten, dann wieder eine frei und die Sekunden in den letzten beiden Spalten.
Modus 6: Das Datum als BCD, vertikal
Die ist wie Modus 5, nur daß das Datum angezeigt wird.
Modus 7: Unix Timestamp
Wahrscheinlich das am wenigsten menschenlesbare Format. Es zeigt die Anzahl der Sekunden seit dem 01.01.1970 als 32-Bit-Wert.
Demo Modus
Wenn die Uhr an einem Ort mit schwachem DCF-Empfang aufgestellt wird, aber man trotzdem die Darstellung zeigen möchte kann sie in einen Demo-Modus geschaltet werden. Um diese Funktion ein- und auszuschalten muß die Taste für etwa fünf Sekunden gedrückt gehalten werden. Danach kann durch die verschiedenen Modi gewechselt werden. Die angezeigte Zeit steht still, also kann in diesem Modus das Ablesen der Zeit auch ohne Eile erklärt werden.
Der Wechsel in den Demo-Modus wird durch ein kurzes Aufflackern aller LEDs angezeigt. Beim Verlassen des Demo-Modus sieht man ein leeres Rechteck auf dem Display.
Schwachpunkte
Ich hätte nicht gedacht, daß das DCF-Signal dermaßen störanfällig ist. Ich habe beobachtet, daß kein verwertbares Signal mehr überbleibt wenn ich mein Notebook mit aktiviertem WLAN neben die Uhr lege. Wenn schon eine korrekte Zeit empfangen wurde wird diese allerdings weitergezählt bis die nächste ‚korrekte Minute‘ empfangen wurde.
Danke!
Ich danke Michael Meier, der eine wesentlich vielseitigere Uhr auf seiner Seite vorgestellt hat. Die SAA1064-Ansteuerung und die Routine zur Berechnung des Unix Timestamps basieren auf seinem Projekt. Man findet es auf seiner Seite.
Und wieder einmal danke ich Thomas Stegemann für seine Hilfe mit der Sprache C.
Lizenz
Dieses Projekt steht unter der GNU General Public License (GPL). Eine Kopie der GPL liegt dem Paket in der Datei License.txt bei.
Download
- binarydcf77clock_070103.tar.gz – Schaltung, Sourcecode und Dokumentation, 671kB
Pimp my Shell
Ein neuer Blog zum Thema Shell, ich bin gespannt wie der sich entwickeln wird. Die Idee finde ich gut. Gibt es einen Mechanismus, mit dem man Beitraege aus dem eigenen Blog direkt da zur Verfuegung stellen kann?
Mobiler Cluster
Schade, daß so kleine Systeme nicht ganz billig sind. Die Ultimate Linux Lunchbox verfügt über 16 Knoten und ist in einen kleinen Werkzeugkoffer eingebaut. Faszinierend!
Bedienungsanleitung für fliegende Teppiche
Bis gerade eben dachte ich, daß fliegende Teppiche nur in Geschichten aus 1001 Nacht vorkommen. Bei den Recherchen für mein nächstes Mikrocontroller-Projekt (eines habe ich schon wieder fertig, das muß nur noch etwas dokumentiert werden) bin ich aber auf eine ziemlich detaillierte Bedienungsanleitung gestoßen:
5.7 Miscellaneous Simulation Devices
Magic Carpet Simulation DeviceCA — Allows a device to be generally classified as one that uses the standard control of a magic carpet. This control is a bar, grasped by both hands, that controls the Yaw, Pitch and Roll of the carpet.
The bar, at which the pilot sits, may be pushed forward or pulled back to cause the carpet to dive or rise, respectively. In the zero position, the carpet is in level flight. Pushing forward on the bar causes the carpet to nose down and generates negative values. Pulling back on the bar causes the carpet to nose up and generates positive values.
Turning the bar turns the carpet. In the zero position, the carpet travels straight ahead. Pulling back on the right side turns the carpet to the right and generates positive values. Pulling back on the left side turns the carpet to the left and generates negative values.
Rotating the bar rolls the carpet. In the zero position, the carpet travels level. Rotating the bar in a clockwise direction rolls the carpet to the right and generates positive values. Rotating the bar in the counterclockwise direction rolls the carpet to the left and generates negative values.
Nein, ich habe nicht vor einen fliegenden Teppich zu entwickeln. Aber es soll ein Eingabegerät werden, und die Spezifikation für ebensolche (HID Usage Tables) enthält sehr detaillierte Informationen über mögliche Bauformen.
Niedlich ist auch folgender Absatz:
Spaceship Simulation Device
CA — This usage definition allows a device to be generally classified as one that uses standard controls found on a spaceship.
Wer hätte gedacht, daß die Steuerung von Raumschiffen schon standardisiert ist?
Falls es tatsächlich schon sowas wie einen Teppich-Controller gibt, würde mich ein Bild interessieren…
tar ist witzig
Wer hätte gedacht, daß einem ausgerechnet der altbackene Packer tar ein Grinsen abringen kann? GNU-tar kann das zumindest, wie ich Gestern festgestellt habe als meine im Halbschlaf eingetippte tar-Brücke nicht funktioniert hat:
% ssh root@odin "tar cf /" | tar xv
Password:
tar: Anlegen eines leeren Archivs wird feige verweigert.
,tar --help' zeigt weitere Informationen.
Und nicht nur die deutschsprachige Version ist albern:
% ssh root@odin "unset LANG; tar cf /" | tar xv
Password:
tar: Cowardly refusing to create an empty archive
Try `tar --help' for more information.
PingPongPixel
Ein Display in 1,8×2,4 Metern klingt interessant, oder? Aber drei Stunden Aufbauzeit für ein Bild lassen das PingPongPixel irgendwie auch nicht videotauglich wirken…
GP2X-Breakout
Das GP2X reizt mich ja schon, seit ich eines in der Hand hatte. Das Breakout Board macht es (fast) unwiderstehlich…
Internet, Hals über Kopf
Man kann Nachbarn aus dem eigenen WLAN vertreiben indem man verschlüsselt. Mehr oder weniger gut. Definitiv lustiger ist der Upside-Down-Ternet-Ansatz: Entweder wird sämtlicher Traffic auf kittenwar.com weitergeleitet, oder — wesentlich witziger — alle Bilder in Webseiten werden senkrecht gespiegelt oder unscharf gefiltert ausgeliefert.