Innholdsfortegnelse:

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

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

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

I denne instruksen vil jeg vise hvordan du bygger en gjengivelse av det klassiske spillet Pong for en VGA -skjerm, ved hjelp av en ESP8266 og få andre komponenter.

Dette spillet er muliggjort av EspVGAx -biblioteket som nylig ble utgitt på GitHub av Sandro Maffiodo (aka Smaffer), og så vidt jeg vet er dette det første spillet som utnytter det.

Biblioteket implementerer en oppløsning på 512 x 480 piksler, lagret i en rammebuffer inne i RAM, som krever 30720 byte. Oppløsningen er enorm i forhold til Arduino TVout eller VGAx (128 x 96 og 120 x 60 piksler). Jeg håper dette spillet inspirerer andre programmerere til å utvikle eller reprodusere mer komplekse spill.

Trinn 1: Liste over materialer

EspVGAx-biblioteket krever en ESP8266 med alle GPIO eksponert, som ESP-12E, NodeMCU-12E-kort eller ethvert kort som viser GPIO5 (D1), GPIO4 (D2) og GPIO13 (D7)

Spesielt brukte jeg:

  • en ESP8266 NodeMCU-12E (lenke her)
  • en DSUB15 -kontakt (dvs. en VGA -hunkontakt)
  • en 330 Ohm motstand
  • en annen motstand (ca. 1 til 3 kOhm)
  • to 10 kOhm potensiometre
  • en trykknapp (n.o.)
  • to dioder (for eksempel 1N4007s)
  • et brødbrett
  • ledninger

Jeg fikk DSUB15 -kontakten fra et gammelt VGA -PC -kort. Alternativt kan du også kutte en gammel VGA -kabel og koble ledningene direkte til brødbrettet.

Trinn 2: Bibliotek og skisseopplasting

Last opp bibliotek og skisse
Last opp bibliotek og skisse

Det er forskjellige metoder for å programmere og ESP8266; Jeg brukte Arduino IDE til å skrive Pong og laste opp koden.

Vær oppmerksom på at EspVGAx -biblioteket fungerer for Arduino IDE 1.8.1. Hvis du har andre versjoner, er det beste å laste ned.zip -filene og pakke den ut i en dedikert mappe. Windows -versjonen er her. Versjoner for annet operativsystem er her.

Etter det bør du laste ned EspVGAx -biblioteket fra GithHub -siden her (direkte lenke for zip -versjonen her), og pakke det ut i mappebibliotekene i Arduino -programvaren.

NB Det er en liten feil i filen espvgax_draw.h. For å korrigere det, bare erstatt linje 17:

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

Til slutt kan du laste ned ESP8266_Pong.rar på slutten av dette trinnet.

Når du har pakket den ut, for å laste den opp på ESP8266, må du konfigurere Arduino IDE.

Hvis du aldri har gjort det, kan du finne all nødvendig instruksjon om denne instruksen, spesielt i trinn 2.

Når alt er konfigurert, skal ESP8266 -innstillingene se ut som de som er vist på bildet ovenfor.

Hvis du kan laste opp koden uten feil, kan du begynne å montere delene.

Trinn 3: Koble til delene: VGA -kontakten

Koble til delene: VGA -kontakten
Koble til delene: VGA -kontakten
Koble til delene: VGA -kontakten
Koble til delene: VGA -kontakten
Koble til delene: VGA -kontakten
Koble til delene: VGA -kontakten

Jeg anbefaler å koble til først VGA -porten, som vist på bildene ovenfor. Vær oppmerksom på at ved å koble de tre pinnene Rød, Grønn og Blå sammen (dvs. pinne 1, 2 og 3 på DSUB15 -kontakten), får du et svart -hvitt -bilde på skjermen. Du kan også ha forskjellige fargekombinasjoner. Se detaljene på Library GitHub -siden.

Videre bør du koble en 330 Ohm motstand mellom RGB -pinnene og D7 (GPIO13) på ESP8266. Dette ga meg et litt gråaktig bilde på skjermen, og etter noen forsøk bestemte jeg meg for å eliminere det i det hele tatt.

På dette tidspunktet, hvis alt fungerer som det skal, kan du allerede koble til skjermen og se startskjermen til spillet, med banneret "ESP8266 VGAx Pong".

Trinn 4: Koble sammen delene: Potensiometre og knapp

Koble sammen delene: Potensiometre og knapp
Koble sammen delene: Potensiometre og knapp

Knappen må være tilkoblet mellom 3.3V og pin D0 (GPIO16). Koble også 1 til 3 kOhm motstanden fra D0 til bakken. Dette unngår at D0 har en ubestemt status når knappen er åpen.

Tilkoblingen mellom de to potensiometrene er mindre triviell, for ESP8266 har faktisk bare en analog inngangsport A0 (ADC0)! Trikset er å koble begge pot.s -utgangene til den samme porten og "multiplexere" dem. Multiplexing betyr ganske enkelt at du vil slå på et potensiometer, lese det, deretter slå det av og gå til det andre.

Hvis du vil lære mer om denne metoden, kan du lese denne Instructable.

Koble ett potensiometer ekstrem til GND, det andre ekstreme til D5 for venstre spiller potensiometer og D6 for høyre spiller ett.

Hver potensiometer sentral pin må koble til en individuell diode, og de andre sidene av dioder må være koblet til A0 (ADC0), med polariteten vist i bildet ovenfor.

Trinn 5: Konklusjon og anerkjennelser

Jeg er takknemlig overfor Sandro Maffiodo - SMAFFER - for ESPVGAX libary. Dette spillet ville ikke vært mulig uten det.

Jeg håper denne Instructable vil være en inspirasjon for andre programmerere til å lage reproduksjoner av mer komplekse klassiske arkadespill med ESP8266, som har mye mindre begrensning enn Arduino.

Til slutt skrev jeg denne instruksen for å sende den til lekerekonkurransen: Hvis du liker eller reproduserer den, kan du ta et øyeblikk til å stemme den!

Anbefalt: