Obsah:

Arkádová hra Stackers: 6 krokov (s obrázkami)
Arkádová hra Stackers: 6 krokov (s obrázkami)

Video: Arkádová hra Stackers: 6 krokov (s obrázkami)

Video: Arkádová hra Stackers: 6 krokov (s obrázkami)
Video: Modern Combat 5 and Arkade Blaster! 2024, November
Anonim
Arkádová hra Stackers
Arkádová hra Stackers

Ahojte chlapci, dnes sa s vami chcem podeliť o túto úžasnú arkádovú hru, ktorú môžete vyrobiť pomocou mnohých LED diód Ws2812b a mikrokontroléra/FPGA. Hľa, Stack Overflow - naša hardvérová implementácia klasickej arkádovej hry. To, čo sa začalo ako školský projekt, sa rýchlo stalo dielom lásky, pretože sme začali tráviť viac a viac času pri rozvíjaní našej hry a viac sa z nej učiť (a pritom zanedbávať štúdium xD). Nakoniec bola naša hra tak dobre zostavená a dobre prijatá našou školou, že bola zabavená (ako demo materiál pre ďalšiu dávku študentov). Vždy môžeme postaviť druhú. Začnime!

Online verzia hry:

Krok 1: Čo potrebujete?

Čo potrebuješ?
Čo potrebuješ?
Čo potrebuješ?
Čo potrebuješ?
Čo potrebuješ?
Čo potrebuješ?
Čo potrebuješ?
Čo potrebuješ?

Materiály:

1. mikrokontrolér/mikropočítač/FPGA - FPGA sa používa na implementáciu logiky našej hry. Vyberte si svoju dosku, pre náš projekt sme povinní použiť dosku FPGA Mojo. Pre nezainteresovaných je to typ dosky, ktorá používa hardvér na implementáciu svojich funkcií, a nie kódy. Preto by som povedal, že je dosť nízka a úplne iná, ako keby ste používali Arduino alebo Pi. Ak používate iné dosky, musíte si napísať svoj vlastný kód, ale táto hra sa veľmi ľahko kóduje a hej! Teraz sa môžete naučiť kódovať aj vy!

2. LED diódy Ws2812b - Tu používame diódy LED na konštrukciu displeja pre našu hru. Nemôžete byť výrobcom, ak ste sa nedotkli Ws2812b pred xD. Je to jednoducho adresovateľné, čo znamená, že môžete oddeliť jednotlivé LED diódy a vložiť ich do ľubovoľnej formácie, ktorá sa vám páči. A to znamená, že RGB znamená, že môžete reprodukovať akúkoľvek farbu, ktorá sa vám páči. FastLED - knižnica Arduino na ovládanie Ws2812b je navyše veľmi dobre vyvinutá. Odporúčam ľuďom, aby namiesto FPGA používali Arduino, ak ho nemáte. LED diódy si môžete kúpiť v Taobao/Amazon, ale tie naše sme kúpili vo veži Sim Lim v Singapure.

3. Drevo-Na vonkajší plášť sme použili preglejku s hrúbkou 1 cm a pre maticu LED sme použili preglejku s hrúbkou 0,3 cm. Našli sme zásoby šrotu z fabrického laboratória našej školy.

4. Akryl rozptyľujúci svetlo - Na našej obrazovke sme vyskúšali rôzne druhy akrylu a našli sme tento matný akryl s názvom PL -422, ktorý je na rozptyľovanie svetla skutočne dobrý. Ak nemôžete nájsť presný model, skúste vyhľadať matné akryly. Kúpili sme naše v spoločnosti Dama Plastics v Singapure.

5. Penová doska - Aby sme oddelili každý jednotlivý pixel svetla, potrebovali sme mriežkovú štruktúru a táto pena je na to ideálny materiál. V našom školskom kníhkupectve sme kúpili penovú dosku hrubú 0,5 cm.

6. Veľké červené tlačidlo - Ok, nie je potrebné, aby sme mali také veľké červené tlačidlo, ale je vždy dobré mať tlačidlo, na ktoré môžu ľudia buchnúť! xD Kúpili sme ho vo veži Sim Lim v Singapure.

Náradie:

1. Lepidlo na drevo

2. Spájkovačka

3. Spájka

4. Drôty. Najlepšie je, ak máte mäkké drôty v porovnaní s tužšími. A jednojadrové v porovnaní s viacjadrovými.

5. Odstraňovač drôtov

6. Rezačka drôtu

7. Vŕtajte pomocou vrtákov s priemerom 1 mm

8. Rolovacia píla

9. Pásová píla

Ladenie:

1. Variabilný zdroj napájania

2. Osciloskop

Krok 2: Rýchle prototypovanie

Rapídne prototypovanie
Rapídne prototypovanie
Rapídne prototypovanie
Rapídne prototypovanie
Rapídne prototypovanie
Rapídne prototypovanie
Rapídne prototypovanie
Rapídne prototypovanie

Pre náš projekt sme použili rýchle prototypovanie pred vytvorením matice LED a programovaním našej hry. Dôvodom je to, že nechceme vytvárať maticu LED len preto, aby sme si uvedomili, že naše kódy nefungujú alebo je nejaká chyba v našej logike hry.

Po hardvérovej stránke sme v prvej fáze len testovali našu logiku pri posúvaní svetelných obrazcov na našej vlastnej jednoduchej LED matici. Keď sme otestovali, že logika funguje dobre, vybrali sme sa vystrihnúť pásy 5 LED Ws2812b, aby sme otestovali našu logiku hry s rôznymi radmi. Akonáhle to vyjde, pokračujeme k výrobe matice LED v plnom rozsahu.

Pred usadením na PL-422 ako najlepšom rozptyľovači svetla sme tiež testovali rôzne vzorky akrylu s LED. A pre štruktúru separátora sme tiež testovali rôzne výšky, aby sa dióda LED úplne rozptýlila. Nakoniec sme zistili, že štvorec 3 cm x 3 cm s výškou 4 cm je najlepší na difúziu. Na základe tejto optimálnej veľkosti sme sa tiež rozhodli, aká je veľkosť preglejky potrebnej pre maticu LED 5 x 11 tak, že medzi štvorcami ponecháme 0,5 cm medzeru pre penu.

Po softvérovej stránke sa snažíme byť čo najviac modulárni - najskôr vyskúšame, či je možné rozsvietiť diódy LED, a až potom pridáme funkciu radenia, a potom ďalšie. Výsledky by mohli byť katastrofálne, ak by ste to neurobili. Naučili sme sa to tvrdo, pretože sme sa pokúsili kódovať celú hru vo veľkom kúsku, než sme zistili, že ju nemôžeme odladiť. Au!

Krok 3: Výroba puzdra

Výroba puzdra
Výroba puzdra
Výroba puzdra
Výroba puzdra
Výroba puzdra
Výroba puzdra
Výroba puzdra
Výroba puzdra

Pokiaľ ide o naše puzdro, išli sme s klasickými pocitmi a vzhľadom arkádového stroja. Najprv nakrájame tenkú preglejku, aby sme rýchlo prototypovali tvar, pretože rezanie tenkej preglejky a testovanie je jednoduchšie a rýchlejšie. Keď sme boli spokojní s našimi rozmermi a tvarom, začali sme na stavbu plášťa používať hrubšiu preglejku. Pásovou pílou sme prerezali hrubšiu preglejku a špirálovou pílou prerezali tenšie. Potom sme ich pomocou lepidla na drevo zlepili.

Na zadnej strane preglejky sme chceli mať ľahký prístup k elektronike vo vnútri, a preto sme z nej urobili zámok na mieste, ktorý môžete ľahko odstrániť, kedykoľvek budete chcieť.

Na prichytenie gombíka sme najskôr nakreslili kruh o veľkosti priemeru mikrospínača gombíka (spodná dlhá časť gombíka). Potom sme vyvŕtali dieru blízko okraja a špirálovou pílou sme videli kruh. Potom sme tlačidlo umiestnili a zaskrutkovali.

Tiež sme nakrájali tenký kus preglejky ako základ našej LED matrice podľa veľkostí, ktoré sme predtým vypočítali.

Poznámka: Ospravedlňujem sa za nedostatok postupu krok za krokom. Kroky sme nedokumentovali úplne a kým sme si uvedomili, že kroky musíme zdokumentovať, plášť bol už hotový. Schéma tiež nie je konečnými rozmermi.

Krok 4: Vytvorenie matice LED

Výroba LED matice
Výroba LED matice
Výroba LED matice
Výroba LED matice

Pomocou tenkého kusa, ktorý sme predtým vystrihli, najskôr označíme polohu každej LED diódy tak, že nakreslíme štvorec na základe našej penovej štruktúry a v strede štvorca nakreslíme kríž ako miesto, kde by sme mali LED diódu nalepiť. Potom tiež vyvŕtame 3 malé otvory na každej strane LED diódy, aby prešli drôty, a spájkujeme ich s každou LED diódou.

Každý rad diód LED zapojíme do reťazca pomocou pinov Data In a Data Out a spájame každý GND a VCC na spoločný vodič. Vedúci dátový vstup vygeneruje svetelné vzory pre každý riadok a pripojili sme ho k vývodu mikrokontroléra/FPGA. Môžete tiež spájkovať posledné údaje z jedného riadka s vedúcim údajom v inom riadku. Ws2812b LED funguje tak, že každá LED dióda obsahuje integrovaný obvod, ktorý odoberie požadované údaje z vodiča a zvyšok predá reťazcom. Naše LED sme založili na inom fantastickom návode (V skutočnosti sme ho skopírovali presne! XD)

Tu by sme tiež chceli zdôrazniť dôležitosť používania mäkkých drôtov. Ak na predný kolík Data In použijete pevné a tvrdé vodiče, stane sa to zakaždým, keď za kábel potiahnete, môže vytiahnuť medené čalúnenie na vašom Ws2812b, ktoré ho zničí. V tomto projekte sme predtým, ako sme prešli na mäkké vodiče, zničili celkom 40 LED diód, čo je 1/3 diód LED potrebných pre náš projekt.

Pokyny:

Krok 5: Písanie herných kódov a ladiaci hardvér

Písanie herných kódov a ladiaci hardvér
Písanie herných kódov a ladiaci hardvér
Písanie herných kódov a ladiaci hardvér
Písanie herných kódov a ladiaci hardvér
Písanie herných kódov a ladiaci hardvér
Písanie herných kódov a ladiaci hardvér

Mojo beží na Lucid HDL, čo nie je najobľúbenejší jazyk. V Lucidi nemôžeme nájsť žiadne LED knižnice Ws2812b, preto sme sa uchýlili k napísaniu vlastnej knižnice, čo je veľmi zaujímavá skúsenosť. Aby sme to urobili, najskôr sme analyzovali signál, ktorý je stratený, pomocou knižnice Arduino FastLED a napísali sme kódy, ktoré to replikujú. Tu je trik ladenia hardvéru, osciloskop je veľmi, veľmi užitočný na analýzu signálov, či už ide o ladenie vlastného signálu, o ktorom si nie ste istí, alebo o kontrolu a kopírovanie iných signálov.

Po napísaní knižnice pre Ws2812b potom pristúpime ku kódu hry, pomocou funkcií Bit shift sme presunuli každý blok doľava a doprava a pomocou štvorcových polí Bitwise AND až AND každého riadka do predchádzajúceho riadka. Môžete tiež uvažovať o implementácii v Arduine, čo by nemalo byť také ťažké. Dokonca sme kódovali herné obrazovky, aby sme si to užili!

Naša hra mala 2 úrovne, čo je viditeľná stohovacia hra (zelená) a druhá úroveň neviditeľnej stohovacej hry (modrá).

Aj keď sme mali fungujúce kódy a fungujúcu maticu LED, niekedy sa stretávame s problémami, ako je blikanie svetiel alebo rozsvietenie svetiel, keď by nemali. Problém je zvyčajne v dôsledku nesprávneho uzemnenia, úrovne napájania alebo rušenia. Tu budete potrebovať ďalšie nástroje na ladenie hardvéru, ako je napríklad variabilná jednotka napájania, aby ste zistili, či je napájanie Mojo/Arduino dostatočné alebo príliš vysoké. Podľa mojich skúseností má Ws2812b dosť široký rozsah pracovných napätí od 2,8v do 5v. Tu mám video, ktoré ukazuje, ako sa svetlá zbláznia potom, čo zvýšim výkon.

Ďalšia kontrola však odhalila, že sme použili nejakú nevhodnú spájku, po ich opätovnom spájkovaní bol náš problém vyriešený. Tiež by mohol byť problém s interferenciou alebo krížovým rozhovorom, ale našťastie sme sa nikdy nestretli so žiadnym z nich.

Kódy Github:

Bitový posun Arduino:

Arduino Bitwise A:

Krok 6: Spojte všetko dohromady

Dať všetko dohromady
Dať všetko dohromady
Dať všetko dohromady
Dať všetko dohromady
Dať všetko dohromady
Dať všetko dohromady
Dať všetko dohromady
Dať všetko dohromady

Máte kryt a maticu LED. Teraz je čas dať všetko dohromady. Najprv umiestnime penu na prednú stranu a LED maticu za ňu a upravíme polohu. Pretože pena má veľmi vysoké trenie, bolo namontované iba trením, zatiaľ čo matica LED je za tepla prilepená na mieste. Potom sme obrazovku umiestnili pred mriežku. Potom sme zapojili kolíky každého radu do mikrokontroléra a začali sme hrať!: D

Jedna vec, ktorá sa mi na tomto projekte páči, je jeho flexibilita, mikrokontrolér môžete vždy preprogramovať tak, aby bol súčasťou inej hry, a vyskúšať niečo ako vytváranie animácií alebo reakčných hier. Dúfam, že vás to baví a naučíte sa niečo pre to. GgEz!

Odporúča: