HAPPY 50TH BIRTHDAY PONG GAME

Alles Gute zu Deinem 50. Geburtstag PONG GAME (1972-2022).

Das 1972 von Atari veröffentlichte Pong wurde zum ersten weltweit beliebten Videospiel und in den 1970er-Jahren zunächst auf Geräten in Spielhallen bekannt. Es gilt als Urvater der Videospiele, obgleich schon zuvor Videospiele entwickelt worden waren. (Wikipedia)

Im Corona Jahr 2020 und in Zeiten des Klimawandels bin ich auf die Webseite Geoff’s Projects aufmerksam geworden. Da ich ein begeisterter Computer-Spieler bin und Strom sparen wollte (eine Spielekonsole verbraucht im Leerlauf laut Chip 170 Watt) habe ich mich entschlossen das Projekt “The Game of Pong” von Geoff’s Projects Webseite nachzubauen. Die nötige Hardware ist ziemlich simpel und besteht aus ein paar Kondensatoren, Widerständen, Cinch-Buchsen (Stereo Audio + Video), Ein- Ausschalter, zwei Potentiometern, zwei Tastern und einem Batteriehalter. Das Herz ist ein Microchip PIC 16F688 8-bit Mikrocontroller welcher von einem 16 MHz Quarz (nein, nicht Gigaherz) getaktet wird. Der Mikrocontroller hat einen 7KB “großen” Programmspeicher und kann mit einer Betriebsspannung von 2.0-5.5 Volt betrieben werden. Den C Source-Code und den Schaltplan kann man von Geoff’s Webseite downloaden und erhält dort auch die nötigen Hintergrundinformationen und Dateien zum Nachbau des Projekts.

Der original C Source-Code besteht aus nur zwei Dateien und ist in typischem 80er Jahre C-Style programmiert. Ich habe den Code komplett überarbeitet und in mehrere Dateien aufgeteilt:

  • main.c
  • collision.h
  • bat.h
  • ball.h
  • goal.h
  • interrupt.h
  • screen.h
  • init.h
  • skill.h
  • debounce.h
  • pic16f688.h
  • sound.h
  • SwapInWriteOutLoop.c

Außerdem habe ich die 4 original Skills auf 8 erweitert, da ich noch Platz im Programmspeicher des PIC frei hatte und mit dem Code experimentieren wollte.

PIC

Die Beschaltung des PIC 16F688 sieht folgendermaßen aus:

                           -----
 Vdd,        +5 Volts  1  |  1  | 14  Vss, GROUND
 OSC1,         XTAL 1  2  |  6  | 13  RA0, RUN SW & ISCP Pin 4
 OSC2,         XTAL 2  3  |  F  | 12  RA1, SKILL SW & ISCP Pin 5
 RA3,      ISCP Pin 1  4  |  6  | 11  RA2, VIDEO OUT
 RC5, +5V OUT FOR BAT  5  |  8  | 10  RC0, LEFT BAT
 RC4,                  6  |  8  |  9  RC1, RIGHT BAT
 RC3,       SOUND OUT  7  |     |  8  RC2, SYNC OUT
                           -----

C-Compiler

Die C-Compiler Ausgabe lieferte 0 Errors, 0 Warnings und 57% ROM Belegung:

Compiling main
      Memory usage:   ROM=57%      RAM=39% - 49%
      0 Errors,  0 Warnings.
Build Successful.

Bilder vom Projekt

Pong Platine mit PIC

Pong Platine mit Gehäuse

Pong Gehäuse

Pong Gehäuserückseite

Pong Screenshot

PIC Testschaltung

Als Vorübung zu diesem Projekt habe ich eine kleine Testschaltung für den PIC realisiert und eine LED mit dem PIC blinken lassen, das “Hello World!” der Elektronik.

Testschaltung PIC mit LED auf Breadboard

Tools

  • Lötkolben + Lötzinn
  • Multimeter
  • Schraubendreher
  • Flachzange
  • Seitenschneider
  • PIC Programmier-Tool
  • C-Compiler
  • Breadboard (optional)
  • Oszilloskop (optional)

Fazit

Das Projekt ist auch für Lötanfänger geeignet, da nur wenige Bauteile verlötet werden müssen. Falls man nicht löten möchte kann das Projekt auch auf einem Breadboard realisiert werden. Die Programmierung des PIC erfordert aber Kenntnisse im Umgang mit Mikrocontrollern und in der Programmiersprache C. Falls man die in Inline-Assembler programmierte Datei SwapInWriteOutLoop.c ändern möchte sind auch Assemblerkenntnisse nötig:

  ...
..swapf	lbuf +  0, w
..movwf	VIDEO_PORT
..movf	lbuf +  0, w
..movwf	VIDEO_PORT
  ...

Das Projekt hat mir sehr viel Spaß gemacht, das Spiel ist auch nach so vielen Jahren reizvoll und der Minimalismus des kompletten Projektes (Hardware, Software und Gameplay) hat mich sehr begeistert. Der Standby Stromverbrauch ist im Datenblatt des PIC mit 50nA (Nano Ampere) angegeben und der Betriebsstrom liegt im μA Bereich, das bedeutet ohne schlechtes Gewissen: Spielen bis der Arzt kommt - dem Klima wird dieses Spiel niemals Schaden und Angst vor der nächsten Stromrechnung muss man auch nicht haben. Außerdem ist es sehr nachhaltig da alle Bauteile bei einem Defekt ausgetauscht werden können.

Musik

#DIY #Elektronik #PONG #PIC #Retro #Games #Spiele #Videospiele #Klima #Klimawandel #Stromverbrauch