Kazalo:

Arduino VGA konzola s petimi igrami: 4 koraki
Arduino VGA konzola s petimi igrami: 4 koraki

Video: Arduino VGA konzola s petimi igrami: 4 koraki

Video: Arduino VGA konzola s petimi igrami: 4 koraki
Video: Заставьте свой старый джойстик игрового порта работать с Windows 10 | Установите ретро-джойстик на ПК с Windows 7 8 2024, November
Anonim
Image
Image
Arduino VGA konzola s petimi igrami
Arduino VGA konzola s petimi igrami
Arduino VGA konzola s petimi igrami
Arduino VGA konzola s petimi igrami

V svojih prejšnjih Instructables sem s preprostim Arduinom in nekaj drugimi komponentami reproduciral poenostavljene različice nekaterih najbolj priljubljenih klasičnih arkadnih iger. Kasneje sem jih skupaj združil pet v eno skico. Tukaj bom pokazal, kako lahko zgradite preprosto konzolo, ki bi lahko igrala Pong, Breakout, Bomber, Tetris in risalno igračo, ki je bila navdihnjena za Etch-a-Sketch. S to konzolo se lahko igra tudi Snake in še dve igri drugih avtorjev: Bit Ninja Sandra Maffioda, imenovanega "Smaffer", in Stacker Nikite Kuryleva.

Glavna značilnost je ustvarjanje signala VGA, zahvaljujoč knjižnici VGAx, zato konzola potrebuje monitor VGA. Moj cilj je, kot ponavadi, izogniti se "posebni komponenti" za njeno izdelavo, potem ne potrebujete nobene podporne IC ali ščitov! Edini sestavni deli sta dva potenciometra, pet gumbov, nekaj uporov in priključek DSUB15 (VGA). Piezo zvočnik ni obvezen. Na slikah na tej strani si lahko ogledate, kako te igre izgledajo.

Knjižnica VGAx omogoča uporabo štirih barv z ločljivostjo 120 x 60 slikovnih pik, kar je malo za to igralno konzolo za retro igre. Grafika je surova, vendar zaradi uporabe potenciometrov igre tečejo nemoteno. Na voljo so tudi preprosti zvočni učinki.

1. korak: Kako zgraditi svojo konzolo Arduino VGA

Kako zgraditi svojo konzolo Arduino VGA
Kako zgraditi svojo konzolo Arduino VGA
Kako zgraditi svojo konzolo Arduino VGA
Kako zgraditi svojo konzolo Arduino VGA

Najprej prenesite kodi ArduinoVGAgame.ino in/ali Snake.ino na dno te strani in ju kopirajte v računalnik v imenik z istim imenom. Prenesite knjižnico VGAx s te povezave na GitHub. Najlažji način je, da ga kopirate v podmapo programske opreme Arduino, imenovano "knjižnice", da jo takoj prepoznate.

POMEMBNO: ta knjižnica deluje za Arduno IDE 1.6.4, vendar ni popolnoma združljiva s starejšo ali novejšo različico.

Naložite kodo na svojo ploščo Arduino (preizkusil sem Uno in Nano). Opozorilo za premalo razpoložljivega pomnilnika je običajno. Če nimate drugih napak, je vse v redu in lahko takoj začnete graditi svojo konzolo.

Za to potrebujete:

  • Arduino Uno Rev. 3 ali Arduino Nano 3.x (ATmega328)
  • priključek DSUB15, to je ženski konektor VGA ali kabel VGA, ki ga je treba odrezati.
  • upori: 2 x 68 Ohm in 2 x 470 Ohm ter 5 x 1 do 2 kOhm
  • dva linearna potenciometra 10 kOhm (podobne vrednosti so tudi v redu)
  • pet gumbov
  • kakšen kos kabla
  • eno ali dve lepi škatli za vstavljanje vseh sestavnih delov.

Fakultativno:

  • mizo ali trak
  • piezo zvočnik

Shema je navedena na vrhu tega koraka skupaj s primerom končne "konzole".

shema prikazuje, kako povezati gumb in potenciometer. Natančneje, na zatiče 5, 10, 11, 12 in 13 morate priključiti pet gumbov. Dejanje, ki ga izvede vsak gumb, je opisano v zgornji desni tabeli na shemi. Na levi je prikazano, kako priključiti potenciometer (na zatiča A1 in A2 potrebujete dva potenciometra). Zvočnik mora biti priključen na analogni pin A0.

Ploščo Arduino s priključkom VGA sem postavil v leseno škatlo, ki vsebuje tudi potenciometer prvega predvajalnika in štiri gumbe, medtem ko sta potenciometer drugega predvajalnika in njegov gumb za zagon v ločeni in manjši škatli.

Če vam je ta igrača všeč in se odločite za njeno reprodukcijo, bom hvaležen, če napišete komentar ali pošljete sliko v spodnji odsek komentarjev.

2. korak: Igre drugih avtorjev

Sandro Maffiodo je pred kratkim objavil igro BitNinja. Več informacij najdete tukaj in kodo prenesete tukaj.

Če želite uporabljati mojo konzolo, morate gumb v njegovi kodi znova preslikati na naslednji način:

#define BTN_UP 11 (namesto 13)

#define BTN_LEFT 10 (namesto 12)

#define BTN_RIGHT 12 (namesto 11)

Zlagalec, Nikita Kurylev, je na voljo tukaj. Več informacij tukaj.

Spet morate znova prikazati en gumb v drugem delu kode: samo zamenjajte digitalRead (2) z digitalRead (13)

3. korak: Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike

Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike
Dodatek 1: Več podrobnosti o tem, kako sestaviti krmilnike

Krmilnik lahko uresničite na različne načine, odvisno od razpoložljivega materiala in vašega okusa.

Rad jih uresničim z lesenimi škatlami (glej slike na tej strani). Glavna škatla za Arduino, priključek VGA in gumbi prvega predvajalnika ter potenziometer; drugi (manjši) samo za gumb in kolo drugega igralca (potrebno za Pong in risalno igračo). Druga možnost je, da vse postavite v eno samo večjo škatlo.

Najprej priporočam priključitev vrat VGA. Na prvi in drugi sliki si lahko ogledate nekaj podrobnosti: upoštevajte dva upora 470 Ohmov za rdečo in zeleno, priključena na zatiča 6 in 7, ter dva 68 ohma na zatiča 3 in 9 za vodoravni in navpični sinhronizacijski signal.

Izberete lahko različne barvne kombinacije, odvisno od tega, katere nožice priključite na priključek VGA DSUB15, zatiči 1, 2 in 3 predstavljajo rdečo, zeleno, modro (RGB). Priključil sem nožici 1 in 2, zato imam naslednjo barvno kombinacijo: (0, 0) = črna; (1, 0) = rdeča; (0,1) = zelena; (1, 1) = rumena.

Za vse različne možnosti predlagam, da podrobnosti preberete na strani, kjer prenesete knjižnice VGAx.

Takoj, ko je priključek VGA pripravljen, lahko pripravite vse ostale kable za gumbe, kolesa in zvočnik (glejte sliko 2).

Zdaj samo sestavite vse: ne pozabite, da je treba vsak pin gumba priključiti na ozemljitev z uporom 1 ali 2 kOhm, sicer je stanje odprto, če je gumb odprt. To pomeni, da lahko, če je pin odklopljen, na njem naključna (statična) napetost, ki ga lahko aktivira. Za več podrobnosti si oglejte shemo v drugem koraku tega navodila.

Zadnji korak je popraviti vse na svojem mestu. Uporabil sem pištolo za vroče lepilo, vendar lahko uporabite želeno metodo.

4. korak: Dodatek 2: Nekaj premislekov glede omejitev pomnilnika

Neverjetno je, da lahko preprost Arduino ustvari signal VGA in vse te igre skupaj. Pravi grlo je pomanjkanje SRAM-a. Mikrokrmilnik AVR ima na voljo le 2048 bajtov za shranjevanje in upravljanje spremenljivk, knjižnica VGAx pa shrani spremenljivke zaslona v medpomnilnik okvirja 120x60 slikovnih pik, kjer vsaka slikovna pika potrebuje 2 bita (4 barve), skupaj 1800 bajtov. To pomeni, da je za spremenljivke skice na voljo le 248 bajtov. Poleg tega bi po mojih izkušnjah morali pustiti vsaj 100 bajtov prostih, da se izognemo nestabilnosti. Z uporabo več kot 1950 bajtov dinamičnega pomnilnika začne mikrokrmilnik kazati čudno in nepredvidljivo vedenje.

To pomeni, da morajo biti vse spremenljivke v skupni rabi med različnimi igrami, zaradi česar je koda precej neberljiva in jo je težko odpraviti. Ne gre samo za "dodajanje nove igre" prejšnji skici, ampak je treba vso kodo globoko spremeniti in optimizirati.

Poleg tega sem moral uporabiti najmanjšo možno obliko spremenljivke: na primer, za vse koordinate sem moral uporabiti "byte" namesto "int", v drugih primerih pa sem raje uporabil "int" namesto "float".

Nazadnje gre moje priznanje Sandru Maffiodu, imenovanemu Smaffer, ustvarjalcu knjižnice VGAx in čudovite igre BitNinja. Brez te knjižnice tega projekta ne bi bilo mogoče uresničiti.

Hvala tudi Nikiti Kurylevu za preprosto, a smešno igro Stacker.

Priporočena: