Inhaltsverzeichnis:
- Schritt 1: ESP32-Boards, Arduino IDE-Installation und VGA-Bibliothekskonfiguration
- Schritt 2: Hochladen von "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"
- Schritt 3: Anschließen des VGA-Ports
- Schritt 4: Verbinden Sie die vier Tasten
- Schritt 5: Verbinden Sie den Joystick
- Schritt 6: Fazit und Bestätigung
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
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
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:
- Installieren Sie die letzte Arduino-IDE
- Konfigurieren Sie den ESP32 in der IDE und
- 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
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
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
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
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:
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 9 Schritte
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um die Zeit auf dem LCD anzuzeigen
M5STACK So zeigen Sie Temperatur, Feuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 6 Schritte
M5STACK So zeigen Sie Temperatur, Luftfeuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um Temperatur, Luftfeuchtigkeit und Druck mit dem ENV-Sensor (DHT12, BMP280, BMM150)
Google-Suche auf ESP32: 7 Schritte
Google-Suche auf ESP32: In diesem Tutorial zeige ich Ihnen, wie Sie Google-Suchen mit einem ESP32 durchführen. Das Ergebnis selbst ist nicht sehr nützlich, da die Suchergebnisse im seriellen Monitor des Computers angezeigt werden, aber es ist eine coole Sache, die Leistung von ESP32 zu zeigen. Der Code kann
Arcade: 3 Schritte (mit Bildern)
Arcade: Vor 20 Jahren habe ich Run and Gun @ the Arcade gespielt und jetzt beschlossen, meine eigene Arcade zu bauen Entwurf
So bauen Sie eine Nintendo-Arcade: 5 Schritte (mit Bildern)
So bauen Sie eine Nintendo-Arcade: Dieses Instructable zeigt Ihnen, wie ich meine Nintendo-Arcade gebaut habe. Es ist ein Bartop-Schrank, der ein originales Nintendo-Spiel spielt. Die Spielhalle ist komplett eigenständig mit einem Netzschalter für alles. Sie können ein Video der Spielhalle in Aktion sehen unter