Satura rādītājs:

Arduino VGA konsole ar piecām spēlēm: 4 soļi
Arduino VGA konsole ar piecām spēlēm: 4 soļi

Video: Arduino VGA konsole ar piecām spēlēm: 4 soļi

Video: Arduino VGA konsole ar piecām spēlēm: 4 soļi
Video: Подключение Arduino к VGA монитора. Ардуино проекты. 2024, Jūlijs
Anonim
Image
Image
Arduino VGA konsole ar piecām spēlēm
Arduino VGA konsole ar piecām spēlēm
Arduino VGA konsole ar piecām spēlēm
Arduino VGA konsole ar piecām spēlēm

Iepriekšējā instrukcijā es esmu reproducējis dažu populārāko klasisko arkādes spēļu vienkāršotas versijas, izmantojot vienkāršu Arduino un dažas citas sastāvdaļas. Vēlāk es apvienoju piecas no tām vienā skicē. Šeit es parādīšu, kā jūs varat izveidot vienkāršu konsoli, kas spēj spēlēt Pong, Breakout, Bomber, Tetris, un zīmēšanas rotaļlietu, kas iedvesmota pēc Etch-a-Sketch. Šo konsoli var izmantot arī, lai spēlētu Snake, un vēl divas citu autoru rakstītas spēles: Sandro Maffiodo jeb "Smaffer" Bit Ninja un Nikita Kurylev Stacker.

Galvenā iezīme ir VGA signāla ģenerēšana, pateicoties VGAx bibliotēkai, tāpēc konsolei ir nepieciešams VGA monitors. Mans mērķis, kā parasti, ir izvairīties no jebkādas "īpašas sastāvdaļas", lai to izveidotu, tad jums nav nepieciešami nekādi atbalsta IC vai vairogi! Vienīgās sastāvdaļas ir divi potenciometri, piecas pogas, daži rezistori un DSUB15 (VGA) savienotājs. Pjezo skaļrunis nav obligāts. Jūs varat redzēt, kā šīs spēles izskatās šīs lapas attēlos.

VGAx bibliotēka ļauj izmantot četras krāsas ar izšķirtspēju 120 x 60 pikseļi, kas nav daudz, bet pietiekami šai retro spēļu konsolei. Grafika ir neapstrādāta, taču, pateicoties potenciometru izmantošanai, spēles darbojas nevainojami. Ir pieejami arī vienkārši skaņas efekti.

1. darbība. Kā izveidot savu Arduino VGA konsoli

Kā izveidot savu Arduino VGA konsoli
Kā izveidot savu Arduino VGA konsoli
Kā izveidot savu Arduino VGA konsoli
Kā izveidot savu Arduino VGA konsoli

Vispirms šīs lapas apakšā lejupielādējiet ArduinoVGAgame.ino un/vai Snake.ino kodus un nokopējiet tos savā datorā direktorijā ar tādu pašu nosaukumu. Lejupielādējiet VGAx bibliotēku no šīs saites vietnē GitHub. Vienkāršākais veids ir kopēt to Arduino programmatūras apakšmapē ar nosaukumu "bibliotēkas", lai tā tiktu nekavējoties atpazīta.

SVARĪGI: šī bibliotēka darbojas ar Arduno IDE 1.6.4, taču tā nav pilnībā saderīga ar vecākām vai jaunākām versijām.

Augšupielādējiet kodu savā Arduino panelī (es pārbaudīju gan Uno, gan Nano). Brīdinājums par nepietiekamu atmiņu ir normāls. Ja jums nav citu kļūdu, viss ir kārtībā, un jūs varat nekavējoties sākt veidot savu konsoli.

Šim nolūkam jums ir nepieciešams:

  • Arduino Uno Rev. 3 vai Arduino Nano 3.x (ATmega328)
  • DSUB15 savienotājs, t.i., VGA sieviešu savienotājs vai VGA kabelis, kas jāapgriež.
  • rezistori: 2 x 68 omi un 2 x 470 omi un 5 x 1 līdz 2 kOhm
  • divi 10 kOhm lineāri potenciometri (arī līdzīgas vērtības ir piemērotas)
  • piecas pogas
  • kāds kabeļa gabals
  • viena vai divas jaukas kastes, kur ievietot visas sastāvdaļas.

Fakultatīvs:

  • maizes dēlis vai sloksnes dēlis
  • pjezo skaļrunis

Shēma ir parādīta šī soļa augšpusē kopā ar gatavās “konsoles” piemēru.

shematiski parādīts, kā savienot pogu un potenciometru. Precīzāk, piecas pogas jāpievieno attiecīgi 5., 10., 11., 12. un 13. tapai. Darbība, ko veic katra poga, ir aprakstīta shēmas augšējā labajā tabulā. Kreisajā pusē ir parādīts, kā pieslēgt potenciometru (A1 un A2 tapām nepieciešami divi potenciometri). Skaļrunim jābūt savienotam ar analogo tapu A0.

Es ievietoju Arduino plāksni ar VGA savienotāju koka kastē, kurā ir arī pirmā spēlētāja potenciometrs un četras pogas, bet otrā spēlētāja potenciometrs un viņa sākuma poga atrodas atsevišķā un mazākā kastē.

Ja jums patīk šī rotaļlieta un jūs nolemjat to reproducēt, es pateicos, ja komentāru sadaļā zemāk uzrakstīsit komentāru vai nosūtīsit attēlu.

2. darbība. Spēles no citiem autoriem

Sandro Mafiodo nesen publicēja spēli BitNinja. Youn var atrast vairāk informācijas šeit un lejupielādēt kodu šeit.

Lai izmantotu manu konsoli, jums vienkārši jāpārveido poga viņa kodā šādi:

#define BTN_UP 11 (nevis 13)

#define BTN_LEFT 10 (nevis 12)

#define BTN_RIGHT 12 (nevis 11)

Stacker, no Ņikitas Kurylev, ir pieejams šeit. Vairāk informācijas šeit.

Atkal jums ir jāpārveido viena poga dažādās koda daļās: vienkārši nomainiet digitalRead (2) ar digitalRead (13)

3. darbība: 1. pielikums. Sīkāka informācija par kontrolieru izveidi

1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi
1. pielikums. Sīkāka informācija par kontrolieru izveidi

Jūs varat realizēt kontrolieri dažādos veidos, atkarībā no pieejamā materiāla un jūsu gaumes.

Man patīk tās realizēt ar koka kastēm (skat. Šīs lapas attēlus). Arduino galvenā kaste, VGA savienotājs un pirmās atskaņotāja pogas un potenciometrs; otru (mazāku) vienu tikai otrā spēlētāja pogai un ritenim (nepieciešams Pongam un zīmēšanas rotaļlietai). Vēl viena iespēja ir salikt visu vienā lielākā kastē.

Vispirms es iesaku pieslēgt VGA portu. Pirmajā un otrajā attēlā var redzēt dažas detaļas: ņemiet vērā divus 470 omu rezistorus sarkanajam un zaļajam, kas savienoti ar attiecīgi 6. un 7. tapu, un divus 68 omus līdz 3. un 9. tapai horizontālajam un vertikālajam sinhronizācijas signālam.

Jūs varat izvēlēties dažādas krāsu kombinācijas atkarībā no piespraužamajām tapām VGA DSUB15 savienotājā, 1., 2. un 3. tapas ir attiecīgi sarkana, zaļa, zila (RGB). Es savienoju tapas 1 un 2, tāpēc man ir šāda krāsu kombinācija: (0, 0) = melna; (1, 0) = sarkans; (0, 1) = zaļš; (1, 1) = dzeltens.

Visām dažādām iespējām es iesaku izlasīt informāciju lapā, kurā lejupielādējat VGAx bibliotēkas.

Tiklīdz VGA savienotājs ir gatavs, jūs varat sagatavot visus pārējos kabeļus pogām, riteņiem un skaļrunim (skat. 2. attēlu).

Tagad vienkārši salieciet visu kopā: atcerieties, ka katrai pogas tapai jābūt savienotai ar zemi caur 1 vai 2 kOhm rezistoru, pretējā gadījumā, kad poga ir atvērta, tapas stāvoklis var būt nenoteikts. Tas nozīmē, ka, ja tapu atstāj atvienotu, uz tā var būt nejaušs (statisks) spriegums, kas to var aktivizēt. Plašāku informāciju skatiet shematiskajā instrukcijas otrajā solī.

Pēdējais solis ir visu sakārtot savās vietās. Es izmantoju karstās līmes pistoli, bet jūs varat izmantot vēlamo metodi.

4. solis: 2. pielikums: daži apsvērumi par atmiņas ierobežojumiem

Tas ir pārsteidzoši, ka vienkāršs Arduino spēj ģenerēt VGA signālu un visas šīs spēles kopā. Patiesais pudeles kakls ir SRAM trūkums. AVR mikrokontrolleram ir pieejami tikai 2048 baiti, lai saglabātu un mainītu mainīgos, un VGAx bibliotēka saglabā ekrāna mainīgos 120x60 pikseļu kadru buferī, kur katram pikseļam nepieciešami 2 biti (4 krāsas), kopā 1800 baiti. Tas nozīmē, ka skices mainīgajiem ir palikuši tikai 248 baiti. Turklāt, pēc manas pieredzes, jāatstāj vismaz 100 baiti brīvi, lai izvairītos no nestabilitātes. Izmantojot vairāk nekā 1950 baitus dinamiskās atmiņas, mikrokontrolleris sāk parādīt nepāra un neparedzamu uzvedību.

Tas nozīmē, ka visi mainīgie ir jāsadala starp dažādām spēlēm, un tas padara kodu diezgan nelasāmu un grūti atkļūdojamu. Tas nav tikai jautājums "pievienot jaunu spēli" iepriekšējai skicei, bet viss kods ir dziļi jāpārveido un jāoptimizē.

Turklāt man bija jāizmanto minimālais iespējamais mainīgā formāts: piemēram, visām koordinātām man bija jāizmanto “baits”, nevis “int”, vai citos gadījumos man bija jādod priekšroka “int”, nevis “float”.

Visbeidzot, mana izpratne attiecas uz Sandro Maffiodo aka Smaffer, VGAx bibliotēkas un satriecošās spēles BitNinja radītāju. Bez šīs bibliotēkas šo projektu nevarētu realizēt.

Paldies arī Ņikitai Kurylev par vienkāršo, bet smieklīgo spēli Stacker.

Ieteicams: