
William Charles
0
4058
1291
Pong var den første videospil nogensinde, der nåede til massemarkedet. For første gang i historien er begrebet a “videospil” blev bragt ind i familiens hjem takket være Atari 2600 - så det er kun rigtigt, at vi hylder en lille hyldest til denne historiske perle. Nu kan du genopleve det (ganske vist noget kedeligt gameplay) ved hjælp af en Arduino og nogle almindelige komponenter.
Jeg vil ikke lyve - det er usandsynligt, at din datter opgiver sin Nintendo DS, og dette vil ikke give timevis af sjov for hele familien - men det er et fantastisk og nemt projekt at forbedre din Arduino-kodning. Og hvis du lige er kommet i gang, så glem ikke at tjek vores begynders Arduino-guide.
Vi laver to grundlæggende controllere, og videoen udsendes til dit tv via et standard kompositvideokabel.
For at tage dette projekt til det næste niveau kunne du 3D udskrive en kabinet. YouTube-bruger PotentPrintables gjorde netop det!
Krav til Arduino Pong
- 470 ohm modstand x1
- 1k ohm modstand x1
- 10 k ohm potentiometer (twiddly variabel modstand) x2
- Arduino x1 (hvilken som helst version)
- RCA prop x1 (hvis du har mere end én, kan du også tilslutte lyd. En til videoen er et absolut minimum)
- Trykknap kontakt x1
- 10k ohm modstand x1
Du henter også TV Out Arduino-biblioteket herfra - få TVoutBeta1.zip, den seneste udgivelse. Placer de resulterende mapper alle i din / Arduino / biblioteker katalog, og genstart Arduino IDE, hvis den allerede er åben.
Test af TV Out
Tag dit RCA-stik og strip det ydre lag væk. Saml afskærmningen, drej den og læg den væk til den ene side. Dette er din jord. I midten skal der være et andet kabel med plastikafskærmning - igen, fjern dette væk, så du har din signallinje.
Lodde både 470 ohm og 1k ohm modstande til center signallinjen på dit RCA-stik - dette giver et synkroniseringssignal og det faktiske videosignal, kombineret for at producere den analoge videoindgang. 470 ohm-modstanden skal slot ind i digital IO-pin D07, mens 1k ohm-modstanden går til pin D09.
Disse pins sættes af det bibliotek, vi importerer, så du kan ikke ændre dem. En af dine Arduino GND-stifter skal gå til afskærmningen (udenfor) af RCA.
Nu kan du gå foran og indlæse et eksempel; Selvom både PAL og NTSC leveres, skulle det ikke rigtig gøre noget med moderne digitale tv'er - NTSC-demoen fungerede fint for mig på trods af at han var i England. Tilslut dit tv, og få en dejlig retro 3D-terning. Oooooh ja - er du ophidset endnu? Jeg er.
Test analoge potentiometerindgange
Okay, vi har tv-output fungerer, lad os nu gå med controllere. Kabelføring af “gryder” er ikke så kritisk - hver skal have 3 stifter, og den centrale en producerer næsten altid udgangssignalet. Kablet til A0 og A1 (en for hver pot). På en af sidestifterne - det betyder ikke noget hvilken - ledning + 5V. Den anden pin på den anden side skal gå i jorden.
Her har jeg lagt dem begge mod hver enkelt brødbræt, fordi jeg kun har korte ledninger. For et poleret produkt skal du bruge et gammelt netværkskabel til at give dig lidt afstand (så du faktisk kan sidde i sofaen og lege).
Derefter skal du indlæse en af de grundlæggende eksempelskitser, der følger med Arduino - den analoge input. Denne demo vil blinke den indbyggede LED hurtigere eller langsommere, afhængigt af input på A0.
Det tester ikke den anden A1-pot, men hvis du har A0 tilsluttet til højre, kan jeg ikke se, hvordan du ville begå en fejl på A1, så lad os antage, at alt er godt og gå videre.
Tilføj en startkontakt
Endelig tilføjer vi en startkontakt på D02. Se ledningsdiagrammet her for, hvordan du gør det. Denne switch bruges til at starte spillet i menuen.
Pong-koden
Vi bruger en kode oprindeligt skrevet af Lamonica, ændret af duboisvb for to spillere og opdateret af mig selv til at bruge den nyeste betaversion af TV-ud-biblioteket. Du kan se og downloade koden fra denne pastebin.
Det er ganske lang, men simpel kode, der ikke kræver nogen forklaring fra mig. Som de fleste spil er det afhængigt af en spiltilstand (menu, in-game, game over) og læser indgangsværdierne for begge controllere og skifter hver iteration af løkken. Ud over det er metoderne til at tegne skærmen, bolden, padlerne og spillogikken.
Bemærk, at koden inkluderer lydudgang også: Jeg kunne ikke finde flere RCA-stik til at teste det, men hvis du har nogle, så led signalstiften direkte til D11, og du skulle få nogle behagelige retro toner.
For at være ærlig vidste jeg ikke, at Arduino endda kunne udsende tv uden nogen enorm kompleks kodning; TV-ud-biblioteket gør det virkelig let. Selv hvis du ikke er i retro-spil, er det at bruge dette grundlæggende tv-udstyr en god måde at bruge eksisterende udstyr som en billig skærmenhed. Du kan selvfølgelig også udskrive farve.
Tror du, at du skal gå på Arduino Pong, eller måske lave din egen retro-videospil-remake? Fortæl os i kommentarerne, hvis du har!