Sisukord:

Arduino VGA konsool viie mänguga: 4 sammu
Arduino VGA konsool viie mänguga: 4 sammu

Video: Arduino VGA konsool viie mänguga: 4 sammu

Video: Arduino VGA konsool viie mänguga: 4 sammu
Video: Operating Systems written in Pascal, Delphi, Lazarus IDE, FreePascal, Turbo Pascal, Modula-2 2024, November
Anonim
Image
Image
Arduino VGA konsool viie mänguga
Arduino VGA konsool viie mänguga
Arduino VGA konsool viie mänguga
Arduino VGA konsool viie mänguga

Oma varasemates juhistes olen palja Arduino ja mõne muu komponendi abil reprodutseerinud mõnede populaarsemate klassikaliste arkaadmängude lihtsustatud versioone. Hiljem ühendasin viis neist ühe visandina. Siin näitan, kuidas saate ehitada lihtsa konsooli, millega saab mängida Pongi, Breakouti, Bomberit, Tetrist ja Etch-a-Sketchist inspireeritud joonistusmängu. Seda konsooli saab kasutada ka Snake'i mängimiseks ja veel kahe teise autori kirjutatud mängu jaoks: Sandro Maffiodo ehk "Smaffer" Bit Ninja ja Nikita Kurylevi Stacker.

Põhijooneks on VGA -signaali genereerimine tänu VGAx -raamatukogule, seega vajab konsool VGA -monitori. Minu eesmärk, nagu tavaliselt, on vältida selle ehitamiseks mingeid "erikomponente", siis pole vaja mingeid toetavaid IC -sid ega kilpe! Ainsad komponendid on kaks potentsiomeetrit, viis nuppu, mõned takistid ja DSUB15 (VGA) pistik. Piesokõlar on valikuline. Kuidas need mängud välja näevad, näete selle lehe piltidelt.

VGAx raamatukogu võimaldab kasutada nelja värvi resolutsiooniga 120 x 60 pikslit, mitte palju, kuid selle retro-mängukonsooli jaoks piisavalt. Graafika on toores, kuid tänu potentsiomeetrite kasutamisele toimivad mängud sujuvalt. Saadaval on ka lihtsad heliefektid.

Samm: kuidas luua oma Arduino VGA konsool

Kuidas luua oma Arduino VGA konsool
Kuidas luua oma Arduino VGA konsool
Kuidas luua oma Arduino VGA konsool
Kuidas luua oma Arduino VGA konsool

Laadige esmalt alla selle lehe allservast ArduinoVGAgame.ino ja/või Snake.ino koodid ning kopeerige need oma arvutisse sama nimega kataloogi. Laadige VGAxi raamatukogu alla sellelt GitHubi lingilt. Lihtsaim viis on kopeerida see Arduino tarkvara alamkausta nimega "teegid", et see kohe ära tunda.

TÄHTIS: see raamatukogu töötab Arduno IDE 1.6.4 jaoks, kuid ei ühildu täielikult vanemate või uuemate versioonidega.

Laadige kood üles oma Arduino plaadile (testisin nii Unot kui ka Nano). Hoiatus vähese vaba mälu kohta on normaalne. Kui teil pole muid vigu, on kõik korras ja võite kohe alustada oma konsooli ehitamist.

Selleks vajate:

  • Arduino Uno Rev. 3 või Arduino Nano 3.x (ATmega328)
  • DSUB15 -pistik, st VGA -naissoost pistik või VGA -kaabel, mida tuleb lõigata.
  • takistid: 2 x 68 oomi ja 2 x 470 oomi ning 5 x 1 kuni 2 kOhm
  • kaks 10 kOhm lineaarset potentsiomeetrit (sarnased väärtused sobivad ka)
  • viis nuppu
  • mingi kaablitükk
  • üks või kaks kena kasti, kuhu kõik komponendid panna.

Fakultatiivne:

  • leivalaud või ribalaud
  • piesokõlar

Skeem on esitatud selle sammu ülaosas koos näitega valmis konsoolist.

skemaatiliselt on näidatud, kuidas ühendada nupp ja potentsiomeeter. Täpsemalt peate ühendama viis nuppu vastavalt tihvtidega 5, 10, 11, 12 ja 13. Iga nupu toimingut on kirjeldatud skemaatilises paremas ülanurgas. Vasakul on näidatud, kuidas ühendada potentsiomeeter (vajate kahte potentsiomeetrit tihvtide A1 ja A2 külge). Kõlar peab olema ühendatud analoogpistikuga A0.

Asetasin Arduino plaadi koos VGA -pistikuga puidust kasti, kus on ka esimene mängija potentsiomeeter ja neli nuppu, samas kui teine mängija potentsiomeeter ja tema käivitusnupp on eraldi ja väiksemas karbis.

Kui teile meeldib see mänguasi ja otsustate seda reprodutseerida, olen tänulik, kui kirjutate kommentaari või saadate pildi allolevasse kommentaaride sektsiooni.

2. samm: mängud teistelt autoritelt

Sandro Maffiodo avaldas hiljuti mängu BitNinja. Youn leiate lisateavet siit ja laadige kood alla siit.

Minu konsooli kasutamiseks peate lihtsalt tema koodi nupu ümber vormistama järgmiselt:

#define BTN_UP 11 (13 asemel)

#define BTN_LEFT 10 (12 asemel)

#define BTN_RIGHT 12 (11 asemel)

Stacker, pärit Nikita Kurylev, on saadaval siin. Rohkem infot siit.

Jällegi peate koodi ühest osast uuesti nupu ümber tegema: lihtsalt asendage digitalRead (2) digitalRead (13) -ga

3. samm: Lisa 1: Lisateave kontrollerite ehitamise kohta

Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta
Lisa 1: Lisateave kontrollerite ehitamise kohta

Saate kontrolleri realiseerida mitmel erineval viisil, sõltuvalt saadaolevast materjalist ja teie maitsest.

Mulle meeldib neid puidust kastidega realiseerida (vt selle lehe pilte). Põhikarp Arduino jaoks, VGA -pistik ning esimesed mängija nupud ja potentsiomeeter; teine (väiksem) üks teise mängija nupu ja ratta jaoks (vajalik Pongi ja joonistusmängu jaoks). Teine võimalus on panna kõik ühte suuremasse kasti.

Esmalt soovitan ühendada VGA -pordi. Esimesel ja teisel pildil näete mõningaid üksikasju: pange tähele kahte 470 oomi takistit punase ja rohelise jaoks, mis on ühendatud vastavalt tihvtidega 6 ja 7 ning kahte 68 oomi pistikutega 3 ja 9 horisontaalse ja vertikaalse sünkroniseerimissignaali jaoks.

Saate valida erinevaid värvikombinatsioone sõltuvalt sellest, milliseid kontakte ühendate VGA DSUB15 pistikuga, tihvtid 1, 2 ja 3 tähistavad vastavalt punast, rohelist, sinist (RGB). Ühendasin tihvtid 1 ja 2, seega on mul järgmine värvikombinatsioon: (0, 0) = must; (1, 0) = punane; (0, 1) = roheline; (1, 1) = kollane.

Kõigi erinevate võimaluste jaoks soovitan lugeda üksikasju lehel, kust laadite alla VGAx -teegid.

Niipea kui VGA -pistik on valmis, saate kõik muud juhtmed nuppude, rataste ja kõlari jaoks ette valmistada (vt joonis 2).

Pange nüüd kõik kokku: pidage meeles, et iga nööpnõel tuleb ühendada maandusega 1 või 2 kOhm takisti kaudu, vastasel juhul võib nupu avamisel olla tihvti olek määratlemata. See tähendab, et kui tihvt on lahti ühendatud, võib sellel olla juhuslik (staatiline) pinge, mis võib selle aktiveerida. Vaadake täpsemalt selle juhendi teises etapis olevat skeemi.

Viimane samm on kõik paika panna. Ma kasutasin kuumliimipüstolit, kuid võite kasutada oma eelistatud meetodit.

Samm 4: Lisa 2: mõned kaalutlused mälupiirangute kohta

On hämmastav, et lihtne Arduino suudab genereerida VGA -signaali ja kõiki neid mänge koos. Tõeline pudelikael on SRAM-i puudumine. AVR -i mikrokontrolleril on muutujate salvestamiseks ja manipuleerimiseks saadaval ainult 2048 baiti ning VGAx -raamatukogu salvestab ekraanimuutujad 120x60 pikslise kaadripuhveriga, kus iga piksel vajab 2 bitti (4 värvi), kokku 1800 baiti. See tähendab, et visandimuutujate jaoks on jäänud vaid 248 baiti. Lisaks peaks minu kogemuste kohaselt jätma vähemalt 100 baiti vabaks, et vältida ebastabiilsust. Kasutades üle 1950 baidi dünaamilist mälu, hakkab mikrokontroller käituma veidralt ja ettearvamatult.

See tähendab, et kõik muutujad tuleb jagada erinevate mängude vahel ning see muudab koodi üsna loetamatuks ja seda on raske siluda. Asi pole ainult eelmises visandis "uue mängu lisamiseks", vaid kogu koodi tuleb põhjalikult muuta ja optimeerida.

Lisaks pidin kasutama minimaalset võimalikku muutujavormingut: näiteks kõikide koordinaatide puhul pidin kasutama int -i asemel baiti või muudel juhtudel pidin eelistama float -i asemel int.

Lõpuks läheb minu teadmine Sandro Maffiodole ehk Smafferile, VGAx raamatukogu ja vinge mängu BitNinja loojale. Ilma selle raamatukoguta poleks seda projekti võimalik ellu viia.

Aitäh ka Nikita Kurylevile lihtsa, kuid naljaka mängu Stacker eest.

Soovitan: