Sommario:

Joystick e giochi arcade VGA ESP32: 6 passaggi (con immagini)
Joystick e giochi arcade VGA ESP32: 6 passaggi (con immagini)

Video: Joystick e giochi arcade VGA ESP32: 6 passaggi (con immagini)

Video: Joystick e giochi arcade VGA ESP32: 6 passaggi (con immagini)
Video: doubling the drop every time the PC survives #shorts 2024, Luglio
Anonim
Image
Image
Giochi arcade e joystick VGA ESP32
Giochi arcade e joystick VGA ESP32
Giochi arcade e joystick VGA ESP32
Giochi arcade e joystick VGA ESP32

In questo tutorial mostrerò come riprodurre quattro giochi arcade come Tetris - Snake - Breakout - Bomber - usando un ESP32, con l'uscita per un monitor VGA.

La risoluzione è di 320 x 200 pixel, in 8 colori. In precedenza ho fatto una versione con Arduino Uno (vedi qui), ma la risoluzione era di soli 120 x 60 pixel, 4 colori e la memoria di Arduino era quasi piena. Grazie alle maggiori prestazioni dell'ESP32, sia la risoluzione che la giocabilità sono maggiori. Inoltre, c'è ancora molta memoria disponibile, quindi aggiungere nuovi giochi in futuro sarà semplice.

Mostrerò anche come collegare un semplice joystick tramite un cavo RS232. Sto usando lo stesso pinout del Commodore 64.

Questo progetto è reso possibile dalla fantastica libreria ESP32 VGA scritta da Fabrizio Di Vittorio. Vedi qui per maggiori dettagli.

Passaggio 1: schede ESP32, installazione IDE Arduino e configurazione della libreria VGA

Schede ESP32, installazione di Arduino IDE e configurazione della libreria VGA
Schede ESP32, installazione di Arduino IDE e configurazione della libreria VGA
Schede ESP32, installazione Arduino IDE e configurazione della libreria VGA
Schede ESP32, installazione Arduino IDE e configurazione della libreria VGA
Schede ESP32, installazione di Arduino IDE e configurazione della libreria VGA
Schede ESP32, installazione di Arduino IDE e configurazione della libreria VGA

Prima di tutto è necessario acquistare un ESP32 revisione 1 o superiore. Ci sono molte versioni disponibili, ma consiglio di sceglierne una con molti pin, preferibilmente un modello come quello in foto, con 38 pin. Sto usando questa versione, ma penso che anche molte altre vadano bene. Su ebay puoi trovare questo modello a meno di 7 Euro, spedizione inclusa.

Una volta ottenuta la scheda, è necessario procedere con i seguenti tre passaggi secondari:

  1. Installa l'ultimo IDE Arduino
  2. Configura ESP32 nell'IDE e
  3. Scarica e installa la libreria VGA

Sottopassaggio 1. Esistono diversi metodi per programmare ESP32, ma qui è necessario utilizzare l'IDE Arduino (a proposito, sto usando la versione 1.8.9). Per installarlo, puoi andare alla pagina IDE di Arduino e seguire le istruzioni.

Sottopassaggio 2. Una volta eseguita l'operazione precedente, è necessario configurare ESP32 all'interno dell'IDE di Arduino. Questo non è banale, dal momento che ESP32 non è (ancora?) nativo in esso. Puoi seguire questo tutorial o i seguenti passaggi.

1) apri l'IDE Arduino

2) aprire la finestra delle preferenze, File/Preferenze, in alternativa premere "Ctrl+virgola"

3) vai su “Ulteriori URL di Board Manager”, copia e incolla il seguente testo:

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

e fare clic sul pulsante OK.

4) Gestore schede aperte. Vai a Strumenti/Board/Board Manager…

5) Cerca ESP32 e premi il pulsante di installazione per “ESP32 by Espressif Systems“:

6) A questo punto, quando colleghi per la prima volta il tuo ESP32, dovresti scegliere il modello giusto nella lunga lista di schede ESP32 disponibili (vedi l'immagine in questo passaggio). In caso di dubbi sul modello è sufficiente scegliere quello generico, ovvero il primo. Per me funziona.

7) il sistema dovrebbe anche scegliere la porta USB (COM) corretta e la velocità di caricamento (normalmente 921600). A questo punto dovrebbe essere stabilita la connessione tra il tuo PC e la scheda ESP32.

Sottopasso 3. Infine devi installare la libreria FabGL VGA. Clicca qui per scaricare il file compresso completo. Decomprimilo e copia la cartella risultante (FabGL-master) nella cartella delle librerie IDE di Arduino, che assomiglia a:

"…\arduino-1.8.12\librerie".

Passaggio 2: caricamento di "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Scarica ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip in fondo a questo passaggio. Decomprimilo e aprilo con l'IDE Arduino, quindi caricalo sul tuo ESP32. Se non hai messaggi di errore, il codice dovrebbe essere già in esecuzione e devi solo collegare la porta VGA e i pulsanti (o il joystick).

Passaggio 3: collegamento della porta VGA

Collegamento della porta VGA
Collegamento della porta VGA

Hai bisogno delle seguenti parti:

  • un connettore DSUB15, ovvero un connettore VGA femmina o un cavo VGA da tagliare.
  • tre resistori da 270 Ohm.

Collegare i pin 2, 15 e 21 del GPIO ESP32 rispettivamente a VGA Rosso, Verde e Blu, attraverso i resistori da 270 Ohm.

Collegare VGA Hsync e Vsync rispettivamente ai pin 17 e 4 di ESP32 GPIO.

Collegare i pin 5, 6, 7, 8 e 10 dei connettori DSUB15 a ESP32 GND.

Per la definizione del pin del connettore VGA DSUB15, vedere l'immagine in questo passaggio. NB, questo è il lato di saldatura del connettore femmina.

Passaggio 4: collega i quattro pulsanti

Collega i quattro pulsanti
Collega i quattro pulsanti
Collega i quattro pulsanti
Collega i quattro pulsanti
Collega i quattro pulsanti
Collega i quattro pulsanti

Se non si dispone di un joystick C64 è possibile collegare quattro pulsanti seguendo questo passaggio. Se hai il joystick, puoi saltare questo passaggio e passare al successivo, ma puoi comunque collegare sia i pulsanti che il joystick (sono comunque "in parallelo").

Lo schema in questo passaggio mostra come collegare un singolo pulsante (normalmente aperto) da +5V al pin dato di ESP32.

Nota che devi anche collegare il pin dato dell'ESP a GND attraverso un resistore da 1 a 5 kOhm. In questo modo quando il pulsante viene rilasciato (aperto) il pin ESP è esattamente a zero Volt. In particolare, è necessario collegare quattro pulsanti con il seguente ordine:

  • Pin 12 al pulsante destro
  • Pin 25 al pulsante Su
  • Pin 14 al pulsante sinistro
  • Pin 35 al pulsante Giù

Passaggio 5: collegare il joystick

Collega il joystick
Collega il joystick
Collega il joystick
Collega il joystick
Collega il joystick
Collega il joystick

Un joystick C64 ha il pinout mostrato nella prima immagine di questo passaggio. Per collegarlo all'ESP32, è necessario un connettore maschio DSUB a 9 pin (cioè una presa), come mostrato nella seconda immagine. Ne ho rimosso uno con i pin scoperti da una vecchia scheda elettronica. Puoi usare una pistola termica per rimuoverlo (ma fallo all'aperto!).

È necessario collegare i pin seguendo l'ordine numerico in queste immagini. Si noti che lo schema si riferisce al lato joystick, quindi rappresenta il collegamento della sua spina femmina. La presa (maschio) da collegare all'ESP32 ha i pin con disposizione "a specchio". In caso di dubbio, ricordate che il numero di pin è sempre riportato sui connettori maschio e femmina, come mostrato nella terza immagine.

Se vuoi controllare i giochi solo con il joystick, collega il suo pin comune (9) a ESP32 +5V e i pin 1, 2, 3, 4 e 6 del joystick ai pin dati ESP seguendo l'elenco seguente.

  • ESP da pin 12 a pulsante destro (RS232 pin 4)
  • ESP pin 14 a pulsante sinistro (RS232 pin 3)
  • Pin 35 ESP a pulsante Giù (pin 2) RS232
  • ESP dal pin 25 al pulsante Up (RS232 pin 1 e 6, cioè fuoco del joystick)

NB i pin 12, 14, 25 e 35 dell'ESP devono essere collegati anche a GND tramite una resistenza da 1 a 5 kOhm. In questo modo quando il pulsante viene rilasciato (aperto) il pin ESP è esattamente a zero Volt.

La posizione UP del joystick NB2 e il pulsante di fuoco sono collegati insieme al pin ESP 25-

Ho collegato quattro pulsanti sulla scheda PC, in questo modo non ho bisogno del joystick per giocare (anche se con il joystick è molto più divertente). Anche in questo caso, il pin 9 RS232 deve essere collegato a +5 V e i pin del joystick sono solo in parallelo ai pulsanti.

Passaggio 6: conclusione e riconoscimento

Conclusione e riconoscimento
Conclusione e riconoscimento

Se tutto funziona correttamente, basta collegare il monitor VGA e dovresti essere in grado di goderti un gioco vecchio stile!

Puoi anche disegnare un set di Mandelbrot con una risoluzione di 640 x 350 pixel, solo per testare le capacità della libreria VGA.

Nota che il codice è scritto in modo che altri giochi possano essere facilmente aggiunti in futuro (l'ESP32 ha molto spazio!). Se questo progetto riscuote abbastanza interesse, potrei farlo…

Infine, desidero esprimere i miei complimenti a Fabrizio Di Vittorio per la sua fantastica libreria ESP32 VGA. Per maggiori dettagli, esempi e… Space Invaders, visita il suo sito.

Consigliato: