Sadržaj:

ESP8266 VGA pong: 5 koraka (sa slikama)
ESP8266 VGA pong: 5 koraka (sa slikama)

Video: ESP8266 VGA pong: 5 koraka (sa slikama)

Video: ESP8266 VGA pong: 5 koraka (sa slikama)
Video: ESP8266 VGA Pong 2024, Srpanj
Anonim
Image
Image
Popis materijala
Popis materijala

U ovom Instructables ću pokazati kako izgraditi reprodukciju klasične igre Pong za VGA monitor, koristeći ESP8266 i nekoliko drugih komponenti.

Ovu igru je omogućila biblioteka EspVGAx koju je nedavno na GitHub -u objavio Sandro Maffiodo (zvani Smaffer) i, koliko ja znam, ovo je prva igra koja je koristi.

Knjižnica implementira rezoluciju od 512 x 480 piksela, pohranjenu u framebufferu unutar RAM -a, što zahtijeva 30720 bajtova. Rezolucija je velika u usporedbi s Arduino TVout ili VGAx (128 x 96 odnosno 120 x 60 piksela). Nadam se da će ova igra inspirirati druge programere na razvoj ili reprodukciju složenijih igara.

Korak 1: Popis materijala

Za biblioteku EspVGAx potreban je ESP8266 sa svim izloženim GPIO, poput ESP-12E, ploče NodeMCU-12E ili bilo koje ploče koja izlaže GPIO5 (D1), GPIO4 (D2) i GPIO13 (D7)

Konkretno, koristio sam:

  • ESP8266 NodeMCU-12E (veza ovdje)
  • konektor DSUB15 (tj. ženski VGA konektor)
  • otpornik od 330 ohma
  • drugi otpornik (oko 1 do 3 kOhm)
  • dva potenciometra od 10 kOhm
  • pritisni gumb (n.o.)
  • dvije diode (poput 1N4007s)
  • krušna ploča
  • žice

Konektor DSUB15 dobio sam sa stare VGA PC ploče. Alternativno, možete izrezati i stari VGA kabel i spojiti žice izravno na matičnu ploču.

Korak 2: Prijenos biblioteke i skica

Knjižnica i prijenos skica
Knjižnica i prijenos skica

Postoje različite metode programiranja i ESP8266; Koristio sam Arduino IDE za pisanje ponga i učitavanje koda.

Imajte na umu da EspVGAx knjižnica radi za Arduino IDE 1.8.1. Ako imate druge verzije, najbolje je preuzeti datoteke.zip i dekomprimirati ih u namjensku mapu. Ovdje je verzija za Windows. Ovdje su verzije za druge OS.

Nakon toga trebate prenijeti EspVGAx knjižnicu sa stranice GithHub ovdje (izravna veza za zip verziju ovdje) i raspakirati je u bibliotekama mapa u softveru Arduino.

Napomena: U datoteci espvgax_draw.h postoji mala greška. Da biste to ispravili, samo zamijenite redak 17:

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

Na kraju možete preuzeti ESP8266_Pong.rar na kraju ovog koraka.

Nakon raspakiranja, da biste ga prenijeli na svoj ESP8266, morate konfigurirati Arduino IDE.

Ako to nikada niste učinili, sve potrebne upute možete pronaći na ovim uputama, osobito u 2. koraku.

Nakon što je sve konfigurirano, postavke ESP8266 trebale bi izgledati poput onih prikazanih na gornjoj slici.

Ako možete učitati kôd bez grešaka, možete početi sastavljati dijelove.

Korak 3: Spajanje dijelova: VGA konektor

Spajanje dijelova: VGA konektor
Spajanje dijelova: VGA konektor
Spajanje dijelova: VGA konektor
Spajanje dijelova: VGA konektor
Spajanje dijelova: VGA konektor
Spajanje dijelova: VGA konektor

Preporučujem da prvo povežete VGA port, kao što je prikazano na gornjim slikama. Imajte na umu da ćete spajanjem tri pina Crvene, Zelene i Plave (tj. Pinova 1, 2 i 3 na priključku DSUB15) imati bijelo -bijelu sliku na ekranu. Također možete imati različite kombinacije boja. Detalje potražite na stranici Library GitHub.

Nadalje, trebali biste spojiti otpornik od 330 Ohma između RGB pinova i D7 (GPIO13) na ESP8266. To mi je na monitoru dalo pomalo sivkastu sliku pa sam ga, nakon nekoliko pokušaja, uopće odlučio ukloniti.

U ovom trenutku, ako sve radi ispravno, već možete spojiti monitor i vidjeti početni zaslon igre, s natpisom "ESP8266 VGAx Pong".

Korak 4: Spajanje dijelova: potenciometri i gumb

Povezivanje dijelova: potenciometri i gumb
Povezivanje dijelova: potenciometri i gumb

Gumb mora biti spojen između 3,3 V i pina D0 (GPIO16). Spojite i otpornik od 1 do 3 kOhm od D0 do mase. Time se izbjegava da D0 bude u neodređenom statusu kada je gumb otvoren.

Spajanje dva potenciometra manje je trivijalno, zapravo ESP8266 ima samo analogni ulaz A0 (ADC0)! Trik je u povezivanju oba pot.s izlaza na isti port i njihovom "multipleksiranju". Multipleksiranje jednostavno znači da ćete uključiti potenciometar, pročitati ga, zatim isključiti i prijeći na drugi.

Ako želite saznati više o ovoj metodi, možete pročitati ovaj Instructable.

Spojite jedan ekstremni potenciometar na GND, drugi ekstremni na D5 za lijevi potenciometar i D6 za desni.

Svaki središnji pin potenciometra mora biti spojen na pojedinačnu diodu, a ostale strane dioda moraju biti spojene na A0 (ADC0), s polaritetom prikazanim na gornjoj slici.

Korak 5: Zaključak i priznanja

Zahvalan sam Sandru Maffiodu - SMAFFERU - za biblioteku ESPVGAX. Ova igra ne bi bila moguća bez nje.

Nadam se da će ovaj Instructable biti inspiracija drugim programerima za reprodukciju složenijih klasičnih arkadnih igara s ESP8266, koji ima mnogo manje ograničenja od Arduina.

Konačno, napisao sam ovaj Instructable kako bih ga prijavio na natjecanje u igračkama: ako vam se sviđa ili ga reproducirajte, odvojite trenutak za glasovanje!

Preporučeni: