Përmbajtje:

Konsol Arduino VGA Me Pesë Lojëra: 4 Hapa
Konsol Arduino VGA Me Pesë Lojëra: 4 Hapa

Video: Konsol Arduino VGA Me Pesë Lojëra: 4 Hapa

Video: Konsol Arduino VGA Me Pesë Lojëra: 4 Hapa
Video: What happens If We Connect Flash Drive to Charger❓ 2024, Korrik
Anonim
Image
Image
Konsol Arduino VGA Me Pesë Lojëra
Konsol Arduino VGA Me Pesë Lojëra
Konsol Arduino VGA Me Pesë Lojëra
Konsol Arduino VGA Me Pesë Lojëra

Në udhëzimet e mia të mëparshme, unë kam riprodhuar versione të thjeshtuara të disa prej lojërave më popullore klasike të arcade, me anë të një Arduino të zhveshur dhe disa komponentëve të tjerë. Më vonë unë bashkova pesë prej tyre së bashku në një skicë të vetme. Këtu do të tregoj se si mund të ndërtoni një tastierë të thjeshtë që mund të luajë Pong, Breakout, Bomber, Tetris dhe një lodër vizatimi të frymëzuar për Etch-a-Sketch. Kjo tastierë mund të përdoret gjithashtu për të luajtur Snake, dhe dy lojëra të tjera të shkruara nga autorë të tjerë: Bit Ninja nga Sandro Maffiodo aka "Smaffer" dhe Stacker nga Nikita Kurylev.

Karakteristika kryesore është krijimi i një sinjali VGA, falë bibliotekës VGAx, kështu që tastiera ka nevojë për një monitor VGA. Qëllimi im, si zakonisht, është të shmang çdo "komponent special" për ta ndërtuar atë, atëherë nuk keni nevojë për ndonjë IC mbështetës ose mburoja! Komponentët e vetëm janë dy potenciometra, pesë butona, disa rezistorë dhe një lidhës DSUB15 (VGA). Një altoparlant piezo është opsional. Ju mund të shihni se si duken këto lojëra në fotot në këtë faqe.

Biblioteka VGAx ju lejon të përdorni katër ngjyra me një rezolucion prej 120 x 60 piksele, jo shumë, por mjaftueshëm për këtë tastierë lojërash retro. Grafika është e papërpunuar, por, falë përdorimit të potenciometrave, lojërat funksionojnë pa probleme. Ekzistojnë gjithashtu efekte të thjeshta zanore.

Hapi 1: Si të krijoni tastierën tuaj Arduino VGA

Si të krijoni tastierën tuaj Arduino VGA
Si të krijoni tastierën tuaj Arduino VGA
Si të krijoni tastierën tuaj Arduino VGA
Si të krijoni tastierën tuaj Arduino VGA

Fillimisht shkarkoni kodet ArduinoVGAgame.ino dhe/ose Snake.ino në fund të kësaj faqeje dhe kopjojini ato në kompjuterin tuaj në një drejtori me të njëjtin emër. Shkarkoni bibliotekën VGAx nga kjo lidhje në GitHub. Mënyra më e lehtë është ta kopjoni atë në nën -dosjen e softuerit Arduino të quajtur "biblioteka", për t'u njohur menjëherë.

E RORTNDSISHME: kjo bibliotekë funksionon për Arduno IDE 1.6.4 por nuk është plotësisht në përputhje me versionet e vjetra ose të reja.

Ngarko kodin në tabelën tuaj Arduino (kam testuar si Uno ashtu edhe Nano). Një paralajmërim për kujtesë të ulët të disponueshme është normale. Nëse nuk keni gabime të tjera, gjithçka është në rregull dhe menjëherë mund të filloni të ndërtoni tastierën tuaj.

