Cum de a reda jocul Pong clasic folosind Arduino

Cum de a reda jocul Pong clasic folosind Arduino / DIY

Pong a fost primul joc video care a ajuns pe piața de masă. Pentru prima dată în istorie, conceptul de a “joc video” a fost adus în casa familiei, datorită modelului Atari 2600 - deci este corect să plătim un mic omagiu acestei bijuterii istorice. Acum poți relua asta (adesea joc destul de plictisitor) folosind un Arduino și câteva componente comune.

Nu mint - este puțin probabil ca fiica ta să renunțe la Nintendo DS și asta nu va oferi ore de distracție pentru întreaga familie - dar este un proiect minunat și ușor de îmbunătățit a codării Arduino. Și dacă începeți, nu uitați să consultați ghidul Arduino al începătorului nostru.

Vom face două controale de bază și videoclipul va fi transmis către televizorul dvs. printr-un cablu video compozit standard.

Cerințe pentru Arduino Pong

  • 470 ohm rezistor x1
  • 1K ohm rezistor x1
  • 10k ohm Potențiometru (twiddly rezistor variabil) x2
  • Arduino x1 (orice versiune)
  • RCA dop x1 (dacă aveți mai multe, puteți conecta și sunetul. Unul pentru videoclip este minim)
  • Apasa butonul intrerupator x1
  • 10k ohm rezistor x1

De asemenea, veți descărca biblioteca TV Out Arduino de aici - obțineți TVoutBeta1.zip, ultima versiune. Puneți dosarele care rezultă toate în dvs. / Arduino / biblioteci și reinițializați ID-ul Arduino dacă este deja deschis.

Testarea ieșirii TV

Luați dopul RCA și îndepărtați stratul exterior. Strângeți ecranul, răsuciți-vă și puneți-l la o parte. Acesta este motivul tău. În centru ar trebui să fie un alt cablu cu ecran de protecție din plastic - din nou, îndepărtați-l astfel încât să aveți linia de semnal.

Lipiți ambele rezistoare de 470 ohmi și 1k ohm la linia centrală a semnalului RCA - aceasta oferă un semnal de sincronizare și semnal video real, combinate pentru a produce intrarea video analogică. Rezistorul de 470 ohmi ar trebui să introducă un pin IO digital D07, în timp ce rezistorul 1k ohm merge la pinul D09.

Acești insigne sunt setați de biblioteca pe care o importăm, deci nu le puteți modifica. Unul dintre piulițele dvs. Arduino GND ar trebui să meargă la ecranul (exterior) al RCA.

Acum puteți merge și încărcați într-un exemplu; deși atât PAL cât și NTSC sunt furnizate, nu ar trebui să conteze cu televizoarele digitale moderne - demo-ul NTSC a funcționat bine pentru mine, în ciuda faptului că este în Marea Britanie. Conectați-vă la televizor și ar trebui să obțineți un cub 3D retro minunat. Oooooh da - încă ești încântat? eu sunt.

Verificați intrările potențiometrului analogic

Bine, avem ieșirea TV, acum să mergem cu controlorii. Cablajul “vase” nu este atât de critic - fiecare ar trebui să aibă 3 pini, iar cel central aproape întotdeauna produce semnalul de ieșire. Trageți la A0 și A1 (câte unul pentru fiecare oală). Pe unul dintre pini laterali - nu contează care - sârmă până + 5V. Celălalt capăt de pe partea cealaltă ar trebui să meargă la sol.

Aici i-am pus pe amândouă pe fiecare pe un singur paine, pentru că am doar fire scurte. Pentru un produs lustruit, veți dori să utilizați un cablu vechi de rețea pentru a vă oferi o distanță mică (astfel încât să puteți sta de fapt pe canapea pentru a juca).

Apoi, încărcați una dintre schițele de bază care apar cu Arduino - intrarea analogică. Această demonstrație va bloca LED-ul de bord mai rapid sau mai lent, în funcție de intrarea pe A0.

Nu verifica cealalta oala A1, dar daca ai A0 conectat in sus atunci nu pot vedea cum ai face o greseala pe A1, asa ca sa presupunem ca totul e bine si mergi mai departe.

Adăugați un comutator de pornire

În cele din urmă, vom adăuga un comutator de pornire pe D02. Consultați schema de conexiuni aici pentru a afla cum să faceți acest lucru. Acest comutator va fi folosit pentru a porni jocul când este în meniu.

Codul Pong

Folosim un cod inițial scris de Lamonica, modificat de duboisvb pentru doi jucători și actualizată de mine să utilizez ultima versiune beta a bibliotecii TV out. Puteți vizualiza și descărca codul din acest pastebin.

Este un cod destul de lung, dar simplu, care nu ar trebui să necesite nici o explicație din partea mea. Ca majoritatea jocurilor, se bazează pe o stare de joc (meniu, în joc, joc peste) și citește valorile de intrare ale ambelor controale și comutarea fiecărei iterații a bucla. Dincolo de acestea sunt metode pentru a desena ecranul, mingea, padelele și logica jocului.

Rețineți că codul include iesire audio de asemenea: nu am putut găsi nici mai multe prize RCA pentru a testa că, dar dacă aveți unele, apoi sârmă semnalul PIN direct la D11, și ar trebui să obțineți unele tonuri retro plăcut.

Pentru a fi sincer, nu știam că Arduino ar putea chiar să facă TV fără niște coduri extrem de complexe; biblioteca TV out face foarte ușoară. Chiar dacă nu sunteți în jocuri retro, folosirea acestui TV de bază este o modalitate foarte bună de a utiliza echipamentele existente ca un dispozitiv de monitorizare ieftin. Desigur, puteți ieși și culoarea.

Credeți că veți avea un duel la Arduino Pong sau poate să faceți propriul remake de retro jocuri video? Spuneți-ne în comentariile dvs. dacă aveți!

Explorați mai multe despre: Arduino, Retro Gaming.