Inhaltsverzeichnis:

ESP32 VGA Arcade-Spiele und Joystick - Gunook
ESP32 VGA Arcade-Spiele und Joystick - Gunook

Video: ESP32 VGA Arcade-Spiele und Joystick - Gunook

Video: ESP32 VGA Arcade-Spiele und Joystick - Gunook
Video: ESP32 VGA four games & joystick 2024, Juli
Anonim
Image
Image
ESP32 VGA Arcade-Spiele und Joystick
ESP32 VGA Arcade-Spiele und Joystick
ESP32 VGA Arcade-Spiele und Joystick
ESP32 VGA Arcade-Spiele und Joystick

In diesem anweisbaren werde ich zeigen, wie man vier Arcade-ähnliche Spiele reproduziert - Tetris - Snake - Breakout - Bomber - mit einem ESP32, mit dem Ausgang für einen VGA-Monitor.

Die Auflösung beträgt 320 x 200 Pixel, in 8 Farben. Ich habe zuvor eine Version mit einem Arduino Uno gemacht (siehe hier), aber die Auflösung betrug nur 120 x 60 Pixel, 4 Farben und der Arduino-Speicher war fast voll. Dank der höheren Leistungen des ESP32 sind sowohl die Auflösung als auch die Spielbarkeit höher. Darüber hinaus ist noch viel Speicher verfügbar, sodass das Hinzufügen neuer Spiele in Zukunft problemlos möglich ist.

Ich werde auch zeigen, wie man einen einfachen Joystick über ein RS232-Kabel anschließen kann. Ich verwende die gleiche Pinbelegung des Commodore 64.

Dieses Projekt wird durch die fantastische ESP32 VGA-Bibliothek von Fabrizio Di Vittorio ermöglicht. Weitere Informationen finden Sie hier.

Schritt 1: ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration

ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration
ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration
ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration
ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration
ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration
ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration

Zunächst müssen Sie eine ESP32-Revision 1 oder höher kaufen. Es gibt viele Versionen, aber ich empfehle, eine mit vielen Pins zu wählen, vorzugsweise ein Modell wie das auf diesem Bild mit 38 Pins. Ich benutze diese Version, aber ich denke, viele andere sind auch in Ordnung. Bei ebay finden Sie dieses Modell für unter 7 Euro inklusive Versand.

Sobald Sie das Board erhalten haben, müssen Sie mit den folgenden drei Unterschritten fortfahren:

  1. Installieren Sie die letzte Arduino-IDE
  2. Konfigurieren Sie den ESP32 in der IDE und
  3. Laden Sie die VGA-Bibliothek herunter und installieren Sie sie

Unterschritt 1. Es gibt verschiedene Methoden, um den ESP32 zu programmieren, aber hier müssen Sie die Arduino IDE verwenden (ich verwende übrigens die Version 1.8.9). Um es zu installieren, können Sie auf die Arduino IDE-Seite gehen und den Anweisungen folgen.

Unterschritt 2. Sobald der vorherige Vorgang abgeschlossen ist, müssen Sie Ihren ESP32 in der Arduino IDE konfigurieren. Das ist nicht trivial, da der ESP32 darin (noch?) nicht nativ ist. Sie können diesem Tutorial oder den folgenden Schritten folgen.

1) Öffnen Sie die Arduino-IDE

2) öffne das Einstellungsfenster, Datei/Einstellung, alternativ "Strg+Komma" drücken

3) Gehen Sie zu „Additional Board Manager URLs“, kopieren Sie den folgenden Text und fügen Sie ihn ein:

https://dl.espressif.com/dl/package_esp32_index.js…

und klicken Sie auf die Schaltfläche OK.

4) Offener Board-Manager. Gehe zu Tools/Board/Boards-Manager…

5) Suchen Sie nach ESP32 und drücken Sie die Installationsschaltfläche für das „ESP32 by Espressif Systems“:

6) An dieser Stelle, wenn Sie Ihren ESP32 zum ersten Mal anschließen, sollten Sie das richtige Modell aus der langen Liste der verfügbaren ESP32-Boards auswählen (siehe Bild in diesem Schritt). Bei Zweifeln am Modell wählen Sie einfach das generische, also das erste. Für mich geht das.

7) Das System sollte auch den richtigen USB (COM)-Port und die Upload-Geschwindigkeit (normalerweise 921600) auswählen. An dieser Stelle sollte die Verbindung zwischen Ihrem PC und dem ESP32-Board hergestellt werden.

Unterschritt 3. Abschließend müssen Sie die FabGL VGA-Bibliothek installieren. Klicken Sie hier, um die komplette komprimierte Datei herunterzuladen. Entpacken Sie es und kopieren Sie den resultierenden Ordner (FabGL-master) in den Arduino IDE-Bibliotheksordner, der wie folgt aussieht:

"…\arduino-1.8.12\Bibliotheken".

Schritt 2: Hochladen von "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Laden Sie ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip unten in diesem Schritt herunter. Entpacken und öffnen Sie es mit der Arduino IDE und laden Sie es dann auf Ihren ESP32 hoch. Wenn Sie keine Fehlermeldungen haben, sollte der Code bereits ausgeführt werden und Sie müssen nur den VGA-Anschluss und die Tasten (oder Joystick) anschließen.

Schritt 3: Anschließen des VGA-Ports

Anschließen des VGA-Ports
Anschließen des VGA-Ports

Sie benötigen folgende Teile:

  • einen DSUB15-Anschluss, d. h. eine VGA-Buchse oder ein zu schneidendes VGA-Kabel.
  • drei 270 Ohm Widerstände.