Për këtë ju duhet:

  • një Arduino Uno Rev. 3 ose Arduino Nano 3.x (ATmega328)
  • një lidhës DSUB15, domethënë një lidhës femër VGA ose një kabllo VGA që pritet.
  • rezistorë: 2 x 68 Ohm dhe 2 x 470 Ohm dhe 5 x 1 deri 2 kOhm
  • dy potenciometra linearë 10 kOhm (vlera të ngjashme janë gjithashtu të mira)
  • pesë butona
  • ndonjë copë kabllo
  • një ose dy kuti të bukura për të vendosur të gjithë përbërësit.

Fakultativ:

  • një dërrasë buke ose një tabelë shiritash
  • një altoparlant piezo

Skema raportohet në krye të këtij hapi, së bashku me një shembull të një "tastiere" të përfunduar.

skema tregon se si të lidhni një buton dhe një potenciometër. Më konkretisht, ju duhet të lidhni pesë butona me kunjat 5, 10, 11, 12 dhe 13 respektivisht. Veprimi i kryer nga secili buton përshkruhet në tabelën e sipërme të djathtë në skemë. Në të majtë tregohet se si të lidhni një potenciometër (keni nevojë për dy potenciometra për kunjat A1 dhe A2). Altoparlanti duhet të jetë i lidhur me pinin analog A0.

E vendosa tabelën Arduino me lidhësin VGA në një kuti druri, e cila mban gjithashtu potenciometrin e parë të lojtarit dhe katër butona, ndërsa potenciometri i lojtarit të dytë dhe butoni i tij i fillimit janë në një kuti të veçantë dhe më të vogël.

Nëse ju pëlqen kjo lodër dhe vendosni ta riprodhoni, e vlerësoj nëse shkruani një koment ose dërgoni një fotografi në pjesën e komenteve më poshtë.

Hapi 2: Lojëra nga autorë të tjerë

Sandro Maffiodo kohët e fundit ka publikuar lojën BitNinja. Ju mund të gjeni më shumë informacion këtu dhe shkarkoni kodin këtu.

Për të përdorur tastierën time, ju vetëm duhet të rimarrni butonin në kodin e tij si më poshtë:

#përcakto BTN_UP 11 (në vend të 13)

#përcakto BTN_LEFT 10 (në vend të 12)

#përcakto BTN_RIGHT 12 (në vend të 11)

Stacker, nga Nikita Kurylev, është në dispozicion këtu. Më shumë informacion këtu.

Përsëri, ju duhet të rimarrni një buton, në pjesë të ndryshme të kodit: thjesht zëvendësoni digitalRead (2) me digitalRead (13)

Hapi 3: Shtojca 1: Më shumë detaje rreth mënyrës së ndërtimit të kontrolluesve

Shtojca 1: Më shumë detaje rreth asaj se si të ndërtoni kontrolluesit
Shtojca 1: Më shumë detaje rreth asaj se si të ndërtoni kontrolluesit
Shtojca 1: Më shumë detaje rreth asaj se si të ndërtoni kontrolluesit
Shtojca 1: Më shumë detaje rreth asaj se si të ndërtoni kontrolluesit
Shtojca 1: Më shumë detaje rreth asaj se si të ndërtoni kontrolluesit
Shtojca 1: Më shumë detaje rreth asaj se si të ndërtoni kontrolluesit
Shtojca 1: Më shumë detaje rreth mënyrës së ndërtimit të kontrolluesve
Shtojca 1: Më shumë detaje rreth mënyrës së ndërtimit të kontrolluesve

Ju mund ta realizoni kontrolluesin në shumë mënyra të ndryshme, në varësi të materialit të disponueshëm dhe shijes tuaj.

Më pëlqen t'i realizoj me kuti druri (shiko fotografitë në këtë faqe). Një kuti kryesore për Arduino, lidhësin VGA dhe butonat e parë të luajtësit dhe potenziometrin; një i dytë (më i vogël) vetëm për butonin dhe timonin e lojtarit të dytë (i nevojshëm për Pong dhe lodrën e vizatimit). Një mundësi tjetër është të vendosni gjithçka në një kuti të vetme më të madhe.

Së pari unë rekomandoj të lidh portën VGA. Në fotot e para dhe të dyta mund të shihni disa detaje: vini re dy rezistorët 470 Ohm për të Kuq dhe të Gjelbër të lidhur me kunjat 6 dhe 7 respektivisht, dhe dy 68 Ohm në kunjat 3 dhe 9 për sinjalin e sinkronizimit horizontal dhe vertikal.

Ju mund të zgjidhni kombinime të ndryshme ngjyrash në varësi të kunjave që lidhni në lidhësin VGA DSUB15, kunjat 1, 2 dhe 3 përfaqësojnë përkatësisht të Kuqe, Jeshile, Blu (RGB). Kam lidhur kunjat 1 dhe 2, kështu që kam kombinimin e mëposhtëm të ngjyrave: (0, 0) = e zezë; (1, 0) = e kuqe; (0, 1) = e gjelbër; (1, 1) = e verdhë.

Për të gjitha mundësitë e ndryshme, unë sugjeroj të lexoni detajet në faqen ku shkarkoni bibliotekat VGAx.

Sapo lidhësi VGA të jetë gati, mund të përgatitni të gjithë kabllot e tjerë për butonat, rrotat dhe altoparlantin (shiko figurën 2).

Tani vendosni gjithçka së bashku: mbani mend se çdo kunj butoni duhet të lidhet me tokën përmes një rezistence 1 ose 2 kOhm, përndryshe kur butoni është i hapur gjendja e kunjit mund të jetë e pacaktuar. Kjo do të thotë që nëse kunja lihet e shkyçur mund të keni një tension të rastësishëm (statik) që mund ta aktivizojë atë. Shihni për më shumë detaje skemën në hapin e dytë të këtij udhëzuesi.

Hapi i fundit është të rregulloni gjithçka në vend. Kam përdorur armën me zam të nxehtë, por ju mund të përdorni metodën tuaj të preferuar.

Hapi 4: Shtojca 2: Disa konsiderata rreth kufijve të kujtesës

Amazingshtë e mahnitshme që një Arduino i thjeshtë është në gjendje të gjenerojë një sinjal VGA dhe të gjitha këto lojëra së bashku. Qafa e vërtetë e shisheve është mungesa e SRAM. Mikrokontrolluesi AVR ka vetëm 2048 bajt të disponueshëm për të ruajtur dhe manipuluar variablat, dhe biblioteka VGAx ruan ndryshoret e ekranit në një framebuffer 120x60 pixels ku secilit pixel i duhen 2 bit (4 ngjyra), për një total prej 1800 bajtësh. Kjo do të thotë se kanë mbetur vetëm 248 byte për variablat e skicës. Për më tepër, në përvojën time, duhet të lini të paktën 100 bajt të lirë për të shmangur paqëndrueshmëritë. Duke përdorur mbi 1950 bajt të kujtesës dinamike, mikrokontrolluesi fillon të tregojë sjellje të çuditshme dhe të paparashikueshme.

Kjo do të thotë që të gjitha variablat duhet të ndahen midis lojërave të ndryshme, dhe kjo e bën kodin mjaft të palexueshëm dhe të vështirë për tu korrigjuar. Nuk është vetëm një çështje "të shtosh një lojë të re" në skicën e mëparshme, por i gjithë kodi duhet të modifikohet dhe optimizohet thellësisht.

Për më tepër, më duhej të përdorja formatin minimal të ndryshueshëm të mundshëm: për shembull, për të gjitha koordinatat duhet të përdorja "byte" në vend të "int" ose, në raste të tjera, më duhej të preferoja "int" në vend të "float".

Më në fund, njohja ime shkon për Sandro Maffiodo aka Smaffer, krijuesi i bibliotekës VGAx dhe lojës mbresëlënëse BitNinja. Pa këtë bibliotekë, ky projekt nuk do të mund të ishte realizuar.

Faleminderit gjithashtu Nikita Kurylev për lojën e thjeshtë, por qesharake Stacker.

Recommended: