Indholdsfortegnelse:

ESP8266 VGA Pong: 5 trin (med billeder)
ESP8266 VGA Pong: 5 trin (med billeder)

Video: ESP8266 VGA Pong: 5 trin (med billeder)

Video: ESP8266 VGA Pong: 5 trin (med billeder)
Video: Mining Dogecoin Menggunakan VGA Withdraw Otomatis Ke Indodax 2024, November
Anonim
Image
Image
Liste over materialer
Liste over materialer

I denne Instructables vil jeg vise, hvordan man bygger en gengivelse af det klassiske spil Pong til en VGA -skærm ved hjælp af en ESP8266 og få andre komponenter.

Dette spil er muliggjort af EspVGAx -biblioteket, der for nylig blev offentliggjort på GitHub af Sandro Maffiodo (aka Smaffer), og så vidt jeg ved, er dette det første spil, der udnytter det.

Biblioteket implementerer en opløsning på 512 x 480 pixels, der er gemt i en rammebuffer inde i RAM'en, hvilket kræver 30720 bytes. Opløsningen er enorm i forhold til Arduino TVout eller VGAx (128 x 96 og 120 x 60 pixels). Jeg håber, at dette spil inspirerer andre programmører til at udvikle eller gengive mere komplekse spil.

Trin 1: Liste over materialer

EspVGAx-biblioteket kræver en ESP8266 med alle GPIO udsat, f.eks. ESP-12E, NodeMCU-12E-kort eller ethvert kort, der viser GPIO5 (D1), GPIO4 (D2) og GPIO13 (D7)

Især brugte jeg:

  • en ESP8266 NodeMCU-12E (link her)
  • et DSUB15 -stik (dvs. et VGA -hunstik)
  • en 330 Ohm modstand
  • en anden modstand (ca. 1 til 3 kOhm)
  • to 10 kOhm potentiometre
  • en trykknap (n.o.)
  • to dioder (f.eks. 1N4007s)
  • et brødbræt
  • ledninger

Jeg fik DSUB15 -stikket fra et gammelt VGA -pc -kort. Alternativt kan du også skære et gammelt VGA -kabel og slutte ledningerne direkte til brødbrættet.

Trin 2: Upload af bibliotek og skitse

Upload af bibliotek og skitse
Upload af bibliotek og skitse

Der er forskellige metoder til programmering og ESP8266; Jeg brugte Arduino IDE til at skrive Pong og uploade koden.

Bemærk, at EspVGAx -biblioteket fungerer til Arduino IDE 1.8.1. Hvis du har andre versioner, er det bedste at downloade.zip -filerne og pakke det ud i en dedikeret mappe. Windows -versionen er her. Versioner til andet OS er her.

Derefter skal du downloade EspVGAx -biblioteket fra GithHub -siden her (direkte link til zip -versionen her) og udpakke det i mappebibliotekerne i Arduino -softwaren.

NB Der er en lille fejl i filen espvgax_draw.h. For at rette det skal du bare udskifte linje 17:

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

Endelig kan du downloade ESP8266_Pong.rar i slutningen af dette trin.

Når den er pakket ud, skal du konfigurere Arduino IDE for at uploade den på din ESP8266.

Hvis du aldrig har gjort det, kan du finde alle de nødvendige instruktioner om denne instruktion, især i trin 2.

Når alt er konfigureret, skal ESP8266 -indstillingerne ligne dem, der er vist på billedet ovenfor.

Hvis du kan uploade koden uden fejl, kan du begynde at samle delene.

Trin 3: Tilslutning af delene: VGA -stikket

Tilslutning af delene: VGA -stikket
Tilslutning af delene: VGA -stikket
Tilslutning af delene: VGA -stikket
Tilslutning af delene: VGA -stikket
Tilslutning af delene: VGA -stikket
Tilslutning af delene: VGA -stikket

Jeg anbefaler at først tilslutte VGA -porten, som vist på billederne ovenfor. Bemærk, at ved at forbinde de tre stifter Rød, Grøn og Blå sammen (dvs. ben 1, 2 og 3 på DSUB15 -stikket), får du et sort / hvid -billede på din skærm. Du kan også have forskellige farver. Se detaljerne på Library GitHub -siden.

Desuden skal du tilslutte en 330 Ohm modstand mellem RGB -benene og D7 (GPIO13) på ESP8266. Dette gav mig et lidt gråligt billede på min skærm, og derfor besluttede jeg efter få forsøg at slette det overhovedet.

På dette tidspunkt, hvis alt fungerer korrekt, kan du allerede tilslutte skærmen og se spillets startskærm med banneret "ESP8266 VGAx Pong".

Trin 4: Tilslutning af delene: Potentiometre og knap

Tilslutning af delene: Potentiometre og knap
Tilslutning af delene: Potentiometre og knap

Knappen skal forbindes mellem 3,3V og pin D0 (GPIO16). Tilslut også 1 til 3 kOhm modstanden fra D0 til jorden. Dette forhindrer D0 i at være på en ubestemt status, når knappen er åben.

Forbindelsen mellem de to potentiometre er mindre triviel, da ESP8266 faktisk kun har en analog indgangsport A0 (ADC0)! Tricket er at forbinde begge pot.s -udgange til den samme port og 'multiplexe' dem. Multiplexering betyder ganske enkelt, at du vil tænde et potentiometer, læse det, derefter slukke det og gå videre til det andet.

Hvis du vil lære mere om denne metode, kan du læse denne Instructable.

Tilslut det ene potentiometer ekstrem til GND, det andet ekstrem til D5 for det venstre spillerpotentiometer og D6 til det højre spiller et.

Hver potentiometer central pin skal forbindes til en individuel diode, og de andre sider af dioderne skal forbindes til A0 (ADC0), med polariteten vist på billedet ovenfor.

Trin 5: Konklusion og anerkendelser

Jeg er Sandro Maffiodo - SMAFFER - taknemmelig for ESPVGAX -biblioteket. Dette spil ville ikke være muligt uden det.

Jeg håber, at denne Instructable vil være en inspiration for andre programmører til at lave reproduktioner af mere komplekse klassiske arkadespil med ESP8266, som har meget mindre begrænsning end Arduino.

Til sidst skrev jeg denne instruks for at indsende den til legetøjskonkurrencen: hvis du kan lide eller gengive den, skal du bruge et øjeblik på at stemme den!

Anbefalede: