Geschicklichkeitsspiel: Der heiße Draht

Luxusversion des bekannten Geschicklichkeitsspiels mit einem AVR-Controller. Hierbei gilt es eine Drahtschlaufe schnellstmöglich an einem gebogenem Draht entlang zu führen - ohne diesen zu berühren. Mit Zeitmessung, Anzeige per LCD und 1-Bit Soundausgabe.
Der heiße Draht

Bild 1: 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.

Ausgefräste Regalbretter

Bild 2: Ausgefräste Regalbretter

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.

Display, Lautsprecher, 9V-Batterie und der ATMega162

Bild 3: Display, Lautsprecher, 9V-Batterie und der ATMega162

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.

2x8-Zeichen LCD-Display

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 Externer LinkBTc Sound Encoder von Roman Black verwendet. Wie man im Video hören kann, klingt das ganze recht passabel.

Download

thomaspfeifer.net_der_heisse_draht.zip (17 KB) -
Tags: selbstbau spiel selber bauen diy Motorikspiel Party Motorik partyspiel partyspaß geschicklichkeitsspiel spielzeug zitterspiel buzz wire Wire loop game Atmel AVR Mikrocontroller Projekte Projekt uC diy selbstbau tutorial µC selbstgebaut schaltung schaltplan schema bauplan bauanleitung schematic programmierung elektronik controller embedded Atmega8 Atmega32 arduino bascom avr-gcc avr studio atmega microcontroller isp