Verbinden Sie die ESP32 GPIO-Pins 2, 15 und 21 über die 270-Ohm-Widerstände mit VGA Rot, Grün und Blau.

Verbinden Sie VGA Hsync und Vsync mit den ESP32 GPIO-Pins 17 bzw. 4.

Verbinden Sie die DSUB15-Steckerstifte 5, 6, 7, 8 und 10 mit ESP32 GND.

Informationen zur Pindefinition des VGA-DSUB15-Anschlusses finden Sie in der Abbildung in diesem Schritt. Achtung, das ist die Lötseite der Buchse.

Schritt 4: Verbinden Sie die vier Tasten

Verbinden Sie die vier Tasten
Verbinden Sie die vier Tasten
Verbinden Sie die vier Tasten
Verbinden Sie die vier Tasten
Verbinden Sie die vier Tasten
Verbinden Sie die vier Tasten

Wenn Sie keinen C64-Joystick haben, können Sie nach diesem Schritt vier Tasten anschließen. Wenn Sie den Joystick haben, können Sie diesen Schritt überspringen und zum nächsten springen, aber Sie können trotzdem sowohl die Tasten als auch den Joystick anschließen (sie sind sowieso "parallel").

Das Schema in diesem Schritt zeigt, wie Sie eine einzelne Taste (normalerweise geöffnet) von +5 V an den angegebenen ESP32-Pin anschließen.

Beachten Sie, dass Sie den ESP-Pin auch über einen 1 bis 5 kOhm-Widerstand mit GND verbinden müssen. Auf diese Weise liegt der ESP-Pin beim Loslassen (Öffnen) der Taste auf genau null Volt. Genauer gesagt müssen Sie vier Tasten in der folgenden Reihenfolge verbinden:

  • Pin 12 zum rechten Knopf
  • Pin 25 zum Aufwärts-Knopf
  • Pin 14 zur linken Taste
  • Pin 35 auf Down-Taste

Schritt 5: Verbinden Sie den Joystick

Verbinden Sie den Joystick
Verbinden Sie den Joystick
Verbinden Sie den Joystick
Verbinden Sie den Joystick
Verbinden Sie den Joystick
Verbinden Sie den Joystick

Ein C64-Joystick hat die im ersten Bild dieses Schrittes gezeigte Pinbelegung. Um es mit dem ESP32 zu verbinden, benötigen Sie einen 9-poligen DSUB-Stecker (d. h. eine Buchse), wie im zweiten Bild gezeigt. Ich habe einen mit freiliegenden Pins von einer alten elektronischen Platine entfernt. Sie können eine Heißluftpistole verwenden, um es zu entfernen (aber tun Sie es im Freien!).

Sie müssen die Pins in der numerischen Reihenfolge in diesen Bildern verbinden. Beachten Sie, dass sich das Schema auf die Joystick-Seite bezieht, also den Anschluss seiner Buchse darstellt. Die Buchse (männlich) zum Anschluss an den ESP32 hat die Pins mit einer "Spiegel"-Anordnung. Denken Sie im Zweifelsfall daran, dass die Pin-Nummer immer auf den Steckern und Buchsen angegeben ist, wie im dritten Bild gezeigt.

Wenn Sie die Spiele nur mit dem Joystick steuern möchten, verbinden Sie seinen gemeinsamen Pin (9) mit ESP32 +5V und die Joystick-Pins 1, 2, 3, 4 und 6 mit den ESP-Pins gemäß der folgenden Liste.

  • ESP-Pin 12 zur rechten Taste (RS232-Pin 4)
  • ESP-Pin 14 zur linken Taste (RS232-Pin 3)
  • ESP-Pin 35 auf Down-Taste (RS232-Pin 2)
  • ESP-Pin 25 auf Up-Taste (RS232-Pin 1 und 6, d. h. Joystick-Feuer)

Beachten Sie, dass die ESP-Pins 12, 14, 25 und 35 auch über einen 1 bis 5 kOhm-Widerstand mit GND verbunden werden müssen. Auf diese Weise liegt der ESP-Pin beim Loslassen (Öffnen) der Taste auf genau null Volt.

NB2 Joystick UP-Position und Feuerknopf sind zusammen mit ESP-Pin 25- verbunden

Ich habe vier Tasten auf der Platine angeschlossen, auf diese Weise brauche ich den Joystick nicht zum Spielen (obwohl mit dem Joystick viel lustiger ist). Auch hier muss der RS232-Pin 9 mit +5 V verbunden werden und die Joystick-Pins liegen nur parallel zu den Tasten.

Schritt 6: Fazit und Bestätigung

Fazit und Danksagung
Fazit und Danksagung

Wenn alles richtig funktioniert, schließen Sie einfach den VGA-Monitor an und Sie sollten in der Lage sein, ein Spiel im alten Stil zu genießen!

Sie können auch eine Mandelbrot-Menge mit einer Auflösung von 640 x 350 Pixel zeichnen, nur um die Fähigkeiten der VGA-Bibliothek zu testen.

Beachten Sie, dass der Code so geschrieben ist, dass andere Spiele in Zukunft problemlos hinzugefügt werden können (der ESP32 hat viel Platz!). Wenn dieses Projekt genug Interesse bekommt, kann ich das tun…

Schließlich möchte ich Fabrizio Di Vittorio meine Panzer für seine fantastische ESP32 VGA-Bibliothek ausdrücken. Für weitere Details, Beispiele und… Space Invaders besuchen Sie seine Website.

Empfohlen: