Autorennen auf der Pong Platine 

von Piotr Platek, ELO-Contest 2010

Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller


1

 

Meine Lieblings-Computerspiele sind "Autorennen". Als ich vergangenes Jahr kurz vor Weihnachten die Pong-Platine entdeckt habe, wollte ich als erstes ein Autorennenspiel für die Platine entwickeln. Das habe ich dann, einfach auch zum Kennenlernen der Pong-Platine und der Programmiersprache BASCOM, angefangen umzusetzen und möchte nun meine Erfahrungen und das Ergebnis mit den ELO-Lesern teilen.

 

8


Die Pong-Platine soll, zumindest in symbolischer Form, eine Fahrbahn mit einem Auto darauf darstellen. Die Fahrbahn wird von oben nach unten "gescrollt", wobei der Streckenverlauf zufällig sein soll. Die Aufgabe des Spielers ist es nun, auf der Fahrbahn zu bleiben, die Begrenzungslinien nicht zu überschreiten und dabei so schnell wie möglich zu fahren. Sieger ist, wer die Gesamtstrecke am schnellsten zurücklegt. Für die Steuerung des Autos werden die beiden Potentiometer der Pong-Platine verwendet, wobei der linke die Geschwindigkeit bestimmt, mit die Fahrbahn nach unten "scrollt", und der rechte das Auto waagerecht hin und her verschiebt (links/rechts).

 

2

 

Als "Retro-Spiel" sollte es idealerweise auch einen der Geschwindigkeit entsprechenden "Retro-Motorengeräusch" erzeugen. Genaugenommen haben wir bis heute noch keine einzige Pong-Anwendung mit einem Ton gesehen bzw. gehört. Hier kann uns ein Piezo-Summer (Piezokeramischer Schallwandler - Conrad Artikel-Nr.: 751669-62) weiterhelfen. Für die Tonerzeugung wird eine Rechteckewelle genutzt, d.h. die entsprechenden „0" und „1"-Werte werden direkt an den Piezo-Summer geschickt. Die Frequenz der Rechteckwelle bestimmt die Tonfrequenz und damit die Tonhöhe. Der hohe Eigenwiderstand des Summers erlaubt es ihn direkt an den Ausgangs-Pin (Ausgang des µ-Controllers) anzuschließen.

 

Die Programmiersprache BASCOM selbst bietet einen Befehl ("SOUND") zur Tongenerierung an, der aber die Programmausführung derart beeinflußt, dass es zu stockenden Bewegungen der Fahrbahn kommt. Somit ist der Befehl hier ungeeignet. Die Tonerzeugung muss im Hintergrund unabhängig von der Hauptprogrammschleife erfolgen. Das Word „Hintergrund" führt uns quasi automatisch hin zu einer "Interrupt"-gesteuerten Lösung, bei der wir den "Timer 1" verwenden. In der Routine der Interrupt-Verarbeitung des Timers 1 wird der Status des Ausgangs-Pin "PD0" im Zyklus 1-0-1-0 usw. verändert.

 

3  

 

Download:  1003Carrace.zip


 


Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller