Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man återskapar det klassiska Pong-spelet med Arduino

Pong var det första tv-spelet någonsin som nådde massmarknaden. För första gången i historien togs konceptet med ett “tv-spel” in i familjens hem, tack vare Atari 2600 – så det är bara rätt att vi hyllar denna historiska pärla lite. Nu kan du återuppleva det (visserligen något tråkigt spel) använder en Arduino och några vanliga komponenter.

Jag kommer inte att ljuga – det är osannolikt att din dotter kommer att ge upp sin Nintendo DS, och detta kommer inte att ge timmar av nöje för hela familjen – men det är ett fantastiskt och enkelt projekt för att förbättra din Arduino-kodning. Och om du precis har börjat, glöm inte att kolla in vår Arduino-guide för nybörjare.

Vi kommer att göra två grundläggande kontroller, och videon kommer att matas ut till din TV via en vanlig kompositvideokabel.

För att ta det här projektet till nästa nivå kan du 3D-skriva ut ett hölje. YouTube-användaren PotentPrintables gjorde just det!

Krav för Arduino Pong

470 ohm motstånd x1 1k ohm motstånd x1 10k ohm potentialmätare (vridbart variabelt motstånd) x2 Arduino x1 (valfri version) RCA plugg x1 (om du har fler än ett kan du koppla upp ljud också. Ett för videon är ett absolut minimum) Tryckknapp växla x1 10k ohm motstånd x1

Du kommer också att ladda ner TV Out Arduino-biblioteket härifrån – hämta TVoutBeta1.zip, den senaste versionen. Placera de resulterande mapparna i din /arduino/bibliotek katalogen och starta om Arduino IDE om den redan är öppen.

Testar TV Out

Ta din RCA-kontakt och ta bort det yttre lagret. Samla upp skärmningen, vrid och lägg undan åt sidan. Det här är din mark. I mitten ska det finnas ytterligare en kabel med plastskärmning – igen, skala bort denna så att du har din signalledning.

Relaterad  Teslas elbilar är föremål för en annan utredning – nu för att de kan spela spel medan de kör

Löd både 470 ohm och 1k ohm motstånden till mittsignallinjen på din RCA-kontakt – detta ger en synksignal och den faktiska videosignalen, kombinerat för att producera den analoga videoingången. Motståndet på 470 ohm ska placeras i digital IO-stift D07, medan 1k ohm-motståndet går till stift D09.

Dessa stift ställs in av biblioteket vi importerar, så du kan inte ändra dem. En av dina Arduino GND-stift ska gå till skärmningen (utanför) av RCA:n.

Nu kan du gå vidare och ladda in ett exempel; även om både PAL och NTSC tillhandahålls, borde det egentligen inte spela någon roll med moderna digitala TV-apparater – NTSC-demon fungerade bra för mig trots att jag var i Storbritannien. Anslut till din TV och bör få en härlig retro 3D-kub. Ooooh ja – är du exalterad än? Jag är.

Testa analoga potentiometeringångar

Ok, vi har fått TV-utgången att fungera, nu ska vi ta ett försök med kontrollerna. Ledningarna till “grytorna” är inte så kritiska – var och en ska ha 3 stift, och den centrala producerar nästan alltid utsignalen. Koppla den till A0 och A1 (en för varje kruka). På ett av sidostiften – spelar det ingen roll vilken – koppla upp +5V. Den andra tappen på andra sidan ska gå till marken.

Här har jag lagt dem båda vända mot vardera på singelbräda, eftersom jag bara har korta trådar. För en polerad produkt vill du använda en gammal nätverkskabel för att ge dig lite distans (så att du faktiskt kan sitta i soffan och spela).

Ladda sedan upp en av de grundläggande exempelskisserna som följer med Arduino – den analoga ingången. Denna demo kommer att blinka den inbyggda lysdioden snabbare eller långsammare, beroende på ingången på A0.

Relaterad  Hur man aktiverar speldelning på PlayStation 5

Den testar inte den andra A1-potten, men om du har kopplat A0 rätt så kan jag inte se hur du skulle göra ett misstag på A1, så låt oss anta att det är bra och gå vidare.

Lägg till en startbrytare

Slutligen lägger vi till en startbrytare på D02. Se kopplingsschemat här för hur du gör det. Denna switch kommer att användas för att starta spelet när du är i menyn.

Pong-koden

Vi använder någon kod som ursprungligen skrevs av Lamonicamodifierad av duboisvb för två spelare, och uppdaterad av mig själv för att använda den senaste betaversionen av TV-out-biblioteket. Du kan se och ladda ner koden från denna pastebin.

Det är ganska lång men enkel kod som inte borde kräva någon förklaring från mig. Som de flesta spel förlitar det sig på ett spelläge (meny, i spelet, game over), och läser ingångsvärdena för båda kontrollerna och switchen varje iteration av loopen. Utöver det finns metoderna för att rita skärmen, bollen, paddlarna och spellogiken.

Observera att koden inkluderar ljudutgång också: Jag kunde inte hitta några fler RCA-kontakter för att testa det, men om du har några, koppla sedan signalstiftet direkt till D11, och du bör få några behagliga retrotoner.

För att vara ärlig visste jag inte att Arduino ens kunde göra TV-ut utan någon oerhört komplex kodning; TV-utgångsbiblioteket gör det väldigt enkelt. Även om du inte gillar retrospel är det ett bra sätt att använda den här grundläggande TV-utgången för att använda befintlig utrustning som en billig bildskärmsenhet. Du kan naturligtvis skriva ut färg också.

Relaterad  Hur man skapar eller redigerar din iMessage-profil

Tror du att du kommer att prova Arduino Pong, eller kanske göra din egen retrovideospelremake? Berätta för oss i kommentarerna om du har!

Om författaren

James Bruce (720 publicerade artiklar)

James har en BSc i artificiell intelligens och är CompTIA A+ och Network+ certifierad. När han inte är upptagen som Hardware Review Editor, gillar han LEGO, VR och brädspel. Innan han började på MakeUseOf var han ljustekniker, engelskalärare och datacenteringenjör.

Mer från James Bruce

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera

Table of Contents