Inhoudsopgave:

ESP8266 VGA Pong - Ajarnpa
ESP8266 VGA Pong - Ajarnpa

Video: ESP8266 VGA Pong - Ajarnpa

Video: ESP8266 VGA Pong - Ajarnpa
Video: ESP8266 VGA Pong 2024, Juli-
Anonim
Image
Image
Lijst met materialen
Lijst met materialen

In deze Instructables zal ik laten zien hoe je een reproductie van het klassieke spel Pong voor een VGA-monitor kunt bouwen, met behulp van een ESP8266 en enkele andere componenten.

Deze game is mogelijk gemaakt door de EspVGAx-bibliotheek die onlangs op GitHub is gepubliceerd door Sandro Maffiodo (ook bekend als Smaffer) en, voor zover ik weet, is dit de eerste game die er gebruik van maakt.

De bibliotheek implementeert een resolutie van 512 x 480 pixels, opgeslagen in een framebuffer in het RAM-geheugen, waarvoor 30720 bytes nodig zijn. De resolutie is enorm in vergelijking met die van Arduino TVout of VGAx (respectievelijk 128 x 96 en 120 x 60 pixels). Ik hoop dat dit spel andere programmeurs inspireert om complexere spellen te ontwikkelen of te reproduceren.

Stap 1: Lijst met materialen

De EspVGAx-bibliotheek vereist een ESP8266 met alle GPIO-belichting, zoals ESP-12E, NodeMCU-12E-kaart of elk bord dat GPIO5 (D1), GPIO4 (D2) en GPIO13 (D7) blootlegt

Ik gebruikte in het bijzonder:

  • een ESP8266 NodeMCU-12E (link hier)
  • een DSUB15-connector (d.w.z. een vrouwelijke VGA-connector)
  • een 330 Ohm Weerstand
  • een andere weerstand (ongeveer 1 tot 3 kOhm)
  • twee 10 kOhm Potentiometers
  • een drukknop (n.e.g.)
  • twee Diodes (zoals 1N4007s)
  • een breadboard
  • draden

Ik heb de DSUB15-connector van een oude VGA-pc-kaart. Als alternatief kunt u ook een oude VGA-kabel doorknippen en de draden rechtstreeks op het breadboard aansluiten.

Stap 2: Bibliotheek en schets uploaden

Bibliotheek en schets uploaden
Bibliotheek en schets uploaden

Er zijn verschillende methoden om te programmeren en ESP8266; Ik heb de Arduino IDE gebruikt om Pong te schrijven en de code te uploaden.

Houd er rekening mee dat de EspVGAx-bibliotheek werkt voor Arduino IDE 1.8.1. Als u andere versies heeft, kunt u het beste de.zip-bestanden downloaden en uitpakken in een speciale map. De Windows-versie is hier. Versies voor andere besturingssystemen zijn hier.

Daarna moet u de EspVGAx-bibliotheek downloaden van de GithHub-pagina hier (directe link voor de zip-versie hier) en decomprimeren in de mapbibliotheken in de Arduino-software.

NB Er zit een kleine bug in het bestand espvgax_draw.h. Om het te corrigeren, vervangt u gewoon regel 17:

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

Eindelijk kunt u ESP8266_Pong.rar downloaden aan het einde van deze stap.

Eenmaal uitgepakt, om het op uw ESP8266 te uploaden, moet u de Arduino IDE configureren.

Als je het nog nooit hebt gedaan, kun je alle benodigde instructies vinden op deze Instructables, met name in stap 2.

Zodra alles is geconfigureerd, zouden de instellingen van de ESP8266 eruit moeten zien zoals in de bovenstaande afbeelding.

Als je de code zonder fouten kunt uploaden, kun je beginnen met het monteren van de onderdelen.

Stap 3: De onderdelen aansluiten: de VGA-connector

De onderdelen aansluiten: de VGA-connector
De onderdelen aansluiten: de VGA-connector
De onderdelen aansluiten: de VGA-connector
De onderdelen aansluiten: de VGA-connector
De onderdelen aansluiten: de VGA-connector
De onderdelen aansluiten: de VGA-connector

Ik raad aan om eerst de VGA-poort aan te sluiten, zoals weergegeven in de bovenstaande afbeeldingen. Houd er rekening mee dat door de drie pinnen Rood, Groen en Blauw met elkaar te verbinden (d.w.z. pinnen 1, 2 en 3 op de DSUB15-connector), u een zwart-witbeeld op uw scherm krijgt. U kunt ook verschillende kleurencombinaties hebben. Zie de details op de GitHub-pagina van de bibliotheek.

Verder moet je een weerstand van 330 Ohm aansluiten tussen de RGB-pinnen en de D7 (GPIO13) op de ESP8266. Dit gaf me een wat grijzig beeld op mijn monitor, dus na een paar pogingen besloot ik het helemaal te elimineren.

Op dit punt, als alles goed werkt, kun je de monitor al aansluiten en het beginscherm van het spel zien, met de banner "ESP8266 VGAx Pong".

Stap 4: De onderdelen aansluiten: de potentiometers en knop

De onderdelen aansluiten: de potentiometers en knop
De onderdelen aansluiten: de potentiometers en knop

De knop moet worden aangesloten tussen 3.3V en pin D0 (GPIO16). Sluit ook de weerstand van 1 tot 3 kOhm van D0 aan op aarde. Dit voorkomt dat D0 een onbepaalde status heeft wanneer de knop open is.

De aansluiting van de twee potmeters is minder triviaal, de ESP8266 heeft namelijk alleen een analoge ingang A0 (ADC0)! De truc is om beide uitgangen van de pot.s op dezelfde poort aan te sluiten en ze te 'multiplexen'. Multiplexen betekent eenvoudigweg dat u een potentiometer aanzet, deze afleest, vervolgens uitschakelt en naar de tweede gaat.

Als u meer wilt weten over deze methode, kunt u deze Instructable lezen.

Sluit een uiterste potentiometer aan op GND, het andere uiterste aan D5 voor de potentiometer van de linkerspeler en D6 voor de potentiometer van de rechterspeler.

Elke centrale pin van de potentiometer moet worden aangesloten op een individuele diode en de andere zijden van de diodes moeten worden aangesloten op A0 (ADC0), met de polariteit zoals weergegeven in de bovenstaande afbeelding.

Stap 5: Conclusie en dankbetuigingen

Ik ben Sandro Maffiodo - SMAFFER - dankbaar voor de ESPVGAX-bibliotheek. Dit spel zou niet mogelijk zijn zonder.

Ik hoop dat deze Instructable een inspiratie zal zijn voor andere programmeurs om reproducties te maken van complexere klassieke arcade-spellen met de ESP8266, die veel minder beperkingen heeft dan de Arduino.

Ten slotte heb ik dit Instructable geschreven om het in te dienen bij de speelgoedwedstrijd: als je het leuk vindt of reproduceert, neem dan even de tijd om erop te stemmen!

Aanbevolen: