Inhaltsverzeichnis:

ESP8266 VGA Pong - Gunook
ESP8266 VGA Pong - Gunook

Video: ESP8266 VGA Pong - Gunook

Video: ESP8266 VGA Pong - Gunook
Video: ESP8266 VGA Pong 2024, Juli
Anonim
Image
Image
Materialliste
Materialliste

In diesem Instructables werde ich zeigen, wie man mit einem ESP8266 und wenigen anderen Komponenten eine Reproduktion des klassischen Spiels Pong für einen VGA-Monitor erstellt.

Dieses Spiel wird durch die kürzlich auf GitHub von Sandro Maffiodo (alias Smaffer) veröffentlichte EspVGAx-Bibliothek ermöglicht und, soweit ich weiß, ist dies das erste Spiel, das es ausnutzt.

Die Bibliothek implementiert eine Auflösung von 512 x 480 Pixel, die in einem Framebuffer im RAM gespeichert wird, was 30720 Bytes benötigt. Die Auflösung ist im Vergleich zu Arduino TVout oder VGAx enorm (128 x 96 bzw. 120 x 60 Pixel). Ich hoffe, dieses Spiel inspiriert andere Programmierer dazu, komplexere Spiele zu entwickeln oder zu reproduzieren.

Schritt 1: Materialliste

Die EspVGAx-Bibliothek erfordert einen ESP8266 mit allen GPIOs, wie ESP-12E, NodeMCU-12E-Board oder jedes Board, das GPIO5 (D1), GPIO4 (D2) und GPIO13 (D7) enthält

Insbesondere habe ich verwendet:

  • ein ESP8266 NodeMCU-12E (Link hier)
  • einen DSUB15-Anschluss (d. h. eine VGA-Buchse)
  • ein 330 Ohm Widerstand
  • ein weiterer Widerstand (ca. 1 bis 3 kOhm)
  • zwei 10 kOhm Potentiometer
  • ein Druckknopf (n.o.)
  • zwei Dioden (wie 1N4007s)
  • ein Steckbrett
  • Drähte

Ich habe den DSUB15-Anschluss von einer alten VGA-PC-Platine. Alternativ können Sie auch ein altes VGA-Kabel abschneiden und die Drähte direkt mit dem Steckbrett verbinden.

Schritt 2: Bibliotheks- und Skizzen-Upload

Bibliotheks- und Skizzen-Upload
Bibliotheks- und Skizzen-Upload

Es gibt verschiedene Methoden zum Programmieren und ESP8266; Ich habe die Arduino IDE verwendet, um Pong zu schreiben und den Code hochzuladen.

Bitte beachten Sie, dass die EspVGAx-Bibliothek für Arduino IDE 1.8.1 funktioniert. Wenn Sie andere Versionen haben, laden Sie die.zip-Dateien am besten herunter und entpacken Sie sie in einem speziellen Ordner. Die Windows-Version ist da. Versionen für andere OS sind hier.

Danach sollten Sie die EspVGAx-Bibliothek von der GithHub-Seite hier herunterladen (direkter Link für die Zip-Version hier) und in den Ordnerbibliotheken in der Arduino-Software entpacken.

NB Es gibt einen kleinen Fehler in der Datei espvgax_draw.h. Um es zu korrigieren, ersetzen Sie einfach die Zeile 17:

while (x0%32) { mit while (x0%32 && sw > 32) {

Schließlich können Sie ESP8266_Pong.rar am Ende dieses Schrittes herunterladen.

Nach dem Entpacken müssen Sie die Arduino-IDE konfigurieren, um sie auf Ihren ESP8266 hochzuladen.

Wenn Sie es noch nie getan haben, finden Sie alle erforderlichen Anweisungen zu diesen Instructables, insbesondere in Schritt 2.

Sobald alles konfiguriert ist, sollten die ESP8266-Einstellungen wie im Bild oben gezeigt aussehen.

Wenn Sie den Code fehlerfrei hochladen können, können Sie mit dem Zusammenbau der Teile beginnen.

Schritt 3: Anschließen der Teile: der VGA-Anschluss

Anschließen der Teile: der VGA-Anschluss
Anschließen der Teile: der VGA-Anschluss
Anschließen der Teile: der VGA-Anschluss
Anschließen der Teile: der VGA-Anschluss
Anschließen der Teile: der VGA-Anschluss
Anschließen der Teile: der VGA-Anschluss

Ich empfehle, zuerst den VGA-Port anzuschließen, wie in den Bildern oben gezeigt. Bitte beachten Sie, dass Sie durch Verbinden der drei Pins Rot, Grün und Blau (d. h. Pins 1, 2 und 3 am DSUB15-Anschluss) ein Schwarzweißbild auf Ihrem Bildschirm haben. Sie können auch verschiedene Farbkombinationen haben. Weitere Informationen finden Sie auf der GitHub-Seite der Bibliothek.

Des Weiteren sollten Sie zwischen den RGB-Pins und dem D7 (GPIO13) am ESP8266 einen 330 Ohm Widerstand anschließen. Dies gab mir ein etwas gräuliches Bild auf meinem Monitor, also entschied ich mich nach einigen Versuchen, es überhaupt zu entfernen.

Wenn alles richtig funktioniert, können Sie zu diesem Zeitpunkt bereits den Monitor anschließen und den Startbildschirm des Spiels mit dem Banner "ESP8266 VGAx Pong" sehen.

Schritt 4: Anschließen der Teile: die Potentiometer und die Taste

Anschließen der Teile: Potentiometer und Taste
Anschließen der Teile: Potentiometer und Taste

Der Taster muss zwischen 3,3V und Pin D0 (GPIO16) angeschlossen werden. Verbinden Sie auch den 1 bis 3 kOhm Widerstand von D0 mit Masse. Dadurch wird vermieden, dass D0 bei geöffneter Taste einen unbestimmten Status hat.

Der Anschluss der beiden Potentiometer ist weniger trivial, tatsächlich hat der ESP8266 nur einen analogen Eingangsport A0 (ADC0)! Der Trick besteht darin, beide Pot.s-Ausgänge mit demselben Port zu verbinden und sie zu "multiplexen". Multiplexing bedeutet einfach, dass Sie ein Potentiometer einschalten, ablesen, dann ausschalten und zum zweiten übergehen.

Wenn Sie mehr über diese Methode erfahren möchten, können Sie dieses Instructable lesen.

Verbinden Sie ein Potentiometer-Extrem mit GND, das andere Extrem mit D5 für das linke Player-Potentiometer und D6 für das rechte Player-Potentiometer.

Jeder zentrale Pin des Potentiometers muss mit einer einzelnen Diode verbunden werden, und die anderen Seiten der Dioden müssen mit A0 (ADC0) verbunden werden, mit der im obigen Bild gezeigten Polarität.

Schritt 5: Fazit und Danksagung

Ich danke Sandro Maffiodo - SMAFFER - für die ESPVGAX-Bibliothek. Ohne sie wäre dieses Spiel nicht möglich.

Ich hoffe, dass dieses Instructable eine Inspiration für andere Programmierer sein wird, um Reproduktionen komplexerer klassischer Arcade-Spiele mit dem ESP8266 zu machen, das viel weniger Einschränkungen hat als das Arduino.

Schließlich habe ich dieses Instructable geschrieben, um es beim Toys Contest einzureichen: Wenn Sie es mögen oder reproduzieren, nehmen Sie sich bitte einen Moment Zeit, um es abzustimmen!

Empfohlen: