Inhaltsverzeichnis:
- Schritt 1: Materialliste
- Schritt 2: Bibliotheks- und Skizzen-Upload
- Schritt 3: Anschließen der Teile: der VGA-Anschluss
- Schritt 4: Anschließen der Teile: die Potentiometer und die Taste
- Schritt 5: Fazit und Danksagung
Video: ESP8266 VGA Pong - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
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
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
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
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:
2020 ESP8266: 3 Schritte
2020 ESP8266: Also schrieb dieser Lazy Old Geek (LOG) einige Instructables auf ESP8266-Modulen: https://www.instructables.com/id/ESP8266-as-Arduin … https://www.instructables.com/id/ ESP8266-as-Arduin … Ich habe noch mehrere ESP-01s und ESP-03s und habe versucht, sie zum Wo
ESP8266 - Tür- und Fenstersensoren - ESP8266. Hilfe für ältere Menschen (Vergesslichkeit): 5 Schritte
ESP8266 - Tür- und Fenstersensoren - ESP8266. Hilfe für ältere Menschen (Vergesslichkeit): ESP8266 - Tür- / Fenstersensoren mit GPIO 0 und GPIO 2 (IOT). Es kann im Web oder im lokalen Netzwerk mit Browsern angezeigt werden. Auch sichtbar über die "HelpIdoso Vxapp" Anwendung. Verwendet eine 110/220 VAC-Versorgung für 5 VDC, 1 Relais / Spannung
Sauerteigsensor (ESP8266): 4 Schritte
Sauerteigsensor (ESP8266): Ich bin immer noch da draußen, um zu versuchen, die Fermentation meines Sauerteigstarters zu messen und wollte diese Lösung mit einem Sharp-Sensor ausprobieren. Der Sensor misst den Abstand zur Oberfläche der Zubereitung. Je höher es geht, desto fermentierter ist der p
ESP8266 mit Thingspeak und DHT11 Tutorial - Webserver: 7 Schritte
ESP8266 mit Thingspeak und DHT11 Tutorial | Webserver: Hey, was ist los, Leute! Akarsh hier von CETech. Dieses Projekt von mir ist eher eine Lernkurve, um die Thingspeak-Plattform zusammen mit der Idee von MQTT zu verstehen und dann Thingspeak mit einem ESP8266 zu verwenden. Gegen Ende des Artikels werden wir co
ESP8266 Netzwerkuhr ohne RTC - Nodemcu NTP-Uhr Keine RTC - INTERNET-UHR-PROJEKT: 4 Schritte
ESP8266 Netzwerkuhr ohne RTC | Nodemcu NTP-Uhr Keine RTC | INTERNET-UHRPROJEKT: Im Projekt wird ein Uhrenprojekt ohne RTC erstellt, es wird Zeit vom Internet über WLAN benötigt und auf dem st7735-Display angezeigt