Sommario:

Arduino Basic PC con uscita VGA: 5 passaggi (con immagini)
Arduino Basic PC con uscita VGA: 5 passaggi (con immagini)

Video: Arduino Basic PC con uscita VGA: 5 passaggi (con immagini)

Video: Arduino Basic PC con uscita VGA: 5 passaggi (con immagini)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Dicembre
Anonim
Image
Image
Arduino Basic PC con uscita VGA
Arduino Basic PC con uscita VGA
Arduino Basic PC con uscita VGA
Arduino Basic PC con uscita VGA

Nel mio precedente Instructable ho mostrato come costruire un computer retrò a 8 bit con BASIC, tramite due Arduino, e con un segnale di uscita in bianco e nero per uno schermo TV.

Ora mostrerò come costruire lo stesso computer, ma con il segnale in uscita a colori per un monitor VGA!

Puoi inserire le variabili e il programma BASIC con una tastiera PS2 e genera l'output per un monitor VGA con una risoluzione del testo di 24 colonne x 10 righe di caratteri 5x6 pixel, in quattro colori. Potete vederlo in azione nel video in alto. Il programma può quindi essere salvato sulla EEPROM di Arduino, ed è comunque possibile controllare i pin I/O direttamente tramite i comandi dedicati Basic.

Questo progetto può essere utilizzato anche per stampare semplici messaggi di testo sul monitor, come mostrato nella terza immagine in questa pagina.

Un Arduino è il "master" ed esegue Tiny Basic Plus, un'implementazione C di Tiny Basic, con particolare attenzione al supporto per Arduino. Controlla anche una tastiera PS2. L'output viene poi inviato tramite la porta seriale al secondo Arduino che genera l'output VGA grazie alla libreria VGAx.

L'idea di utilizzare uno o più Arduino per creare un PC vecchio stile con un dialetto Basic non è nuova ma, per quanto ne so, nessuno di loro ha un output a colori. In alcuni progetti disponibili in rete si è utilizzato display LCD, mentre in altri, per consentire l'utilizzo dei monitor, è stata utilizzata la libreria TVout, che è B&W. Inoltre, in molti di questi progetti devono essere costruiti scudi o hardware speciali. Qui sono necessari solo due Arduino, poche resistenze e il connettore per la tastiera PS2 e il monitor, come mostrato nelle immagini sopra.

Passaggio 1: crea il master Arduino con TinyBasic e la tastiera PS2

TinyBasic Plus e la libreria VGAx funzionano per Arduino IDE 1.6.4.

Prima scaricalo dalla pagina web ufficiale di Arduino. Se hai una versione più recente sul tuo PC, la cosa migliore è scaricarla in formato.zip e decomprimerla sul tuo PC. Fare clic su questo collegamento per scaricare la versione per Windows.

Hai bisogno della libreria PS2keyboard. Lo trovi in fondo a questa pagina. Basta decomprimerlo e copiare la cartella PS2keyboard in: arduino-1.6.4\libraries

Infine, in questa pagina, scarica il file: TinyBasicPlus_PS2_VGAx.ino, decomprimilo e caricalo sul tuo Arduino.

Questa è una variazione dello standard TinyBasic Plus in cui ho aggiunto la libreria PS2 e modificato il codice per accettare le variabili da essa.

Maggiori dettagli su TiniBasic Plus e tutorial sono disponibili a questo link.

Se non ci sono problemi e problemi di compatibilità, Tiny Basic è già in esecuzione. Puoi testarlo tramite un monitor seriale nel tuo PC. A questo scopo utilizzo PuTTY, ma sono disponibili molti altri programmi.

Devi impostare la porta COM corretta (è la stessa che trovi nell'IDE di Arduino) e baud rate = 4800

Qui puoi già testare alcuni programmi in Basic semplicemente digitandoli con la tastiera del tuo PC (NB più avanti ti mostrerò come collegare la tastiera della PS2 direttamente ad Arduino).

Prova ad esempio:

10 STAMPA "Ciao, Mondo!"

20 VAI A 10

CORRERE

Puoi quindi interrompere il ciclo infinito semplicemente digitando ctrl+c.

Nota che questa combinazione non funzionerà per la tastiera PS2.

Nel passaggio successivo mostrerò come collegare la tastiera PS2 ad Arduino.

Passaggio 2: collega la tastiera PS2 al Master Arduino

Collega la tastiera PS2 al Master Arduino
Collega la tastiera PS2 al Master Arduino

Ho ottenuto tutte le informazioni e la libreria da questo Instructable.

Essenzialmente è necessario collegare i seguenti quattro pin:

  • dati della tastiera al pin 8 di Arduino,
  • tastiera IRQ (clock) al pin 3 di Arduino;
  • devi collegare anche GND e +5V.

Ho preso un vecchio connettore PS2 femmina da una scheda madre del PC rotta. Puoi semplicemente rivenderlo con una pistola termica.

Nell'immagine mostrata in questo passaggio, puoi trovare la funzione dei pin necessari del connettore PS2.

Passaggio 3: carica la libreria e il codice VGAx sul secondo Arduino e metti tutto insieme

Carica la libreria e il codice VGAx sul secondo Arduino e metti tutto insieme
Carica la libreria e il codice VGAx sul secondo Arduino e metti tutto insieme

Prima scarica il codice VGAx-PC.ino in fondo a questa pagina e copialo sul tuo PC in una directory con lo stesso nome.

Scarica la libreria VGAx da questo link su GitHub. Il modo più semplice è copiarlo nella sottocartella del software Arduino denominata "librerie", per essere immediatamente riconosciuto.

IMPORTANTE: questa libreria funziona per Arduno IDE 1.6.4 ma non è completamente compatibile con versioni precedenti o più recenti.

Carica il VGAx-PC.ino nella tua seconda scheda Arduino (l'ho testato per la versione Nano ma anche Uno dovrebbe funzionare).

Un avviso per memoria disponibile insufficiente è normale. Se non hai altri errori tutto ok e puoi iniziare subito a costruire il tuo PC a 8 bit.

Per questo hai bisogno di:

  • due Arduino Uno Rev. 3 o due Arduino Nano 3.x (ATmega328)
  • un connettore DSUB15, ovvero un connettore VGA femmina o un cavo VGA da tagliare.
  • resistenze: 2 x 68 Ohm e 2 x 470 Ohm
  • un connettore PS2 femmina
  • fili
  • facoltativa: una breadboard o una strip board

Lo schema è riportato all'inizio di questo passaggio. Un esempio di una "console" finita è mostrato nel passaggio introduttivo.

Lo stesso schema, con una risoluzione maggiore, è riportato in un file compresso in fondo a questo passaggio.

Passaggio 4: Opzionale: utilizzo di un PCB

Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB
Opzionale: utilizzo di un PCB

Puoi anche costruire questo PC VGA di base utilizzando un piccolo PCB. Puoi prendere ispirazione dalle immagini in questo passaggio o puoi persino stampare la tua tavola.

Ho usato due strip di header femmina con 15 fori per l'uscita video Arduino, mentre per il master ho usato due strip con doppi fori. In questo modo posso utilizzare quelli esterni per inserire i contatti di altri componenti del progetto, che possono essere pilotati direttamente con il codice Basic. Ho anche aggiunto al centro delle strisce rimanenti, una collegata a 5 V e l'altra per GND.

Passaggio 5: commenti finali e ringraziamenti

Il mio principale ringraziamento va a Sandro Maffiodo aka Smaffer, il creatore della fantastica libreria VGAx.

Molte grazie anche agli autori di TinyBasic Plus:

  • Tiny Basic 68k - Gordon Brandly
  • Arduino Basic / Tiny Basic C - Michael Field
  • Tiny Basic Plus - Scott Lawrence

Grazie anche a "djsadeepa", l'autore di Instructable per il collegamento della tastiera PS2.

A tutte le persone interessate a questo progetto: se avete problemi, non esitate a chiedere suggerimenti nei commenti.

Se ci riesci, scrivi anche un commento o condividi un'immagine del dispositivo che costruisci.

Consigliato: