AnalogPong

From Helsinki Hacklabin wiki
Jump to navigation Jump to search


{{#if: |
[[Tiedosto:{{{kuva}}}|290px]]{{#if: |

{{{kuvateksti}}}

| }}
| }}

AnalogPong

{{#if:https://github.com/JKN0/AnalogPong | | }} {{#if: | | }}
Tyyppi: Laite
Tekijät: jari
Aloitettu: 2014
Tila: Valmis
GitHub: [1]
URL: [{{{url}}}]


AP yleiskuva 1.jpg

Analog Pong on perinteinen pong-tyylinen peli toteutettuna kokonaan analogisilla piireillä. Koko videosignaalin generointi on analogista, samoin suurin osa pelilogiikasta. Joitakin digitaalisia perusporttipiirejä ja kiikkuja on käytetty, mutta ne eivät vielä tee tästä digitaalista toteutusta.

Laite pelaa kolmea peliä:

  • tavallinen kahden pelaajan tennis
  • yhden pelaajan tennis, jossa automaatinen vastapelaaja
  • yksinkertainen yhden pelaajan squash

Pelit valitaan kiertokytkimellä. Pallon nopeutta ja ponnahduskulmaa voi säätää, samoin äänten voimakkuutta.


Taustaa

Ensimmäiset kotikäyttöön suunnatut videopelit 70-luvun alussa olivat analogisia toteutuksia. Niissä ei ollut mikroprosessoria, koska sellaiset olivat aivan liian kalliita. Myös digitaalitoteutus (74-sarjan piireillä) olisi tullut liian kalliiksi. Alan pioneerissa, Magnavoxin Odyssey-pelissä vuonna 1972 oli 40 transistoria eikä yhtään mikropiiriä!

Varhaisten pelien historiaa on käsitelty Pong-Story sivustolla kattavasti. Sieltä löytyy myös pelien kytkentäkaavioita, joita tämänkin projektin yhteydessä luettiin tarkasti ja myös leipälautailtiin.

Projektin tavoitteena oli kokeilla, miten onnistuu hardware-toteutus 70-luvun hengessä. Transistoripohjaista toteutustakin harkitsin, mutta se osoittautui siinä määrin hankalaksi, että päädyin käyttämään analogisia mikropiirejä sekä perus-74-sarjan piirejä.

Suunnittelu

Ensimmäisenä tarvittiin tietysti näyttö. Kaapin perältä löytyi vanha 80-luvun mustavalkoinen Philipsin matka-TV. Siinä ei ollut videoliitäntää, joten sellainen piti rakentaa. Samalla syntyi myös liitäntä ääniä varten, jotta ne saadaan kuuluviin television kaiuttimesta.

Kuvan muodostamisessa käytetään samaa periaatetta kuin ensimmäisissä videopeleissä: kuva ei muodostu pikseleistä, jotka ovat on tai off, vaan jokaista ruudulla esiintyvää objektia (pallo, mailat, keskiviiva) varten on oma generaattorinsa (spot generator) joka muodostaa ruudulle suorakaiteen muotoisen valkoisen alueen. Alueen korkeutta, leveyttä ja sijaintia voidaan säätää portaattomasti.

Erilaisia variaatiota spot-generaattorin hardwaresta säädin leipälauden äärellä varsin pitkään. Analogisten komparaattorien ja schmitt-NANDien yhdistelmä osoittautui lopulta toimivaksi.

Pelilogiikka koostuu sekin analogia- ja digitaalipiirien sopivista kombinaatioista. Spot-generaattoreita ohjataan jännitteillä, joten ohjausjännitteiden hallintaan on taas käytetty analogiakomparaattoreita kasapäin. Erilaiset päättelyt tapahtuvat sitten porttipiireillä. Laitteessa on jopa 2 bitin verran muistia, eli yksi tupla-D-kiikku. Kaikkiaan laitteeseen tuli 18 IC-piiriä.

AnalogPong leipälaudalla

Rakentaminen

Sisäkuva

Laite on rakennettu kahden veroboardin varaan. Piirilevyn tekeminen ei nyt kiinnostanut, koska oli todennäköistä joutua muuttelemaan kytkentää vielä rakentamisen jälkeenkin. Kotelona on valmis alumiinipeltikotelo, päällystettynä puuta jäljittelevällä kontaktimuovilla 70-luvun henkeen.

Jos haluaa tutustua laitteen sielunelämään tarkemmin, kytkentäkaavio ja siihen liittyvä toimintaselostus (englanniksi) löytyy Githubista, linkki ylänurkassa.

Video löytyy täältä: https://youtu.be/sPsAYDMgjvE