Innehållsförteckning:
- Steg 1: Lista över material
- Steg 2: Bibliotek och skissöverföring
- Steg 3: Ansluta delarna: VGA -kontakten
- Steg 4: Ansluta delarna: Potentiometrarna och knappen
- Steg 5: Slutsats och erkännanden
Video: ESP8266 VGA Pong: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
I denna instruktionsbok kommer jag att visa hur man bygger en reproduktion av det klassiska spelet Pong för en VGA -skärm, med hjälp av en ESP8266 och några andra komponenter.
Detta spel möjliggörs av EspVGAx -biblioteket som nyligen publicerades på GitHub av Sandro Maffiodo (aka Smaffer) och så vitt jag vet är detta det första spelet som utnyttjar det.
Biblioteket implementerar en upplösning på 512 x 480 pixlar, lagrad i en rambuffer inuti RAM -minnet, vilket kräver 30720 byte. Upplösningen är enorm i jämförelse med Arduino TVout eller VGAx (128 x 96 respektive 120 x 60 pixlar). Jag hoppas att detta spel inspirerar andra programmerare att utveckla eller reproducera mer komplexa spel.
Steg 1: Lista över material
EspVGAx-biblioteket kräver en ESP8266 med alla GPIO exponerade, som ESP-12E, NodeMCU-12E-kort eller något kort som exponerar GPIO5 (D1), GPIO4 (D2) och GPIO13 (D7)
I synnerhet använde jag:
- en ESP8266 NodeMCU-12E (länk här)
- en DSUB15 -kontakt (dvs. en VGA -honkontakt)
- en 330 Ohm motstånd
- ett annat motstånd (ca 1 till 3 kOhm)
- två 10 kOhm potentiometrar
- en tryckknapp (n.o.)
- två dioder (t.ex. 1N4007s)
- en brödbräda
- trådar
Jag fick DSUB15 -kontakten från ett gammalt VGA -PC -kort. Alternativt kan du också klippa en gammal VGA -kabel och ansluta ledningarna direkt till brödbrädan.
Steg 2: Bibliotek och skissöverföring
Det finns olika metoder för att programmera och ESP8266; Jag använde Arduino IDE för att skriva Pong och ladda upp koden.
Observera att EspVGAx -biblioteket fungerar för Arduino IDE 1.8.1. Om du har andra versioner är det bästa att ladda ner.zip -filerna och packa upp dem i en dedikerad mapp. Windows -versionen finns här. Versioner för andra operativsystem finns här.
Därefter bör du ladda ner EspVGAx -biblioteket från GithHub -sidan här (direktlänk för zip -versionen här) och packa upp det i mappbiblioteken i Arduino -programvaran.
OBS Det finns en liten bugg i filen espvgax_draw.h. För att rätta till det, ersätt bara rad 17:
medan (x0%32) {med while (x0%32 && sw> 32) {
Slutligen kan du ladda ner ESP8266_Pong.rar i slutet av detta steg.
När du har packat upp den för att ladda upp den på din ESP8266 måste du konfigurera Arduino IDE.
Om du aldrig har gjort det kan du hitta all nödvändig instruktion om denna instruktion, särskilt i steg 2.
När allt är konfigurerat bör ESP8266 -inställningarna se ut som de som visas på bilden ovan.
Om du kan ladda upp koden utan fel kan du börja montera delarna.
Steg 3: Ansluta delarna: VGA -kontakten
Jag rekommenderar att först ansluta VGA -porten, som visas på bilderna ovan. Observera att genom att ansluta de tre stiften Röd, Grön och Blå (dvs stift 1, 2 och 3 på DSUB15 -kontakten) får du en svartvit bild på skärmen. Du kan också ha olika färger. Se detaljerna på Library GitHub -sidan.
Dessutom bör du ansluta ett 330 Ohm motstånd mellan RGB -stiften och D7 (GPIO13) på ESP8266. Detta gav mig en lite gråaktig bild på min bildskärm, så efter några försök bestämde jag mig för att eliminera den alls.
Vid det här laget, om allt fungerar korrekt, kan du redan ansluta bildskärmen och se spelets startskärm, med bannern "ESP8266 VGAx Pong".
Steg 4: Ansluta delarna: Potentiometrarna och knappen
Knappen måste vara ansluten mellan 3.3V och stift D0 (GPIO16). Anslut också 1 till 3 kOhm motståndet från D0 till jord. Detta undviker att D0 har en obestämd status när knappen är öppen.
Anslutningen mellan de två potentiometrarna är mindre trivial, eftersom ESP8266 faktiskt bara har en analog ingångsport A0 (ADC0)! Tricket är att ansluta båda pot.s -utgångarna till samma port och "multiplexa" dem. Multiplexing betyder helt enkelt att du kommer att slå på en potentiometer, läsa den, sedan stänga av den och gå till den andra.
Om du vill lära dig mer om denna metod kan du läsa den här instruktionsboken.
Anslut en potentiometer extrem till GND, den andra extrem till D5 för vänster spelare potentiometer och D6 för höger spelare en.
Varje potentiometer central stift måste anslutas till en enskild diod, och de andra sidorna av dioderna måste anslutas till A0 (ADC0), med polariteten som visas i bilden ovan.
Steg 5: Slutsats och erkännanden
Jag är tacksam till Sandro Maffiodo - SMAFFER - för ESPVGAX libary. Detta spel skulle inte vara möjligt utan det.
Jag hoppas att denna Instructable kommer att vara en inspiration för andra programmerare att göra reproduktioner av mer komplexa klassiska arkadspel med ESP8266, som har mycket mindre begränsning än Arduino.
Slutligen skrev jag den här instruktionsboken för att skicka den till leksakstävlingen: om du gillar eller reproducerar den, var snäll och rösta den!
Rekommenderad:
Extern VGA / GPU för bärbara datorer som använder EXP GDC Beast: 15 steg (med bilder)
Extern VGA / GPU för bärbara datorer som använder EXP GDC Beast: Hej killar .. Detta är min första handledning om instruktioner. Engelska är inte mitt första språk så förlåt mina grammatiska fel. Jag gjorde detta baserat på min erfarenhet av att uppgradera min bärbara dator. Och jag kommer inte att uttråkas med lång introduktion eftersom jag inte vet
The Ultimate Beer Pong Machine - PongMate CyberCannon Mark III: 6 steg (med bilder)
The Ultimate Beer Pong Machine - PongMate CyberCannon Mark III: Introduktion PongMate CyberCannon Mark III är den nyaste och mest avancerade delen av ölpongteknologi som någonsin har sålts till allmänheten. Med nya CyberCannon kan vilken person som helst bli den mest fruktade spelaren vid ölpongbordet. Hur är det här
ESP32 VGA arkadspel och joystick: 6 steg (med bilder)
ESP32 VGA Arcade Games och Joystick: I den här instruktören kommer jag att visa hur man reproducerar fyra arkadspel som spel - Tetris - Snake - Breakout - Bomber - med hjälp av en ESP32, med utgång för en VGA -bildskärm. Upplösningen är 320 x 200 pixlar, i 8 färger. Jag har tidigare gjort en version med
Arduino Basic PC med VGA -utgång: 5 steg (med bilder)
Arduino Basic PC med VGA-utgång: I min tidigare Instructable har jag visat hur man bygger en retro 8-bitars dator som kör BASIC, med hjälp av två Arduino, och med en utsignal i B & W för en TV-skärm. Nu ska jag visa hur man bygger samma dator, men med utsignalen i
LED Hat Display med Pong: 12 steg (med bilder)
LED Hat Display With Pong: För ett tag sedan, som mitt första mikrokontrollerprojekt, gjorde jag ett Pong -spel på en 5x7 LED -display, men sedan blev det ingenting av det. Nyligen fick jag en mössa som en del av en uniform (för en ingenjörstävling) och fick besked att anpassa den och kom ihåg