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, Juli
Anonim
Image
Image
Lista materijala
Lista 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.

Biblioteka implementira rezoluciju od 512 x 480 piksela, pohranjenu u framebufferu unutar RAM -a, što zahtijeva 30720 bajtova. Rezolucija je velika u odnosu na 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: Lista 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
  • pritisno dugme (n.o.)
  • dvije diode (poput 1N4007s)
  • matič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: Prenošenje biblioteke i skice

Biblioteka i prijenos skica
Biblioteka i prijenos skica

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

Imajte na umu da EspVGAx biblioteka 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. Verzije za druge OS su ovdje.

Nakon toga trebate preuzeti EspVGAx biblioteku sa stranice GithHub ovdje (direktna veza za zip verziju ovdje) i dekomprimirati 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 u ovim uputama, posebno u 2. koraku.

Nakon što se sve konfigurira, postavke ESP8266 bi trebale 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: Povezivanje dijelova: VGA konektor

Povezivanje dijelova: VGA konektor
Povezivanje dijelova: VGA konektor
Povezivanje dijelova: VGA konektor
Povezivanje dijelova: VGA konektor
Povezivanje dijelova: VGA konektor
Povezivanje dijelova: VGA konektor

Preporučujem da prvo povežete VGA port, kao što je prikazano na gornjim slikama. Imajte na umu da ćete povezivanjem tri pina Crvene, Zelene i Plave zajedno (tj. Pinova 1, 2 i 3 na konektoru DSUB15) imati bijelo -bijelu sliku na ekranu. Takođe 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. Ovo mi je dalo pomalo sivkastu sliku na monitoru pa sam, nakon nekoliko pokušaja, odlučio da je uopće eliminiram.

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

Korak 4: Povezivanje dijelova: potenciometra i dugmeta

Povezivanje dijelova: potenciometri i dugme
Povezivanje dijelova: potenciometri i dugme

Gumb mora biti spojen između 3.3V i pina D0 (GPIO16). Spojite i otpornik 1 do 3 kOhm od D0 na masu. Time se izbjegava da D0 bude u neodređenom statusu kada je dugme otvoreno.

Povezivanje dva potenciometra manje je trivijalno, zapravo ESP8266 ima samo analogni ulazni port 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 preć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 potenciometar lijevog igrača i D6 za desnog.

Svaki središnji pin potenciometra mora biti povezan s pojedinačnom diodom, a druge 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 da naprave reprodukcije složenijih klasičnih arkadnih igara sa ESP8266, koji ima mnogo manje ograničenja od Arduina.

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

Preporučuje se: