Aus CCCZH

Inhaltsverzeichnis

Geekclock

Worum geht es?

Ein Workshop am Chaosdock 2006, an dem von jedem Teilnehmer eine LED Binary Clock, wie es sie auf Thinkgeek zu kaufen gibt, zusammengelötet werden kann. Die Uhr basiert auf einem Atmel AVR 8 Bit RISC Mikrocontroller, der mit 4MHz getaktet wird.

Die nötigen Elektronik- und Mikrocontrollerkentnisse werden an oder vor dem Workshop vermittelt (je nach Anzahl Teilnehmern). Das Zusammenlöten sollte relativ einfach sein, da die Uhr praktisch nur aus einem ATMega8L (Datenblatt, komplettes Datenblatt) und einigen LEDs besteht.

Die Uhr hat allerdings einige Unterschiede zu der Thinkgeek Clock:

  • Zeit wird per default im Binary Format angezeigt, nicht BCD (kann umprogrammiert werden)
  • Per default keine Schalter eingebaut, d.h. die Zeit kann nur via Neuprogrammierung eingestellt werden (Einbau von Schaltern ist möglich, für wen das wichtig ist)
  • Gehäuse müsst ihr selbst bauen (Tipps dazu gibt es :)
  • Kann beliebig neuprogrammiert werden
  • Erweiterungen sind möglich, denkbar z.B. Summer für Erweiterung zu Wecker, DCF77 Modul, Steuerung eines anderen Geräts (Stereo Anlage, etc). Dies erfordert aber tiefere Elektronikkentnisse und wird am Workshop aus Zeitgründen nicht gezeigt.
  • Schaltpläne und Software für eine deutlich komplexere Geekclock mit obigen Features und noch einigen mehr gibt es hier.

Software

Eine Grundversion der Software wird von mir zur Verfügung gestellt; Erweiterungen können beliebig selbst programmiert werden. Der ATMega8 kann in Assembler oder C programmiert werden. Es gibt nur selten Gründe für Assemlber, also verwenden wir C.

Wer teilnehmen will, sollte folgende Packete auf seinem Laptop installiert haben (da das eh von Distro zu Distro unterschiedlich ist, werde ich es am Workshop nicht erklären):

  • avr-gcc
  • avr-libc
  • uisp

Gentoo:

 emerge uisp avr-libc crossdev
 crossdev -t avr

Debian:

 apt-get install uisp avr-libc binutils-avr gcc-avr

Hier gibt es die Beispielsoftware zu der Geekclock.

Hardware

Die Uhr besteht im Prinzip nur aus einem Mikrokontroller, einigen LEDs mit Vorwiderständen, einem Quarz sowie einigen Bauteilen zur Spannungsstabilisation.

(Un)Genauigkeit

Die Uhr wird vermutlich relativ ungenau sein (über 10 Sekunden Drift am Tag), da aber der Takt von einem Quarz kommt, dürfte die Ungenauigkeit stabil sein und der Drift sollte durch Kalibrierung des Quarzes (Drehkondensator statt 20pF Kondensator nötig) oder Korrektur in der Software auf <1 Sekunde pro Tag gebracht werden können.

Bauteile und Kosten

Folgende Bauteile werden benötigt:

  • Bauteil / Preis
  • ATMega8L / 5.92
  • Sockel für ATMega8 / 2*0.27
  • Quarz 4MHz / 1.40
  • Spannungsregulator / 1.08
  • Platine (eine genügt für 2 Personen) / 1/2*4.80
  • 2 Kondensatoren 22PF
  • noch ein paar Kondensatoren, Widerstand 10kOhm
  • Vorwiderstände LEDs 220 Ohm / je 0.043
  • Diode 1N4001 (damit der Mikrokontroller nicht stirbt, wenn die Spannung verpolt ist)
  • einige Kabel, Teils, deren Namen ich vergessen habe (für Steckverbundungen), Lötzinn, sonstiges Kleinmaterial (kaufe ich für alle zusammen)

Gesamt also ca 15 Franken + Preis für die LEDs. Die LEDs kosten je 91 Rappen (Blau) bzw. 38 Rappen (Rot/Grün/Gelb).

Anzahl benötigte LEDs

Für die Darstellung der Stunden werden in binär 5 LED's benötigt (24<2^5=32), für die Minuten und Sekunden je 6 (60<2^6=64). Wer die Stunden, Minuten und Sekunden darstellen will, braucht also 17 LEDs, wobei die Farben beliebig gemischt werden können zwischen Rot, Grün, Gelb und Blau. Wer nur Minuten und Stunden will, braucht 11 LEDs; oder 13 fürs BCD Format.

Die Anzahl der freien Pins am MCU ist auch 17; dies ist also die maximale Anzahl LEDs, die ohne "Tricks" direkt angeschlossen werden können. Ansonsten werden z.B. Schieberegister und LED-Treiber benötigt.

Wer will eine bauen?

Wer eine solche Uhr bauen will, soll sich bitte bis spätestens am 16.4.2006 hier eintragen. Ich bestelle dann die benötigten Bauteile für alle zusammen bei distrelec.ch.

  • Wer, Wieviele LEDs, welche Farben

ACHTUNG: Zum Betrieb ist eine Stromversorgung nötig. Diese werden wir nicht bauen. Ihr benötigt also zusätzlich noch

  • DC Stromadapter mit Spannung zwischen 8 bis 30V. Dieser kann z.B. von einem alten Drucker, Laptop, etc. kommen.
  • oder eine 4.5V Batterie + 2 Büroklammern (macht keinen Sinn für Dauerbetrieb, nur zum Testen)

Wer Zuhause daran weiterprogrammieren möchte, braucht ausserdem noch ein Programmierkabel für LPT Anschluss. Dieses kann aus einem alten Druckerkabel gebastelt werden. Falls kein solches vorhanden ist, können die Bauteile auch bei mir bestellt werden.

Wer Sonderwünsche hat (Summer um die Uhr zu einem Wecker zu erweitern o.ä), soll sich bitte möglichst früh mit mir (andrmuel auf ee punkt ethz punkt ch) in Verbindung setzen.

Bei Unklarheiten bitte Mitteilung an mich, oder Frage direkt hier hinschreiben.

Interessenten

  • hernani (bitte mir auch Programmierkabel besorgen, danke!)
  • Silicium (mit bitte auch ein Programmierkabel)
  • Disenchant (benötige auch ein Programmierkabel, LEDs nehm ich 17 rote thx)
  • adi (*UPDATE* Das Teil rockt! :-) )
Meine Werkzeuge