Nell’articolo di oggi vedremo come realizzare un semplice retro PC fatto con una singola scheda ESP32 e altri semplici componenti con uscita VGA.
Questo PC è in grado di eseguire Tiny Basic (“versione semplificata” di BASIC) in grado di generare l’output su monitor VGA.
La risoluzione del display è di 640×350 pixel, costituita da 80×25 caratteri asci in 8 colori.
A questo PC può essere collegato una tastiera PS/2 può essere collegata e utilizzata per scrivere codice. La memoria è di 14059 byte.
I pin I/O di ESP32 possono essere pilotati direttamente da comandi BASIC dedicati.
Questo progetto è reso possibile dalla libreria VGA ESP32 scritta da Fabrizio Di Vittorio . Clicca qui per maggiori informazioni.
Collegamento finale
I bottoni non sono assolutamente neccesari.
Passaggio 1: scheda ESP32, installazione IDE Arduino e configurazione della libreria VGA.
Per iniziare questo progetto è necessario acquistare una scheda ESP32 versione 1 o superiore. Consiglio di prendere una scheda ESP32 con molti pin. Questa scheda va bene per il completamento di questo progetto.
Altre tre schede che possono andare bene sono le seguenti:
Con la scheda a disposizione è neccesario procedere seguendo i tre step successivi:
- Installa l’ultimo IDE Arduino
- Configura l’ESP32 nell’IDE e
- Installa la libreria VGA
Sottopassaggio 1.
Esistono diversi metodi per programmare l’ESP32 ma per questo progetto consiglio di utilizzare Arduino IDE (la versione utilizzata in questo articolo è la 1.8.9). Per installarlo, puoi andare alla pagina IDE di Arduino e seguire le istruzioni indicate all’interno della pagina.
Sottopassaggio 2.
Ora è necessario configurare il proprio ESP32 all’interno dell’IDE di Arduino. I passaggi da effettuare sono i seguenti:
1) aprire l’IDE di Arduino
2) aprire la finestra delle preferenze, File/Preferenze , in alternativa premere “Ctrl+virgola”
3) vai su “URL aggiuntivi Board Manager”, copia e incolla il seguente testo:
https://dl.espressif.com/dl/package_esp32_index.json
e fare clic sul pulsante OK.
4) Gestore schede aperte. Vai a Strumenti/Scheda/Gestione schede…
5) Cercare ESP32 e premere il pulsante di installazione per “ESP32 by Espressif Systems“:
6) A questo punto, quando colleghi per la prima volta la tua ESP32, dovresti scegliere il modello giusto nella lunga lista di schede ESP32 disponibili (vedi immagine in questo passaggio) . In caso di dubbi sul modello, basta scegliere quello generico, ovvero il primo.
7) il sistema dovrebbe anche scegliere la giusta porta USB e la Velocità di Upload (normalmente 921600). A questo punto dovrebbe essere stabilita la connessione tra il tuo PC e la scheda ESP32.
Sottopassaggio 3.
Ora ti tocca installare la libreria FabGL VGA . Puoi scaricare il file zip src.old.zip da questo link, decomprimere e rinominare la cartella come ” src ” nella tua cartella
” …\arduino-1.8.9\librerie “.
Ora possiamo caricare TinyBasic
Passaggio 2: caricamento del codice Tiny Basic su ESP32
Scarica ESP32_TinyBasicPlus_PS2_FabLab_beta.ino da questo link.
Apri il file appena scaricato traamite il software Arduino IDE e carica il codice sulla tua scheda ESP32.
Se non ci sono messaggi di errore il codice dovrebbe essere in esecuzione sulla scheda.
Passaggio facoltativo: se vuoi testare TinyBasic prima di collegare la tastiera VGA e PS2, puoi già farlo con un client SSH e telnet. Puoi usare PuTTY.
Passaggio 3: collegamento della porta VGA
Hai bisogno delle seguenti componenti:
- un connettore DSUB15, ovvero un connettore VGA femmina o un cavo VGA da tagliare.
- tre resistori da 270 Ohm.
Collegare i connettori DSUB15 pin a ESP32 GND.
- VGA rosso al pin G2 di ESP32 con resistore da 270 Ohm.
- VGA verde al pin G15 di ESP32 con resistore da 270 Ohm.
- VGA blu al pin G21 di ESP32 con resistore da 270 Ohm.
- VGA Hsync al pin G17 di ESP32
- VGA Vsync al pin G4 di ESP32
- VGA GND (5, 6, 7, 8 e 10 ) al pin GND dell’ESP32
Per giocare ad eventuali giochi come tetris (lo vedremo in un prossimo articolo), hai bisogno di quattro pulsanti e quattro resistori da circa 1 a 2 kOhm.
Collegare i quattro resistori da GND ai pin ESP32 G25, G26, G34 e G35.
Collegare un lato del pulsante a ESP32 3,3 Volt e l’altro lato come segue:
- pulsante a destra su G26
- pulsante a sinistra su G34
- ruotare il pulsante su G25
- pulsante fino a G35
Passaggio 4 Ora colleghiamo la tastiera PS/2.
Dobbiamo colleggare 4 pin.
- Tastiera dati al pin GPIO 32 di ESP32,
- Tastiera IRQ (clock) al pin 33 di ESP32.
- e collegare anche la terra (GND)
- l’alimentazione + 5V, rispettivamente.
Puoi utilizzare un connettore PS/2 di una vecchia scheda madre non funzionante.
Il pinout del connettore PS/2 è mostrato nella figura sottostante:
Per maggiori informazioni clicca qui.
Passaggio 5: programmazione con Tiny Basic
A questo punto collega il monitor VGA e la tastiera PS2 e l’ESP32 all’alimentazione.
Dovebbe comparire sul monitor questo:
Ora puoi giocare un po’ con i comandi Tiny Basic
Prova Hello, Word:
1 2 3 4 5 |
10 print "Hello, World!" 20 goto 10 run |
Ora puoi provare qualcosa di più complesso, come pilotare il lampeggio di un LED con un programma di base. Collegare, ad esempio, l’anodo LED (la gamba lunga) a ESP32 GPIO pin 13 e il catodo a GND.
Scrivi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
new 10 i=1000 20 print i 30 delay i 40 dwrite 13,high 50 delay i 60 dwrite 13,low 70 i=i*9/10 80 if i>0 goto 20 90 end run |
Puoi vedere i risultati guardando il seguente video:
Approfondimenti
Iscriviti ai nostri gruppi Telegram
Link utili