Sommario:

ESP8266 VGA Pong: 5 passaggi (con immagini)
ESP8266 VGA Pong: 5 passaggi (con immagini)

Video: ESP8266 VGA Pong: 5 passaggi (con immagini)

Video: ESP8266 VGA Pong: 5 passaggi (con immagini)
Video: Arduino TVOut On Steroids - Lets Make It - Episode 65 - Tech-Zen.tv - Alixa.tv 2024, Dicembre
Anonim
Image
Image
Elenco dei materiali
Elenco dei materiali

In questo Instructables mostrerò come costruire una riproduzione del classico gioco Pong per un monitor VGA, utilizzando un ESP8266 e pochi altri componenti.

Questo gioco è reso possibile dalla libreria EspVGAx recentemente pubblicata su GitHub da Sandro Maffiodo (alias Smaffer) e, per quanto ne so, questo è il primo gioco che lo sfrutta.

La libreria implementa una risoluzione di 512 x 480 pixel, memorizzata in un framebuffer all'interno della RAM, che richiede 30720 byte. La risoluzione è enorme rispetto a quelle di Arduino TVout o VGAx (rispettivamente 128 x 96 e 120 x 60 pixel). Spero che questo gioco ispiri altri programmatori a sviluppare o riprodurre giochi più complessi.

Passaggio 1: elenco dei materiali

La libreria EspVGAx richiede un ESP8266 con tutti i GPIO esposti, come la scheda ESP-12E, NodeMCU-12E o qualsiasi scheda che esponga GPIO5 (D1), GPIO4 (D2) e GPIO13 (D7)

In particolare ho utilizzato:

  • un ESP8266 NodeMCU-12E (link qui)
  • un connettore DSUB15 (cioè un connettore VGA femmina)
  • un resistore da 330 Ohm
  • un altro resistore (da circa 1 a 3 kOhm)
  • due potenziometri da 10 kOhm
  • un pulsante (n.a.)
  • due diodi (come 1N4007s)
  • una breadboard
  • fili

Ho preso il connettore DSUB15 da una vecchia scheda PC VGA. In alternativa, puoi anche tagliare un vecchio cavo VGA e collegare i fili direttamente alla breadboard.

Passaggio 2: caricamento della libreria e dello schizzo

Caricamento di librerie e schizzi
Caricamento di librerie e schizzi

Esistono diversi metodi per programmare ed ESP8266; Ho usato l'IDE di Arduino per scrivere Pong e caricare il codice.

Si prega di notare che la libreria EspVGAx funziona per Arduino IDE 1.8.1. Se hai altre versioni, la cosa migliore è scaricare i file.zip e decomprimerli in una cartella dedicata. La versione per Windows è qui. Le versioni per altri OS sono qui.

Successivamente, dovresti scaricare la libreria EspVGAx dalla pagina GithHub qui (link diretto per la versione zip qui) e decomprimerla nelle librerie di cartelle nel software Arduino.

NB C'è un piccolo bug nel file espvgax_draw.h. Per correggerlo basta sostituire la riga 17:

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

Infine puoi scaricare ESP8266_Pong.rar alla fine di questo passaggio.

Una volta decompresso, per caricarlo sul tuo ESP8266, devi configurare l'IDE di Arduino.

Se non l'hai mai fatto, puoi trovare tutte le istruzioni necessarie su questo Instructables, in particolare nel passaggio 2.

Una volta che tutto è configurato, le impostazioni di ESP8266 dovrebbero assomigliare a quelle mostrate nell'immagine sopra.

Se riesci a caricare il codice senza errori, puoi iniziare ad assemblare le parti.

Passaggio 3: collegamento delle parti: il connettore VGA

Collegamento delle parti: il connettore VGA
Collegamento delle parti: il connettore VGA
Collegamento delle parti: il connettore VGA
Collegamento delle parti: il connettore VGA
Collegamento delle parti: il connettore VGA
Collegamento delle parti: il connettore VGA

Consiglio di collegare prima la porta VGA, come mostrato nelle immagini sopra. Tieni presente che collegando i tre pin Rosso, Verde e Blu insieme (cioè i pin 1, 2 e 3 sul connettore DSUB15), avrai un'immagine in bianco e nero sullo schermo. Puoi anche avere diverse combinazioni di colori. Vedere i dettagli nella pagina GitHub della libreria.

Inoltre, dovresti collegare una resistenza da 330 Ohm tra i pin RGB e il D7 (GPIO13) sull'ESP8266. Questo mi ha dato un'immagine un po' grigiastra sul mio monitor quindi, dopo alcuni tentativi, ho deciso di eliminarla del tutto.

A questo punto, se tutto funziona correttamente, puoi già collegare il monitor e vedere la schermata iniziale del gioco, con il banner "ESP8266 VGAx Pong".

Passaggio 4: collegamento delle parti: i potenziometri e il pulsante

Collegamento delle parti: i potenziometri e il pulsante
Collegamento delle parti: i potenziometri e il pulsante

Il pulsante deve essere collegato tra 3.3V e pin D0 (GPIO16). Collegare anche la resistenza da 1 a 3 kOhm da D0 a massa. Questo evita che D0 si trovi in uno stato indeterminato quando il pulsante è aperto.

Il collegamento dei due potenziometri è meno banale, infatti l'ESP8266 ha solo una porta di ingresso analogico A0 (ADC0)! Il trucco è connettere entrambe le uscite pot.s alla stessa porta e 'multiplexarle'. Multiplexing significa semplicemente che accenderai un potenziometro, lo leggerai, quindi lo spegnerai e passerai al secondo.

Se vuoi saperne di più su questo metodo, puoi leggere questo Instructable.

Collegare un estremo del potenziometro a GND, l'altro estremo a D5 per il potenziometro del giocatore sinistro e D6 per quello del giocatore destro.

Ogni pin centrale del potenziometro deve essere collegato ad un singolo diodo, e gli altri lati dei diodi devono essere collegati ad A0 (ADC0), con la polarità mostrata nella figura sopra.

Fase 5: Conclusione e Ringraziamenti

Ringrazio Sandro Maffiodo - SMAFFER - per la libreria ESPVGAX. Questo gioco non sarebbe possibile senza di esso.

Spero che questo Instructable sia d'ispirazione per altri programmatori per realizzare riproduzioni di giochi arcade classici più complessi con ESP8266, che ha molte meno limitazioni rispetto ad Arduino.

Infine, ho scritto questo Instructable per sottoporlo al Toys Contest: se ti piace o lo riproduci, prenditi un momento per votarlo!

Consigliato: