Innehållsförteckning:

ESP8266 VGA Pong: 5 steg (med bilder)
ESP8266 VGA Pong: 5 steg (med bilder)

Video: ESP8266 VGA Pong: 5 steg (med bilder)

Video: ESP8266 VGA Pong: 5 steg (med bilder)
Video: Mining Dogecoin Menggunakan VGA Withdraw Otomatis Ke Indodax 2024, November
Anonim
Image
Image
Lista över material
Lista över material

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

Bibliotek och skissöverföring
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

Ansluta delarna: VGA -kontakten
Ansluta delarna: VGA -kontakten
Ansluta delarna: VGA -kontakten
Ansluta delarna: VGA -kontakten
Ansluta delarna: VGA -kontakten
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

Ansluta delarna: Potentiometrarna och knappen
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: