Sommario:

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

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

Video: Arduino Basic PC con uscita TV: 5 passaggi (con immagini)
Video: Arduino e Tinkercad - 001 2024, Dicembre
Anonim
Image
Image
Arduino Basic PC con uscita TV
Arduino Basic PC con uscita TV
Arduino Basic PC con uscita TV
Arduino Basic PC con uscita TV
Arduino Basic PC con uscita TV
Arduino Basic PC con uscita TV

In questo Instructables mostrerò come costruire un computer retrò a 8 bit con BASIC, per mezzo di due Arduino e pochi altri componenti.

Si possono inserire le variabili e il programma BASIC con una tastiera PS2, e l'output viene mostrato su un monitor con un testo 47 colonne x 29 righe di caratteri 8x8 pixel (B&N), una risoluzione simile o migliore del Commodore 64, pari a 40x25 caratteri.

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.

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 quindi inviato tramite la porta seriale al secondo Arduino che genera l'output video grazie alla fantastica libreria MRETV.

L'idea di utilizzare uno o più Arduino per creare un PC vecchio stile con un dialetto Basic non è nuova, ma finora c'erano alcune forti limitazioni nella risoluzione dell'output. In alcuni progetti disponibili in rete si utilizzavano display LCD, mentre in altri, per consentire l'utilizzo dei monitor, è stata utilizzata la libreria TVout, che ha una risoluzione molto più bassa. Inoltre, in molti di questi progetti devono essere costruiti scudi o hardware speciali.

Qui hai bisogno solo di due Arduino, un paio di diodi, alcune resistenze e il connettore per la tastiera PS2 e il monitor, come mostrato nell'immagine sopra.

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

TinyBasic Plus e MRETV funzionano per gli anziani - e diversi - Arduino IDE.

Prima scarica IDE 1.6.4 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.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 il viariable da esso.

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 = 2400

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;
  • ovviamente devi collegare anche GND e +5V.

Ho preso un vecchio connettore femmina PS2 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 MRETV sul secondo Arduino e metti tutto insieme

Carica la libreria MRETV sul secondo Arduino e metti tutto insieme
Carica la libreria MRETV sul secondo Arduino e metti tutto insieme

Il punto chiave di questo progetto è l'esistenza della fantastica libreria MRETV. C'è un Instructable dedicato dove è descritto in dettaglio.

Utilizza solo due resistori e due diodi per generare video a schermo intero, con una risoluzione del testo di 47 x 29 di 8x8 caratteri. Come si dice nell'introduzione, "la generazione video è stata fatta prima, ma non in questo modo. Seriale FULL DUPLEX ancora disponibile durante la generazione del video". Questo permette di prelevare i dati dall'Arduino "master" e mostrarli sul monitor. In pratica questo secondo Arduino "slave" viene utilizzato come interfaccia grafica!

Poiché MRETV funziona per IDE 1.6.6, scaricalo dalla pagina Web ufficiale di Arduino. Ancora una volta, la cosa migliore è scaricarli in formato.zip e decomprimerli sul tuo PC. Fare clic su questo collegamento per scaricare la versione per Windows.

Scarica quindi la libreria MRETV da questo link.

Decomprimilo e salva la cartella "MRETV" in: arduino-1.6.6\libraries

Infine scarica TVtext_slave.rar in fondo a questa pagina, decomprimilo e caricalo nel tuo Arduino slave.

Se non ci sono messaggi di errore, puoi collegare il connettore RCA. Servono i due diodi e le resistenze da 1 kOhm e 300 Ohm, come mostrato nello schema in questa pagina.

A questo punto puoi collegare tutto insieme.

L'elenco completo dei materiali è:

  • due Arduino Uno Rev. 3 o due Arduino Nano 3.x (ATmega328)
  • due resistori 1 kOhm
  • una resistenza da 300 Ohm
  • due diodi 1n4148 (x2) o diodo di commutazione al silicio simile
  • due spine RCA femmina (una per video, una - facoltativa - per audio)
  • un connettore PS2 femmina
  • una breadboard e fili

Il master Arduino invia i dati allo slave tramite il cavo arancione, ovvero dal pin 1 (Tx) del master al pin 2 (Rx) dello slave. Se devi ricaricare del codice, devi prima scollegare questo cavo.

Collega quindi l'arduino slave a un alimentatore 5V, il cavo RCA alla TV e la tastiera alla PS2, e ora dovresti vedere il codice sulla tua TV!

Le funzioni di questo dialetto Basic sono descritte in dettaglio nella sua homepage (vedi link al punto 2). Con i comandi "esave" e "eload" è possibile salvare un programma Basic nella EEPROM. Questo programma viene eseguito per impostazione predefinita ogni volta che si ripristina il master Arduino. Per eliminarlo puoi usare il comando "eformat".

Una delle caratteristiche più importanti di questo programma è che puoi ancora pilotare l'I/O Arduino master con comandi Basic dedicati, come

  • DWRITE pin, value - imposta il pin con un valore (HIGH, HI, LOW, LO)
  • AWRITE pin, value - imposta pin con valore analogico (pwm) 0..255
  • DREAD(pin) - ottieni il valore del pin
  • AREAD(analogPin) - ottiene il valore del pin analogico

Quindi puoi scrivere un programma in Basic che guida dell'hardware, salvarlo nella EEPROM e quindi eseguirlo automaticamente semplicemente ripristinando Arduino.

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

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

Per l'uscita video Arduino si possono usare due header strip femmina con 15 fori, mentre per il master suggerisco di usare quattro strip. In questo modo potrete utilizzare quelli esterni per inserire i contatti dei vostri componenti di progetto.

Ho anche aggiunto al centro delle strisce rimanenti, una collegata a 5 V e l'altra per GND.

Infine, nel file.rar, si trovano le maschere per incidere una scheda ramata.

Passaggio 5: commenti finali e ringraziamenti

Questo progetto non avrebbe potuto essere realizzato senza la libreria MRETV. Quindi il mio principale riconoscimento va al suo autore, che usa l'acronimo Mr E.

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: costruire è più facile di quanto possa sembrare a prima vista. I miei problemi principali sono stati con le compatibilità dell'IDE di Arduino. Se hai problemi, non esitare a chiedere suggerimenti nei commenti.

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

Consigliato: