Sisällysluettelo:
- Vaihe 1: Kuinka rakentaa oma Arduino VGA -konsoli
- Vaihe 2: Pelit muilta tekijöiltä
- Vaihe 3: Liite 1: Lisätietoja ohjainten rakentamisesta
- Vaihe 4: Liite 2: Muutamia huomioita muistirajoista
Video: Arduino VGA -konsoli viidellä pelillä: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Aiemmissa Instructables -ohjelmissani olen toistanut yksinkertaistettuja versioita joistakin suosituimmista klassisista arcade -peleistä paljaan Arduinon ja muutamien muiden komponenttien avulla. Myöhemmin liitin viisi niistä yhteen yhdessä luonnoksessa. Tässä näytän kuinka voit rakentaa yksinkertaisen konsolin, jolla voi pelata Pongia, Breakoutia, Bomberia, Tetristä ja Etch-a-Sketchin innoittamaa piirustuslelua. Tätä konsolia voidaan käyttää myös Snaken ja kahden muun kirjoittajan kirjoittaman pelin pelaamiseen: Sandro Maffiodon eli "Smafferin" Bit Ninja ja Nikita Kurylevin Stacker.
Tärkein ominaisuus on VGA -signaalin tuottaminen VGAx -kirjaston ansiosta, joten konsoli tarvitsee VGA -näytön. Tavoitteeni, kuten tavallista, on välttää "erikoiskomponentti" sen rakentamiseen, et tarvitse sitten mitään tukevaa IC: tä tai kilpiä! Ainoat komponentit ovat kaksi potentiometriä, viisi painiketta, muutama vastus ja DSUB15 (VGA) -liitin. Pietsokaiutin on valinnainen. Näet, miltä nämä pelit näyttävät tämän sivun kuvista.
VGAx-kirjaston avulla voidaan käyttää neljää väriä, joiden resoluutio on 120 x 60 pikseliä, ei paljon, mutta tarpeeksi tähän retropelikonsoliin. Grafiikka on raaka, mutta potentiometrien käytön ansiosta pelit toimivat sujuvasti. Saatavilla on myös yksinkertaisia äänitehosteita.
Vaihe 1: Kuinka rakentaa oma Arduino VGA -konsoli
Lataa ensin ArduinoVGAgame.ino- ja/tai Snake.ino -koodit tämän sivun alareunasta ja kopioi ne tietokoneellesi samannimiseen hakemistoon. Lataa VGAx -kirjasto tästä linkistä GitHubissa. Helpoin tapa on kopioida se Arduino -ohjelmiston alikansioon nimeltä "kirjastot", jotta se tunnistetaan välittömästi.
TÄRKEÄÄ: tämä kirjasto toimii Arduno IDE 1.6.4 -käyttöjärjestelmässä, mutta se ei ole täysin yhteensopiva vanhempien tai uudempien versioiden kanssa.
Lataa koodi Arduino -kortillesi (testasin sekä Uno- että Nano -kortteja). Varoitus alhaisesta muistista on normaali. Jos sinulla ei ole muita virheitä, kaikki on kunnossa ja voit heti aloittaa oman konsolin rakentamisen.
Tätä varten tarvitset:
- Arduino Uno Rev. 3 tai Arduino Nano 3.x (ATmega328)
- DSUB15 -liitin eli VGA -naarasliitin tai leikattava VGA -kaapeli.
- vastukset: 2 x 68 ohmia ja 2 x 470 ohmia ja 5 x 1-2 kOhm
- kaksi 10 kOhm lineaarista potentiometriä (vastaavat arvot ovat myös hyviä)
- viisi painiketta
- jonkinlainen kaapeli
- yksi tai kaksi mukavaa laatikkoa kaikkien komponenttien sijoittamiseen.
Fakultatiivinen:
- leipälauta tai nauhalevy
- pietsokaiutin
Kaavio esitetään tämän vaiheen yläosassa yhdessä esimerkin kanssa valmiista "konsolista".
kaaviossa esitetään painikkeen ja potentiometrin yhdistäminen. Tarkemmin sanottuna sinun on kytkettävä viisi painiketta nastoihin 5, 10, 11, 12 ja 13. Kunkin painikkeen suorittama toiminto on kuvattu kaavion oikeassa yläkulmassa olevassa taulukossa. Vasemmalla näkyy potentiometrin liittäminen (tarvitset kaksi potentiometriä nastoihin A1 ja A2). Kaiutin on kytkettävä analogiseen nastaan A0.
Laitoin Arduino -levyn VGA -liittimellä puurasiaan, jossa on myös ensimmäisen pelaajan potentiometri ja neljä painiketta, kun taas toisen pelaajan potentiometri ja hänen käynnistyspainike ovat erillisessä ja pienemmässä laatikossa.
Jos pidät tästä lelusta ja päätät kopioida sen, kiitän, jos kirjoitat kommentin tai lähetät kuvan alla olevaan kommenttiosaan.
Vaihe 2: Pelit muilta tekijöiltä
Sandro Maffiodo on äskettäin julkaissut pelin BitNinja. Youn löytää lisätietoja täältä ja ladata koodin täältä.
Jos haluat käyttää konsolia, sinun on vain määritettävä painike uudelleen koodissaan seuraavasti:
#define BTN_UP 11 (13 sijasta)
#define BTN_LEFT 10 (12 sijasta)
#define BTN_RIGHT 12 (11: n sijasta)
Pinoaja, Nikita Kurylev, on saatavana täältä. Lisätietoja tästä.
Jälleen kerran, sinun on uusittava yksi painike koodin eri osassa: vaihda vain digitalRead (2) tilalle digitalRead (13)
Vaihe 3: Liite 1: Lisätietoja ohjainten rakentamisesta
Voit toteuttaa ohjaimen monella eri tavalla saatavilla olevan materiaalin ja makusi mukaan.
Haluan toteuttaa ne puulaatikoilla (katso tämän sivun kuvat). Päälaatikko Arduinolle, VGA -liitin ja ensimmäiset soittimen painikkeet ja potentiometri; toinen (pienempi) vain toisen pelaajan painiketta ja pyörää varten (tarvitaan Pongille ja piirustuslelulle). Toinen mahdollisuus on laittaa kaikki yhteen suurempaan laatikkoon.
Ensin kehotan kytkemään VGA -portin. Ensimmäisessä ja toisessa kuvassa on joitain yksityiskohtia: huomioi kaksi 470 ohmin punaista ja vihreää vastusta, jotka on kytketty nastoihin 6 ja 7, ja kaksi 68 ohmia nastoihin 3 ja 9 vaakasuuntaista ja pystysynkronointisignaalia varten.
Voit valita erilaisia väriyhdistelmiä sen mukaan, mitkä nastat liität VGA DSUB15 -liitäntään. Nastat 1, 2 ja 3 edustavat punaista, vihreää ja sinistä (RGB). Yhdistin nastat 1 ja 2, joten minulla on seuraava väriyhdistelmä: (0, 0) = musta; (1, 0) = punainen; (0, 1) = vihreä; (1, 1) = keltainen.
Kaikkien eri mahdollisuuksien osalta suosittelen lukemaan tiedot sivulta, jolta lataat VGAx -kirjastot.
Heti kun VGA -liitin on valmis, voit valmistella kaikki muut kaapelit painikkeita, pyöriä ja kaiutinta varten (katso kuva 2).
Kokoa nyt kaikki yhteen: muista, että jokainen napin nasta on kytkettävä maahan 1 tai 2 kOhm: n vastuksen kautta, muuten painikkeen ollessa auki tapin tila voi olla määrittelemätön. Tämä tarkoittaa sitä, että jos nasta jätetään irrottamatta, siinä voi olla satunnainen (staattinen) jännite, joka voi aktivoida sen. Katso lisätietoja kaaviosta tämän ohjeen toisessa vaiheessa.
Viimeinen vaihe on korjata kaikki paikoilleen. Käytin kuumaliimapistoolia, mutta voit käyttää haluamaasi menetelmää.
Vaihe 4: Liite 2: Muutamia huomioita muistirajoista
On hämmästyttävää, että yksinkertainen Arduino pystyy tuottamaan VGA -signaalin ja kaikki nämä pelit yhdessä. Todellinen pullonkaula on SRAM: n puute. AVR -mikrokontrollerissa on vain 2048 tavua käytettävissä muuttujien tallentamiseen ja käsittelyyn, ja VGAx -kirjasto tallentaa näyttömuuttujat 120 x 60 pikselin kehyspuskuriin, jossa jokainen pikseli tarvitsee 2 bittiä (4 väriä), yhteensä 1800 tavua. Tämä tarkoittaa, että luonnosmuuttujille on jäljellä vain 248 tavua. Lisäksi kokemukseni mukaan vähintään 100 tavua pitäisi jättää vapaaksi epävakauden välttämiseksi. Käyttämällä yli 1950 tavua dynaamista muistia mikrokontrolleri alkaa näyttää outoa ja arvaamatonta käyttäytymistä.
Tämä tarkoittaa, että kaikki muuttujat on jaettava eri pelien kesken, ja tämä tekee koodista melko lukukelvottoman ja vaikean virheenkorjauksen. Ei ole vain kysymys "uuden pelin lisäämisestä" edelliseen luonnokseen, vaan kaikki koodit on muutettava perusteellisesti ja optimoitava.
Lisäksi minun piti käyttää mahdollisimman pientä muuttujan muotoa: esimerkiksi kaikissa koordinaateissa minun oli käytettävä "tavua" "int": n sijasta tai muissa tapauksissa minun oli mieluummin "int" kuin "float".
Lopuksi, tietooni kuuluu Sandro Maffiodo eli Smaffer, VGAx -kirjaston ja mahtavan BitNinja -pelin luoja. Ilman tätä kirjastoa tätä projektia ei olisi voitu toteuttaa.
Kiitos myös Nikita Kuryleville yksinkertaisesta mutta hauskasta Stacker -pelistä.
Suositeltava:
Vaihtoehtoisesti estettäessä stereoskooppisen lähetyksen dikoptinen muokkaaja 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 vaihetta
Vaihtoehtoisesti stereoskooppisen lähetyksen dikoptinen muunnin 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Olen jo jonkin aikaa työskennellyt alkuperäisen AODMoST: n seuraajan parissa. Uusi laite käyttää nopeampaa ja parempaa 32-bittistä mikro-ohjainta ja nopeampaa analogista videokytkintä. Sen avulla AODMoST 32 voi työskennellä suuremmilla resoluutioilla ja toteuttaa uusia toiminnallisia
Arduino Basic PC VGA -ulostulolla: 5 vaihetta (kuvilla)
Arduino Basic PC VGA-ulostulolla: Aiemmassa Instructable-ohjelmassani olen näyttänyt kuinka rakentaa retro-8-bittinen tietokone, joka käyttää BASIC-ohjelmaa kahden Arduinon avulla ja jossa on TV-ruudun lähtösignaali mustavalkoisena. Nyt näytän kuinka rakentaa sama tietokone, mutta lähtösignaalin ollessa
Ardubabyn minipelikonsoli 500 pelillä: 10 vaihetta
Ardubabyn minipelikonsoli 500 pelillä: Luottoja luojalle (Kevin Bates), Arduboy on erittäin onnistunut 8 -bittinen pelikonsoli. Harrastaja kirjoitti tuhansia pelejä, jotka jakoivat ne vapaasti Arduboyn yhteisön foorumilla, jotta useammat ihmiset voivat oppia koodaamaan
Arduino - VGA -väripalkit Gen .: 4 vaihetta
Arduino - VGA -väripalkit Gen .: Erittäin yksinkertainen halpa ja joskus hyödyllinen projekti, jonka avulla voit säätää tai tarkistaa television / näytön lineaarisuuden (VGA -tulolla)
Arduino Snake VGA -näytöllä: 5 vaihetta
Arduino Snake VGA -näytöllä: No … Ostin Arduinon. Aluksi investointi oli motivoitunut johonkin sellaiseen, joka saisi tyttäreni kiinnostumaan ohjelmoinnista. Kuitenkin, kuten kävi ilmi, tämä asia oli minulle hauskempi pelata. LED -valojen tekemisen jälkeen