Ping-Pong selbst programmieren

von Burkhard Kainka
ELO 2009
Elektronik-Labor  Labortagebuch  ELO  



Den Kern des Spiels bildet ein ATmega8-Controller. Eine Matrix mit 120 LEDs ist in zehn Reihen mit je 12 LEDs angeordnet. Der Mikrocontroller steuert die Reihen in einem Multiplex-Verfahren. Dabei werden die Anoden direkt über Ports angesteuert, die Kathoden über zwei Schieberegister HC4094.

Die Potis werden über ADC6 und ADC7 abgefragt. Das obere Ende der Potis liegt an VCC, das untere Ende am Port PD2 (INT0). Nach dem Ende eines Spiels schaltet das Programm PD2 hoch, sodass keine Spannung an den Potis liegt. Alle LEDs werden abgeschaltet, der AD-Wandler gestoppt und der Mikrocontroller in den Power-Down-Modus versetzt. Der Stromverbrauch sinkt damit auf unter 1 µA. Deshalb wird kein Hauptschalter benötigt. An PD2 und an GND liegt aber auch der Münzkontakt (K1 und K2). Er kann damit einen Interrupt auslösen und das Spiel neu starten.

 

Auf der Platine finden Sie zahlreiche nicht verwendete Anschlüsse. Sie werden teilweise für die Produktion benötigt und sind auch für eigene Projekte nützlich. Über den sechspoligen ISP-Anschluss (von unten bestückt) können Sie den Controller neu programmieren und damit eigene Projekte entwickeln. Tun Sie dies jedoch nur, wenn Sie bereits über Erfahrungen mit Mikrocontrollern verfügen, denn bei einem Fehler könnte das System Schaden erleiden. Zusätzlich gibt es acht freie Portanschlüsse für beliebige Aufgaben.

 

Der Anschluss C4 ist auch in der mitgelieferten Firmware aktiv und dient als Testeingang. Wenn Sie C4 an GND legen und dann die Betriebsspannung anlegen bzw. einen Reset auslösen, erscheint vor dem eigentlichen Spiel ein Display-Test, bei dem alle LED angesteuert werden. Um den Testlauf zu beenden muss noch einmal die Batterie entfernt werden.

 
 



Wer ein STK500 oder ein ähnliches Programmiergerät hat kann eigene Programme auf der Pingpong-Platine laufen lassen. Für die Flash-Programmierung gibt es den sechspoligen ISP-Anschluss. Hier muss ein Pfostenstecker von der Rückseite her bestückt werden.

 

In der STK-Software muss der ATmega8 einegstellt werden. Und schon klappt die Verbindung!

 

Mit dem STK500 kann man nicht nur den Flash-Bereich überschreiben sondern auch die Fuses. Achtung, hier man man Fehler machen und sich die Platine abschießen. Wichtig ist, dass die Fuses auf den internen 8-MHz-Oszillator eingestellt sind. Am besten ändert man nichts an den Fuses.

 
Falls doch mal etwas schief geht und man keinen Takt mehr hat, kommt das Programmiergerät nicht mehr an die Fuses heran. Man kann sich manchmal mit einem externen Taktsignal an PB6 oder PB7 helfen. Dann werden die Fuses wieder richtig eingestellt und danach geht wieder alles.

Software

Wenn Sie das Schaltbild genau angesehen haben, über Bascom oder eine andere Programmiersprache verfügen und etwas Erfahrung haben, können Sie nun gleich loslegen und eigene Software für die Platine entwickeln. Wenn Sie nach eigenen Versuchen den Originalzustand wieder herstellen wollen brauchen Sie die Software. Der Controller ist nicht gegen Auslesen gesperrt. Sie können also eine Kopie anlegen. Aber es gibt eine weitere Hilfe: Die originale Firmware wird hier für den privaten Gebrauch als Hex-Datei freigestellt.

Downlaod Pingpong

Wenn Sie noch kein Pingpong besitzen, aber einen Mega8 und 120 LEDs in Ihrer Bastelkiste finden, können Sie im Prinzip das ganze Spiel nachbauen, z.B. in einer Großversion.




Elektronik-Labor  Labortagebuch  ELO