GPIO, Projekte

Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry Pi

In diesem Tutorial zeige ich, wie man mit einem Joystick ganz einfach mittels des Raspberry Pi’s auf seinen MAX7219 LED Matrizen das Retro Spiel Pong spielen kann. Dazu gibt es noch ein kleines Demo Video, welches vielleicht auf den Geschmack bringt ūüėČ

 

Zubehör

Aufbau

Den Aufbau der Matrizen zeige ich bereits hier, den Aufbau des Joysticks wiederum hier.
Du solltest beide Tutorials durchlaufen haben, bevor du weiter gehst.

Die Pin Belegung des Raspberrys sieht folgendermaßen aus:

RaspberryPiMCP3008MAX7219
Pin 2 (5V)VCC
Pin 1 (3.3V)Pin 16 (VDD)¬†—
Pin 1 (3.3V)Pin 15 (VREF)¬†—
Pin 6 (GND)Pin 14 (AGND) GND
Pin 23 (SCLK)Pin 13 (CLK) CLK
Pin 21 (MISO)Pin 12 (DOUT)¬†—
Pin 19 (MOSI)Pin 11 (DIN) DIN
Pin 24 (CE0) CS
Pin 26 (CE1)Pin 10 (CS/SHDN)¬†—
Pin 6 (GND)Pin 9 (DGND)¬†—

 

Jene Pinsignale, die an beide Module angeschlossen werden, kannst du z.B. mit Hilfe eines Breadboards „verdoppeln“ (dies betrifft GND, MOSI und SCLK).

Vom MCP3008 Baustein m√ľssen die Verbindungen noch zum Joystick gehen. Wenn du dies bereit im vorherigen Tutorial gemacht hast, kannst du weiter zum n√§chsten Schritt (die Belegung ist identisch).

RPi/MCP3008Joystick
 Raspberry Pin 6 (GND) GND
 Raspberry Pin 1 (3.3V) +5V
 Pin 1 (CH0) SW
 Pin 3 (CH2) VRy

 

Software

Der Einfachheit halber habe ich ein GitHub Repository mit den Skripten erstellt. Dies enth√§lt u.a. auch die Bibliothek f√ľr die MAX7219 Matrizen und ist direkt lauff√§hig.

sudo git clone https://github.com/tutRPi/Pong-Game-MAX7219 && cd Pong-Game-MAX7219

(git muss nat√ľrlich installiert sein)

Solltest du nicht 3×3 Matrizen verwenden, musst du dies in der multilineMAX7219.py mittels

sudo nano multilineMAX7219.py

verändern (Zeile 113/114).

Nun sollte alles bereit sein. Du kannst es nun starten:

sudo python pong.py

Sollte dir das Spiel zu schwerr oder zu einfach erscheinen, kannst du dies in der pong.py Datei verändern (Zeile 56: eine Zahl zwischen 0 und 1, wobei ich einen Wert um 0.8 empfehle). In der Datei kannst du auch noch andere Parameter, wie die Höhe des Boardes oder die Geschwindigkeit verstellen.

Demo Video

Hier habe ich noch ein kleines Demo Video gemacht.

, , , , ,


15 Kommentare

  1. Lukas sagt:

    Könnte man das auch mit 2 Joysticks als Multiplayer machen ?

  2. J-L sagt:

    Habe vor im Zuge eines Schul-Projekts das Pong Spiel mittels Java zu realisieren ( Phyton sollen wir nicht nutzen) ….hast du zuf√§llig ein paar Tipps f√ľr mich wie ich das umsetzen kann? Sollte doch auch machbar sein, oder?

    • Felix sagt:

      Je nachdem wie sicher du im Java Programmieren bist, sollte das kein Problem sein. Als Tipp, hier eine Java GPIO Bibliothek: http://pi4j.com/

    • J-L sagt:

      Danke f√ľr die Bibliothek, werde sie mir mal anschauen.

      Naja noch nicht so sicher, mache das noch nicht so lange ūüėČ
      daher die Frage ob du ein paar Tipps hast (ob du Ahnung von Java hast und eventuell bei weiteren Fragen weiter helfen kannst).

    • Felix sagt:

      Ahnung von Java habe ich, allerdings bisher kein Raspberry Pi Projekt mit Java umgesetzt.

    • Jan sagt:

      Hi,
      Habe dein Projekt soweit umgesetzt, allerdings habe ich noch einen Fehler.
      Das Spiel Pong läuft irgendwie im Hintergrund, also er sagt mir nach einiger Zeit ob ich gewonnen oder verloren habe.
      Aber bei mir leuchten alle LED’s und das Spiel wird nicht angezeigt.
      Hast du eine Idee woran das liegt ? und wen wie löse ich es ^^

    • Felix sagt:

      Klingt danach, als ob es nicht richtig verbunden ist. Funktioniert die Demo Anzeige der Bibliothek wie im Video?

    • Jan sagt:

      in wie fern nicht richtig verbunden was falsch gelötet oder falsch gesteckt,
      welche demo anzeige ?

    • Felix sagt:

      Ja, alles davon könnte die Ursache sein.
      Die Demo hier: Raspberry Pi Bibliothek f√ľr mehrzeilige m x n MAX7219 LED Matrizen

  3. Jan sagt:

    ok habe eben mal schnell getestet
    python multilineMAX7219_demo.py
    geht und die es wird angezeigt

  4. Jan sagt:

    so hab jetzt noch mal getestet und jetzt ist es so das in den ersten beiden 8×8 Feldern das spiel teilweise angezeigt wird und die anderen 8×8 Felder leuchten noch komplett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Blog abonnieren

Abonniere Tutorials-RaspberryPi, um kein Tutorial mehr zu verpassen!