Cuprins:

Jocuri Arcade și Joystick ESP32 VGA: 6 pași (cu imagini)
Jocuri Arcade și Joystick ESP32 VGA: 6 pași (cu imagini)

Video: Jocuri Arcade și Joystick ESP32 VGA: 6 pași (cu imagini)

Video: Jocuri Arcade și Joystick ESP32 VGA: 6 pași (cu imagini)
Video: ESP32 VGA four games & joystick 2024, Iulie
Anonim
Image
Image
ESP32 VGA Arcade Games și Joystick
ESP32 VGA Arcade Games și Joystick
ESP32 VGA Arcade Games și Joystick
ESP32 VGA Arcade Games și Joystick

În acest instructiv, voi arăta cum să reproduc patru jocuri arcade precum Tetris - Snake - Breakout - Bomber - folosind un ESP32, cu ieșirea pentru un monitor VGA.

Rezoluția este de 320 x 200 pixeli, în 8 culori. Am făcut anterior o versiune cu un Arduino Uno (vezi aici), dar rezoluția era de doar 120 x 60 pixeli, 4 culori, iar memoria Arduino era aproape plină. Datorită performanțelor mai mari ale ESP32, atât rezoluția, cât și redarea sunt mai mari. În plus, există încă o mulțime de memorie disponibilă, astfel încât adăugarea de noi jocuri în viitor va fi simplă.

De asemenea, mă voi arăta fierbinte pentru a conecta un joystick simplu printr-un cablu RS232. Folosesc același pinout al celui Commodore 64.

Acest proiect este posibil datorită minunatei biblioteci ESP32 VGA scrisă de Fabrizio Di Vittorio. Vezi aici pentru mai multe detalii.

Pasul 1: plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA

Plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA
Plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA
Plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA
Plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA
Plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA
Plăci ESP32, instalare Arduino IDE și configurare bibliotecă VGA

Mai întâi de toate, trebuie să achiziționați un ESP32 revision 1 sau superior. Există multe versiuni disponibile, dar vă recomand să alegeți una cu mai mulți pini, preferabil un model precum cel din această imagine, cu 38 de pini. Folosesc această versiune, dar cred că și alții sunt bine. Pe eBay puteți găsi acest model la mai puțin de 7 euro, inclusiv livrarea.

După ce obțineți placa, trebuie să continuați cu următorii trei sub-pași:

  1. Instalați ultimul IDE Arduino
  2. Configurați ESP32 în IDE și
  3. Descărcați și instalați biblioteca VGA

Sub-pasul 1. Există diferite metode pentru a programa ESP32, dar aici trebuie să utilizați Arduino IDE (apropo, folosesc versiunea 1.8.9). Pentru a-l instala, puteți merge la pagina Arduino IDE și urmați instrucțiunile.

Sub-pasul 2. Odată ce operațiunea anterioară este finalizată, trebuie să vă configurați ESP32 în Arduino IDE. Acest lucru nu este banal, deoarece ESP32 nu este (încă?) Nativ în el. Puteți urma acest tutorial sau pașii următori.

1) deschideți ID-ul Arduino

2) deschideți fereastra de preferințe, Fișier / Preferință, alternativ apăsați „Ctrl + virgulă”

3) accesați „Adresele URL suplimentare ale administratorului de bord”, copiați și lipiți următorul text:

https://dl.espressif.com/dl/package_esp32_index.js…

și faceți clic pe butonul OK.

4) Open board manager. Mergeți la Instrumente / Board / Boards Manager …

5) Căutați ESP32 și apăsați butonul de instalare pentru „ESP32 by Espressif Systems“:

6) În acest moment, când vă conectați pentru prima dată la ESP32, ar trebui să alegeți modelul potrivit în lista lungă a plăcilor ESP32 disponibile (consultați imaginea din acest pas). În caz de îndoieli cu privire la model, alegeți-l pe cel generic, adică primul. Merge pentru mine.

7) sistemul ar trebui să aleagă și portul USB (COM) corect și viteza de încărcare (în mod normal 921600). În acest moment ar trebui stabilită conexiunea dintre computerul dvs. și placa ESP32.

Sub-pasul 3. În cele din urmă trebuie să instalați biblioteca FabGL VGA. Faceți clic aici pentru a descărca fișierul comprimat complet. Decomprimați-l și copiați folderul rezultat (FabGL-master) în folderul Arduino IDE biblioteci, care arată ca:

"… / arduino-1.8.12 / biblioteci".

Pasul 2: încărcarea „ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0”

Descărcați ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip în partea de jos a acestui pas. Dezarhivați-l și deschideți-l cu ID-ul Arduino, apoi încărcați-l pe ESP32. Dacă nu aveți mesaje de eroare, codul ar trebui să ruleze deja și trebuie doar să conectați portul VGA și butoanele (sau joystick-ul).

Pasul 3: Conectarea portului VGA

Conectarea portului VGA
Conectarea portului VGA

Aveți nevoie de următoarele părți:

  • un conector DSUB15, adică un conector VGA mamă sau un cablu VGA care trebuie tăiat.
  • trei rezistențe de 270 Ohm.

Conectați pinul ESP32 GPIO 2, 15 și 21 la VGA roșu, respectiv verde și albastru, prin intermediul rezistențelor de 270 Ohm.

Conectați VGA Hsync și Vsync la pinii GP32 ESP32 și respectiv 4.

Conectați pinii 5, 6, 7, 8 și 10 ai conectorilor DSUB15 la ESP32 GND.

Pentru definiția pinului conectorului VGA DSUB15, consultați imaginea din acest pas. NB, aceasta este partea de lipit a conectorului feminin.

Pasul 4: Conectați cele patru butoane

Conectați cele patru butoane
Conectați cele patru butoane
Conectați cele patru butoane
Conectați cele patru butoane
Conectați cele patru butoane
Conectați cele patru butoane

Dacă nu aveți un joystick C64, puteți conecta patru butoane după acest pas. Dacă aveți joystick-ul, puteți sări peste acest pas și să treceți la următorul, dar puteți oricum conecta atât butoanele, cât și joystick-ul (acestea sunt oricum „în paralel”).

Schema din acest pas arată cum să conectați un singur buton (normal deschis) de la + 5V la pinul ESP32.

Rețineți că trebuie, de asemenea, să conectați pinul ESP la GND printr-un rezistor de 1 până la 5 kOhm. În acest fel, când butonul este eliberat (deschis) pinul ESP este exact la zero Volți. Mai precis, trebuie să conectați patru butoane cu următoarea ordine:

  • Butonul Pin 12 la dreapta
  • Pin 25 la butonul Sus
  • Fixați butonul 14 la stânga
  • Pinul 35 la butonul Jos

Pasul 5: Conectați joystick-ul

Conectați joystick-ul
Conectați joystick-ul
Conectați joystick-ul
Conectați joystick-ul
Conectați joystick-ul
Conectați joystick-ul

Un joystick C64 are pinout-ul afișat în prima imagine a acestui pas. Pentru a-l conecta la ESP32, aveți nevoie de un conector tată DSUB cu 9 pini (adică o priză), așa cum se arată în a doua imagine. Am scos unul cu știfturi expuse de pe o placă electronică veche. Puteți folosi un pistol termic pentru a-l scoate (dar faceți-l în aer liber!).

Trebuie să conectați pinii urmând ordinea numerică din aceste imagini. Rețineți că schema se referă la partea joystick-ului, deci reprezintă conexiunea mufei sale feminine. Priza (tată) pentru conectarea la ESP32 are pinii cu o dispoziție „oglindă”. În caz de îndoială, amintiți-vă că numărul pinului este întotdeauna raportat la conectorii masculin și feminin, așa cum se arată în imaginea a treia.

Dacă doriți să controlați jocurile doar cu joystick-ul, conectați pinul său comun (9) la ESP32 + 5V și pinii joystick-ului 1, 2, 3, 4 și 6 la pinii ESP, urmând următoarea listă.

  • ESP pin 12 la butonul Dreapta (RS232 pin 4)
  • ESP pin 14 la butonul stânga (RS232 pin 3)
  • ESP pin 35 la butonul Jos (RS232 pin 2)
  • Pinul ESP 25 până la butonul Sus (pinul RS232 1 și 6, adică focul joystick-ului)

NB Pinii ESP 12, 14, 25 și 35 trebuie conectați la GND printr-un rezistor de 1 până la 5 kOhm. În acest fel, când butonul este eliberat (deschis) pinul ESP este exact la zero Volți.

Poziția UP a joystick-ului NB2 și butonul de declanșare sunt conectate împreună la pinul ESP 25-

Am conectat patru butoane pe placa PC, în acest fel nu am nevoie de joystick pentru a juca (deși cu joystick-ul este mult mai amuzant). Din nou, pinul RS232 9 trebuie să fie conectat la +5 V, iar pinii joystick-ului sunt exact în paralel cu butoanele.

Pasul 6: Concluzie și recunoaștere

Concluzie și recunoaștere
Concluzie și recunoaștere

Dacă totul funcționează corect, conectați doar monitorul VGA și ar trebui să vă puteți bucura de un joc de stil vechi!

De asemenea, puteți desena un set Mandelbrot cu o rezoluție de 640 x 350 pixeli, doar pentru a testa capacitățile bibliotecii VGA.

Rețineți că codul este scris într-un mod în care alte jocuri pot fi adăugate cu ușurință în viitor (ESP32 are mult spațiu!). Dacă acest proiect primește suficient interes, aș putea să fac asta …

În cele din urmă, doresc să-mi exprim tancurile către Fabrizio Di Vittorio pentru biblioteca sa minunată ESP32 VGA. Pentru mai multe detalii, exemple și … Space Invaders, vizitați site-ul său.

Recomandat: