Slik gjenoppretter du det klassiske Pong-spillet ved hjelp av Arduino
Pong var det første videospillet som nådd massemarkedet. For første gang i historien er begrepet a “video spill” ble brakt inn i familiens hjem, takket være Atari 2600 - så det er bare rett at vi betaler en liten hyllest til denne historiske perlen. Nå kan du leve det igjen (ganske vist litt kjedelig spill) bruker en Arduino og noen vanlige komponenter.
Jeg vil ikke lyve - det er lite sannsynlig at datteren din vil gi opp Nintendo DS, og dette kommer ikke til å gi mange timer moro for hele familien - men det er et fantastisk og enkelt prosjekt for å forbedre Arduino-kodingen. Og hvis du bare begynner, ikke glem å sjekke ut vår nybegynners Arduino guide.
Vi lager to grunnleggende kontroller, og videoen vil bli sendt til TVen din via en standard kompositt videokabel.
Krav til Arduino Pong
- 470 ohm motstand x1
- 1k ohm motstand x1
- 10k ohm Potentiometer (twiddly variable motstand) x2
- Arduino x1 (hvilken som helst versjon)
- RCA støpsel x1 (hvis du har mer enn en, kan du hente lyd også. En for videoen er et minimum)
- Push bytte om x1
- 10k ohm motstand x1
Du vil også laste ned TV Out Arduino biblioteket herfra - få TVoutBeta1.zip, den nyeste utgivelsen. Legg de resulterende mappene inn i din / Arduino / bibliotek katalog, og start Arduino IDE hvis den allerede er åpen.
Tester TV-ut
Ta RCA-pluggene og fjern det ytre laget bort. Samle skjerming, vri og legg bort til den ene siden. Dette er din bakke. I midten bør det være en annen kabel med plastskjerming - igjen, strip det bort slik at du har signallinjen.
Loddemåler både 470 ohm og 1k ohm motstandene til senter signallinjen på RCA-kontakten - dette gir et synkroniseringssignal og det aktuelle videosignalet, kombinert for å produsere analog videoinngang. 470 ohm motstanden skal slås inn i digital IO pin D07, mens 1k ohm motstand går til pin D09.
Disse pinnene er satt av biblioteket vi importerer, slik at du ikke kan endre dem. En av dine Arduino GND-pinner skal gå til skjermet (utenfor) av RCA.
Nå kan du gå videre og laste inn i et eksempel; Selv om både PAL og NTSC er gitt, bør det egentlig ikke være viktig med moderne digitale TV - NTSC-demo fungerte bra for meg, til tross for å være i Storbritannia. Koble til TVen din, og få en fin retro 3D-kube. Oooooh yeah - Er du glade enda? jeg er.
Test Analog Potentiometer Inputs
OK, vi har TV-utgangen på jobb, la oss nå gå med kontrollerne. Ledningen av “kasseroller” er ikke så kritisk - hver skal ha 3 pins, og den sentrale produserer nesten alltid utgangssignalet. Wire det til A0 og A1 (en for hver pott). På en av sidestifterne - det spiller ingen rolle hvilken - ledning opp + 5V. Den andre pinnen på den andre siden skal gå til bakken.
Her har jeg satt dem begge mot hverandre på brettbrett, fordi jeg bare har korte ledninger. For et polert produkt vil du bruke noen gamle nettverkskabler for å gi deg litt avstand (slik at du faktisk kan sitte på sofaen for å spille).
Deretter legger du opp et av de grunnleggende eksempelskissene som følger med Arduino - den analoge inngangen en. Denne demoen vil blinke LED-lampen raskere eller langsommere, avhengig av inngangen på A0.
Det tester ikke den andre A1-potten, men hvis du har A0 kablet opp, så kan jeg ikke se hvordan du ville gjøre feil på A1, så la oss anta at det er bra og gå videre.
Legg til en startbryter
Til slutt legger vi til en startbryter på D02. Se koblingsskjemaet her for hvordan du gjør det. Denne bryteren vil bli brukt til å starte spillet når det er i menyen.
The Pong Code
Vi bruker noen kode opprinnelig skrevet av Lamonica, endret av duboisvb for to spillere, og oppdatert av meg selv for å bruke den nyeste beta-versjonen av TV-ut biblioteket. Du kan se og laste ned koden fra denne pastebinen.
Det er ganske lang, men enkel kode som ikke krever noen forklaring fra meg. Som de fleste spill er det avhengig av en spillstat (meny, spill, spill over), og leser inngangsverdiene til begge kontrollerne og bytter hver iterasjon av sløyfen. Utover det er metoder for å tegne skjermen, ballen, padlene og spilllogikken.
Merk at koden inneholder lydutgang også: Jeg kunne ikke finne noen flere RCA plugger for å teste det, men hvis du har noen, må du koble signalstiften direkte til D11, og du bør få noen hyggelige retrotoner.
For å være ærlig visste jeg ikke at Arduino kunne til og med gjøre TV-ut uten noen utrolig komplisert koding; TV-ut biblioteket gjør det veldig enkelt. Selv om du ikke er i retrospill, bruker du denne grunnleggende TV-utgangen, er det en fin måte å bruke eksisterende utstyr som en billig skjermenhet. Du kan selvfølgelig også lage farger.
Tror du at du skal gå på Arduino Pong, eller kanskje lage din egen retro videogame-remake? Fortell oss i kommentarene hvis du har!
Utforsk mer om: Arduino, Retro Gaming.