Geschicklichkeitsspiel: Der heiße Draht
Aufbau
Als Standfuß und Gehäuse dienen zwei Regalbretter aus dem Baumarkt. Diese wurden mit ein paar Schrauben aufeinander geschraubt. Ein paar Gummifüße sorgen für einen festen Stand. Um Platz für die Elektronik zu schaffen, wurden in die Bretter entsprechende Aussparungen gefräst. Als "heißer Draht" dient ein Stück dünnes Messing-Rohr, welches mit Sand gefüllt und in die gewünschte Form gebogen wurde. An beiden Enden wurde der Draht durch kurze Schlauchstücke isoliert. Zwei Messingscheiben dienen als Start- und Ende-Kontakt. Als Drahtschlaufe wurde ein Schlüsselring verwendet, der mit viel Heißkleber an dem Plastikteil eines Kugelschreibers geklebt wurde.
Hardware
Hirn des Spiels ist ein Atmel-ATMega162. Dieser etwas ungeläufige Controller wurde verwendet weil er gerade in der Bastelkiste herum lag. Der kleinere und besser erhältlichere ATMega8 kann, mit kleinen Änderungen an der Software, genau so gut verwendet werde. Der Mikrocontroller wurde in Minimalbeschaltung mit Blockkondensator, Reset-Pullup, ISP-Anschluß und 7805-Spannungsregler auf einem kleinem Stück Lochrasterplatine aufgebaut.
Zur Anzeige der Zeiten wurde ein LCD-Display mit HD44780-kompatiblem Controller verwendet. Dieses wurde aus einem ausgemustertem HP Laserjet IIIp ausgebaut. Da die Pinbelegung des Displays unbekannt war, wurde diese mit einem Durchgangsprüfer und einer Nadel an den Pins des LCD-Controllers durchgemessen und das Display wie folgt mit dem AVR-Controller verbunden:
Bez. | AVR-Pin | LCD-Pin |
RS | 2 | 12 |
E | 3 | 11 |
D4 | 4 | 14 |
D5 | 5 | 13 |
D6 | 6 | 16 |
D7 | 7 | 15 |
GND | - | 10 |
+5V | - | 9 |
Pinbelegung und Anschluß des LCD-Displays (Typ EDMUL082301G / PC-PF70A TPB-H. V.0). Das Display wird im 4-Bit-Modus betrieben. R/W ist fest mit GND verbunden. Selbstverständlich kann jedes beliebige HD44780-kompatible Display verwendet werden.
Bild 4: 2x8-Zeichen LCD-Display
Software
Die Software wurde in C geschrieben und kann mit dem AVR-GCC kompiliert werden. Hauptbestandteil ist eine Zustandsmaschine (finite state machine / FSM / Mealy-Automat). Diese wird per Timer-Interrupt 1000x pro Sekunde aufgerufen, wertet die Eingänge aus und zählt die Zeiten hoch. Je nach Zustand wird auch das LCD-Display entsprechend aktualisiert.
Soundausgabe
Video 1: Video vom heißen Draht
Die Soundausgabe erfolgt mit nur einem Bit. Die Samples sind im Flash abgelegt und werden mit 22050Hz abgespielt. Dabei diente ein Codebeispiel aus dem Netz als Vorlage (Quelle?). Um eine etwas höhere Lautstärke zu erreichen, wurde der Lautsprecher an zwei IO-Pins angeschlossen, welche gegenphasig angesteuert werden. Für die Konvertierung des Wave-Files in den 1-Bit-Stream wurde der BTc Sound Encoder von Roman Black verwendet. Wie man im Video hören kann, klingt das ganze recht passabel.