Come ricreare il classico gioco Pong usando Arduino

Come ricreare il classico gioco Pong usando Arduino / Fai da te

Pong è stato il primo videogioco in assoluto che ha raggiunto il mercato di massa. Per la prima volta nella storia, il concetto di a “video gioco” è stato portato nella casa di famiglia, grazie all'Atari 2600 - quindi è giusto che diamo un piccolo omaggio a questa gemma storica. Ora puoi riviverlo (un gameplay certamente un po 'noioso) usando un Arduino e alcuni componenti comuni.

Non mentirò - è improbabile che tua figlia rinuncerà al suo Nintendo DS, e questo non fornirà ore di divertimento per tutta la famiglia - ma è un progetto fantastico e facile per migliorare la codifica di Arduino. E se hai appena iniziato, non dimenticare di dare un'occhiata alla nostra guida Arduino per principianti.

Creeremo due controller di base e il video verrà trasmesso alla TV tramite un cavo video composito standard.

Requisiti per Arduino Pong

  • 470 resistenza ohm x1
  • 1k resistenza ohm x1
  • Potenziometro da 10k ohm (resistenza variabile a due punte) x2
  • Arduino x1 (qualsiasi versione)
  • RCA spina x1 (se ne hai più di uno, puoi collegare anche il suono. Uno per il video è un minimo indispensabile)
  • Premi il bottone interruttore x1
  • 10k resistenza ohm x1

Dovrai anche scaricare la libreria TV Out Arduino da qui - prendi il TVoutBeta1.zip, l'ultima versione. Inserisci tutte le cartelle risultanti nel tuo / Arduino / librerie directory e riavviare l'IDE Arduino se è già aperto.

Test TV Out

Prendi la spina RCA e togli lo strato esterno. Sollevare la schermatura, torcere e mettere da parte. Questa è la tua base. Al centro dovrebbe esserci un altro cavo con schermatura in plastica - di nuovo, toglilo via in modo da avere la linea del segnale.

Saldate sia i resistori da 470 ohm che da 1k ohm alla linea di segnale centrale della vostra spina RCA - questo fornisce un segnale di sincronizzazione e il segnale video effettivo, combinati per produrre l'ingresso video analogico. La resistenza da 470 ohm dovrebbe essere inserita nel pin IO digitale D07, mentre la resistenza da 1k ohm va al pin D09.

Questi pin sono impostati dalla libreria che importiamo, quindi non puoi cambiarli. Uno dei tuoi pin Arduino GND dovrebbe andare alla schermatura (all'esterno) della RCA.

Ora puoi andare avanti e caricare un esempio; sebbene siano forniti sia PAL che NTSC, non dovrebbe interessare le moderne TV digitali: la demo NTSC ha funzionato bene per me, nonostante sia nel Regno Unito. Collegati alla tua TV e dovresti ottenere un delizioso cubo 3D retrò. Oooooh sì - sei ancora eccitato? sono.

Test degli ingressi del potenziometro analogico

Ok, abbiamo l'uscita TV funzionante, ora proviamo con i controller. Il cablaggio del “pentole” non è così critico - ognuno dovrebbe avere 3 pin, e quello centrale produce quasi sempre il segnale in uscita. Collegalo a A0 e A1 (uno per ogni piatto). Su uno dei piedini laterali - non importa quale - cablare + 5V. L'altro pin sull'altro lato dovrebbe andare a terra.

Qui li ho posizionati entrambi rivolti verso l'altro su un'unica breadboard, perché ho solo fili corti. Per un prodotto raffinato, ti consigliamo di utilizzare un vecchio cavo di rete per darti un po 'di distanza (in modo che tu possa sederti sul divano per giocare).

Successivamente, carica uno degli schizzi di esempio di base forniti con Arduino - quello di ingresso analogico. Questa demo lampeggerà più velocemente o più lentamente il LED di bordo, a seconda dell'input di A0.

Non prova l'altro piatto A1, ma se hai A0 cablato correttamente, allora non riesco a vedere come faresti un errore su A1, quindi supponiamo che sia tutto ok e vai avanti.

Aggiungi un interruttore di avvio

Infine, aggiungeremo un interruttore di avvio su D02. Fare riferimento allo schema elettrico qui per come farlo. Questo interruttore verrà utilizzato per avviare il gioco quando ci si trova nel menu.

Il codice Pong

Stiamo usando un codice originariamente scritto da Lamonica, modificato da duboisvb per due giocatori e aggiornato da solo per utilizzare l'ultima versione beta della libreria di uscita TV. È possibile visualizzare e scaricare il codice da questo pastebin.

È un codice piuttosto lungo ma semplice che non dovrebbe richiedere alcuna spiegazione da parte mia. Come la maggior parte dei giochi, si basa su uno stato di gioco (menu, in-game, game over) e legge i valori di input di entrambi i controller e l'interruttore ogni iterazione del ciclo. Oltre a ciò ci sono i metodi per disegnare lo schermo, la palla, i paddle e la logica del gioco.

Si noti che il codice include Uscita audio troppo: non sono riuscito a trovare altri plug RCA per testarlo, ma se ne hai uno, quindi collegare il pin del segnale direttamente a D11, e dovresti ottenere dei bei toni retrò.

Ad essere onesti, non sapevo che Arduino potesse persino fare la TV senza una codifica immensamente complessa; la libreria di uscita TV lo rende davvero facile. Anche se non ti piacciono i giochi retrò, l'uso di questo TV di base è un ottimo modo per utilizzare l'attrezzatura esistente come un monitor economico. Ovviamente puoi anche produrre un colore.

Pensi di poter provare ad Arduino Pong, o magari fare il tuo remake di un videogioco retrò? Diteci nei commenti se avete!

Scopri di più su: Arduino, Retro Gaming.