Inhoudsopgave:
- Stap 1: Lijst met materialen
- Stap 2: Bibliotheek en schets uploaden
- Stap 3: De onderdelen aansluiten: de VGA-connector
- Stap 4: De onderdelen aansluiten: de potentiometers en knop
- Stap 5: Conclusie en dankbetuigingen
Video: ESP8266 VGA Pong - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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
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 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:
ESP32 VGA-slang: 5 stappen
ESP32 VGA Snake: In deze instructable laat ik zien hoe je een klassiek arcadespel - Snake - kunt reproduceren met een ESP32, met de uitgang voor een VGA-monitor. De resolutie is 640x350 pixels, in 8 kleuren. Ik heb eerder een versie gedaan met een Arduino Uno (zie hier), maar
ESP32 VGA Tetris: 3 stappen
ESP32 VGA Tetris: In deze Instructables zal ik laten zien hoe je een kloon van het klassieke spel Tetris kunt bouwen, met behulp van een ESP32 en het genereren van de output voor een VGA-monitor. Deze game wordt mogelijk gemaakt door de verbazingwekkende ESP32Lib Arduino-bibliotheek van bitluni. Je hebt de ESP32 b
VGA-schilderprogramma: 5 stappen
VGA-schilderprogramma: project door: Adam Klein, Ian Strachan, Brandon Slater Het project dat we wilden voltooien, was het opslaan, ontleden en weergeven van informatie van een USB-muis in de vorm van een tekenprogramma. Het idee achter het project is om de muis te kunnen aansluiten
Arduino Snake op een VGA-monitor: 5 stappen
Arduino Snake op een VGA-monitor: Nou… ik heb een Arduino gekocht. Aanvankelijk was de investering gemotiveerd met iets waardoor mijn dochter geïnteresseerd zou raken in programmeren. Het bleek echter dat dit ding voor mij leuker was om mee te spelen. Na wat spelen met het maken van LED's
Hoe maak je een VGA-splitter: 5 stappen
Hoe maak je een VGA-splitter: In deze instructable laat ik je zien hoe je een VGA-splitter maakt die kan schakelen tussen twee ingangen of twee uitgangen. dit instructable is een wijziging van een printer (parallelle) splitter