Satura rādītājs:

Krāvēju arkādes spēle: 6 soļi (ar attēliem)
Krāvēju arkādes spēle: 6 soļi (ar attēliem)

Video: Krāvēju arkādes spēle: 6 soļi (ar attēliem)

Video: Krāvēju arkādes spēle: 6 soļi (ar attēliem)
Video: Rediscovering Lost Legends: 35 Forgotten Racing Games 2024, Jūlijs
Anonim
Krāvēju arkādes spēle
Krāvēju arkādes spēle

Čau puiši, šodien es vēlos ar jums dalīties ar šo apbrīnojamo arkādes spēli, ko varat izveidot, izmantojot virkni Ws2812b gaismas diodes un mikrokontrolleru/FPGA. Redziet Stack Overflow - mūsu klasiskās arkādes spēles aparatūras ieviešana. Tas, kas sākās kā skolas projekts, ātri kļuva par mīlestības darbu, jo arvien vairāk laika sākām veltīt savas spēles attīstīšanai un no tās vairāk mācīties (un novārtā atstāt savas mācības xD). Galu galā mūsu spēle bija tik labi uzbūvēta un mūsu skola to labi uztvēra, ka tā tika konfiscēta (kā demonstrācijas materiāls nākamajai skolēna partijai). Nu, mēs vienmēr varam izveidot otru. Sāksim!

Spēles tiešsaistes versija:

1. darbība. Kas jums nepieciešams?

Ko tev vajag?
Ko tev vajag?
Ko tev vajag?
Ko tev vajag?
Ko tev vajag?
Ko tev vajag?
Ko tev vajag?
Ko tev vajag?

Materiāli:

1. mikrokontrolleris/mikrodators/FPGA - FPGA tiek izmantots, lai ieviestu mūsu spēles loģiku. Izvēlieties savu dēli, mūsu projektam mums ir jāizmanto Mojo FPGA tāfele. Nezinātājiem tas ir tāfeles veids, kas savu funkciju īstenošanai izmanto aparatūru, nevis kodus. Tādējādi es teiktu, ka tā līmenis ir diezgan zems un pilnīgi atšķirīgs nekā tad, ja izmantojat Arduino vai Pi. Ja izmantojat citus dēļus, jums ir jāraksta savs kods, taču šo spēli ir diezgan viegli kodēt un hey! Tagad jūs varat iemācīties arī kodēšanu!

2. Ws2812b gaismas diodes - šeit mēs izmantojam gaismas diodes, lai izveidotu spēles displeju. Nevar būt veidotājs, ja pirms xD neesat pieskāries Ws2812b. Tā ir viena adresējama nozīme, ka jūs varat nogriezt atsevišķas gaismas diodes un ielīmēt tās jebkurā formātā, kas jums patīk. Un tas ir RGB, kas nozīmē, ka jūs varat izvadīt jebkuru krāsu, kas jums patīk. Turklāt FastLED - Arduino bibliotēka Ws2812b kontrolei ir ļoti labi attīstīta. Es ieteiktu cilvēkiem izmantot Arduino FPGA vietā, ja jums tāda nav. Jūs varat iegādāties gaismas diodes no Taobao/Amazon, bet mēs iegādājāmies no Sim Lim torņa Singapūrā.

3. Koks-ārējam apvalkam izmantojām 1 cm biezu saplāksni, bet LED matricai-0,3 cm biezu saplāksni. Mēs atradām savu malkas krājumu no mūsu skolas fab laboratorijas.

4. Gaismu izkliedējošs akrils - mūsu ekrānam mēs izmēģinājām dažādus akrila veidus, un mēs atradām šo matēto akrilu ar nosaukumu PL -422, kas ir patiešām labs gaismas izkliedēšanai. Ja nevarat atrast precīzu modeli, mēģiniet meklēt matētu akrilu. Mēs iegādājāmies Dama Plastics Singapūrā.

5. Putu dēlis - lai atdalītu katru atsevišķo gaismas pikseļu, mums bija nepieciešama režģa struktūra, un šīs putas ir ideāls materiāls, lai to izdarītu. Mēs nopirkām 0,5 cm biezu putuplasta dēli mūsu skolas grāmatnīcā.

6. Lielā sarkanā poga - Labi, mums nav nepieciešama tik liela sarkana poga, bet vienmēr ir labi, ja ir poga, ko cilvēki var slamēt! xD Mēs to nopirkām Sim Lim tornī Singapūrā.

Rīki:

1. Koka līme

2. Lodāmurs

3. Lodēt

4. Vadi. Vislabāk, ja jums ir mīksti vadi, salīdzinot ar stingrākiem. Un viens kodols, salīdzinot ar daudzkodolu.

5. Stiepļu noņēmējs

6. Stiepļu griezējs

7. Urbt ar 1 mm urbjiem

8. Ritināšanas zāģis

9. Lentzāģis

Atkļūdošana:

1. Mainīga barošanas bloks

2. Osciloskops

2. darbība. Ātrā prototipēšana

Ātrā prototipēšana
Ātrā prototipēšana
Ātrā prototipēšana
Ātrā prototipēšana
Ātrā prototipēšana
Ātrā prototipēšana
Ātrā prototipēšana
Ātrā prototipēšana

Mūsu projektā pirms LED matricas veidošanas un spēles programmēšanas mēs izmantojām ātru prototipu. Iemesls tam ir tas, ka mēs nevēlamies veidot LED matricu tikai tāpēc, lai saprastu, ka mūsu kodi nedarbojas vai mūsu spēles loģika ir kļūdaina.

Aparatūras pusē pirmajā posmā mēs tikko pārbaudījām savu loģiku, mainot gaismas modeļus uz mūsu vienkāršās LED matricas. Kad mēs pārbaudījām, vai loģika darbojas labi, mēs izgājām izgriezt 5 Ws2812b gaismas diodes, lai pārbaudītu mūsu spēles loģiku ar dažādām rindām. Kad tas izdodas, mēs turpinām izgatavot LED matricu pilnā mērogā.

Mēs arī pārbaudījām dažādus akrila paraugus ar LED, pirms samierinājāmies ar PL-422 kā labāko gaismas izkliedētāju. Atdalītāja struktūrai mēs arī pārbaudījām dažādus augstumus, lai gaismas diode pilnībā izkliedētos. Galu galā mēs sapratām, ka 3 cm*3 cm kvadrāts ar 4 cm augstumu ir labākais difūzijai. Pamatojoties uz šo optimālo izmēru, mēs arī nolēmām, kāds ir saplākšņa izmērs, kas nepieciešams 5 x 11 LED matricai, atstājot 0,5 cm atstarpi putām starp kvadrātiem.

Programmatūras jomā mēs cenšamies būt pēc iespējas modulārāki - vispirms pārbaudām, vai gaismas diodes var iedegties, pirms sākat pievienot pārslēgšanas funkciju, un pēc tam citas. Ja to nedarīsit, rezultāti var būt katastrofāli. Mēs to iemācījāmies smagi, mēģinot kodēt visu spēli lielā gabalā, pirms sapratām, ka nevaram to atkļūdot. Ak!

3. darbība: apvalka izgatavošana

Apvalka izgatavošana
Apvalka izgatavošana
Apvalka izgatavošana
Apvalka izgatavošana
Apvalka izgatavošana
Apvalka izgatavošana
Apvalka izgatavošana
Apvalka izgatavošana

Mūsu korpusam mēs devāmies ar klasiskām arkādes mašīnu izjūtām un izskatu. Pirmkārt, mēs sagriežam kādu plānu saplāksni, lai ātri izveidotu prototipu, jo ir vieglāk un ātrāk sagriezt plānu saplāksni un pārbaudīt. Kad bijām apmierināti ar izmēriem un formu, apvalka veidošanai sākām izmantot biezāku saplāksni. Mēs izmantojām lentzāģi, lai izgrieztu biezāku saplāksni, un ritināšanas zāģi, lai izgrieztu plānākos. Pēc tam mēs izmantojām koka līmi, lai tos salīmētu kopā.

Saplākšņa aizmugurē mēs vēlējāmies viegli piekļūt iekšpusē esošajai elektronikai, tāpēc mēs to padarījām par fiksējamu gabalu, kuru varat viegli noņemt, kad vien vēlaties.

Lai piestiprinātu pogu, mēs vispirms uzzīmējām apli pogas mikroslēdža diametra lielumā (pogas apakšējā garā daļa). Pēc tam mēs urbām caurumu netālu no malas un ar ritināšanas zāģi izzāģējām apli. Tad mēs ievietojām pogu un ieskrūvējām to.

Mēs arī sagriezām plānu saplākšņa gabalu kā mūsu LED matricas pamatu atbilstoši iepriekš aprēķinātajiem izmēriem.

Piezīme: Es atvainojos, ka trūkst pakāpeniska procesa. Mēs nedokumentējām soļus līdz galam un līdz brīdim, kad sapratām, ka mums ir jādokumentē soļi, apvalks jau bija izdarīts. Diagramma arī nav galīgie izmēri.

4. solis: LED matricas izveide

LED matricas izgatavošana
LED matricas izgatavošana
LED matricas izgatavošana
LED matricas izgatavošana

Izmantojot plānu gabalu, kuru mēs iepriekš izgriezām, mēs vispirms atzīmējam katras gaismas diodes pozīciju, uzzīmējot kvadrātu, pamatojoties uz mūsu putu struktūru, un kvadrāta vidū uzzīmējot krustu kā vietu, kur mums vajadzētu pielīmēt gaismas diodi. Tad mēs arī urbjam 3 mazus caurumus katrā gaismas diodes pusē, lai vadi izietu, un pielodējam tos pie katras gaismas diodes.

Katru gaismas diodes rindu mēs savienojam ar ķēdi pēc to datu ievades un datu izejas tapām, un mēs pielodējam katru GND un VCC kopējam vadam. Vadošā datu ievade radīs gaismas modeļus katrai rindai, un mēs to savienojām ar mikrokontrollera/FPGA kontaktligzdu. Varat arī lodēt pēdējos datus no vienas rindas uz citas rindas vadošajiem datiem. Gaismas diode Ws2812b darbojas tā, ka katrā gaismas diodē ir IC, kas paņems nepieciešamos datus no stieples un pārējo pārnesīs pa ķēdi. Mēs balstījām savu LED uz citu fantastisku pamācību (patiesībā mēs to precīzi nokopējām! XD)

Šeit mēs arī vēlētos uzsvērt mīksto vadu izmantošanas nozīmi. Ja vadošajai datu ievades tapai izmantojat cietus, cietus vadus, katru reizi, kad pavelkat vadu, tas var izvilkt Ws2812b vara polsterējumu, kas to iznīcinās. Šajā projektā, pirms mēs pārgājām uz mīkstajiem vadiem, mēs iznīcinājām kopumā 40 gaismas diodes, kas ir 1/3 no mūsu projektam nepieciešamajām gaismas diodēm.

Instrukcija:

5. darbība: spēļu kodu rakstīšana un aparatūras atkļūdošana

Spēļu kodu rakstīšana un aparatūras atkļūdošana
Spēļu kodu rakstīšana un aparatūras atkļūdošana
Spēļu kodu rakstīšana un aparatūras atkļūdošana
Spēļu kodu rakstīšana un aparatūras atkļūdošana
Spēļu kodu rakstīšana un aparatūras atkļūdošana
Spēļu kodu rakstīšana un aparatūras atkļūdošana

Mojo darbojas ar Lucid HDL, kas nav populārākā valoda. Mēs nevaram atrast nevienu Ws2812b LED bibliotēku Lucidā, tāpēc mēs ķērāmies pie savas bibliotēkas rakstīšanas, kas ir ļoti interesanta pieredze. Lai to izdarītu, mēs vispirms analizējām signālu, kas tiek nodots, izmantojot Arduino FastLED bibliotēku, un rakstījām kodus, lai to atkārtotu. Šeit ir aparatūras atkļūdošanas triks, osciloskops ir ļoti, ļoti noderīgs signālu analīzei, vai tas būtu sava signāla atkļūdošana, par kuru neesat pārliecināts, vai citu signālu pārbaude un kopēšana.

Pēc Ws2812b bibliotēkas rakstīšanas mēs turpinām spēles kodu, mēs izmantojām bitu nobīdes funkcijas, lai pārvietotu katru bloku pa kreisi un pa labi, un izmantojām Bitwise AND uz UN katras rindas kvadrātus uz iepriekšējo rindu. Varat arī iedomāties to ieviest Arduino, kam nevajadzētu būt tik grūti. Pat jautri iekodējām spēļu ekrānus!

Mūsu spēlei bija 2 līmeņi, kas ir redzamā kraušanas spēle (zaļā) un otrā līmeņa neredzamā kraušanas spēle (zila).

Pat pēc tam, kad mums bija darba kodi un strādājoša LED matrica, dažreiz mēs joprojām saskaramies ar tādām problēmām kā gaismas mirgošana vai gaismas iedegšanās, kad tām nevajadzētu. Problēma parasti rodas nepareiza zemējuma, barošanas līmeņa vai traucējumu dēļ. Šeit jums būs nepieciešami citi aparatūras atkļūdošanas rīki, piemēram, mainīga barošanas bloks, lai pārbaudītu, vai Mojo/Arduino barošanas avots ir pietiekams vai pārāk augsts. Pēc manas pieredzes, Ws2812b ir diezgan plašs darba spriegumu diapazons no 2,8 līdz 5 V. Šeit man ir video, kurā redzams, kā gaismas kļūst trakas pēc jaudas palielināšanas.

Tomēr turpmākā pārbaude atklāja, ka mums bija nepareizs lodējums, pēc atkārtotas lodēšanas mūsu problēma tika atrisināta. Varētu būt arī problēmas ar traucējumiem vai savstarpēju runāšanu, bet, par laimi, mēs nekad nevienu no tiem neesam saskārušies.

Github kodi:

Arduino bitu maiņa:

Arduino Bitwise AND:

6. darbība: visu salieciet kopā

Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā

Jums ir korpuss un LED matrica. Tagad ir pienācis laiks visu salikt kopā. Vispirms mēs ievietojam putas priekšpusē un LED matricu aiz tās un noregulējām stāvokli. Tā kā putām ir ļoti augsta berze, tās tika uzstādītas tikai berzes laikā, kamēr LED matrica ir karsti pielīmēta vietā. Pēc tam mēs novietojām ekrānu režģa priekšā. Pēc tam mēs pievienojām katras rindas tapu pie mikrokontrollera un sākām spēlēt!: D

Viena lieta, kas man patīk šajā projektā, ir tās elastība, jūs vienmēr varat pārprogrammēt mikrokontrolleri, lai tas būtu daļa no citas spēles, un izmēģināt kaut ko, piemēram, animācijas veidošanu vai reakcijas spēli. Ceru, ka jums, puišiem, patiks to pagatavot un uzzināsiet kaut ko, kā to pagatavot. GgEz!

Ieteicams: