Tartalomjegyzék:

Stackers Arcade Game: 6 lépés (képekkel)
Stackers Arcade Game: 6 lépés (képekkel)

Videó: Stackers Arcade Game: 6 lépés (képekkel)

Videó: Stackers Arcade Game: 6 lépés (képekkel)
Videó: How To Win On The Stacker Arcade Machine | Arcade Games Tips & Tricks 2024, November
Anonim
Stackers Arcade játék
Stackers Arcade játék

Sziasztok srácok, ma szeretném megosztani veletek ezt a csodálatos arcade játékot, amelyet egy csomó Ws2812b LED -del és egy mikrokontrollerrel/FPGA -val készíthettek el. Íme a Stack Overflow - a klasszikus arcade játék hardver megvalósítása. Ami egy iskolai projektként kezdődött, hamar szerelemmá vált, amikor egyre több időt kezdtünk el fejleszteni játékunkkal és többet tanulni belőle (és közben elhanyagolni a tanulmányainkat xD). Végül a játékunkat annyira jól felépítették és iskolánk jól fogadta, hogy elkobozták (demóanyagként a következő tanulói csoporthoz). Nos, mindig építhetünk egy másodikat. Lássunk neki!

A játék online verziója:

1. lépés: Mire van szüksége?

Mire van szükséged?
Mire van szükséged?
Mire van szükséged?
Mire van szükséged?
Mire van szükséged?
Mire van szükséged?
Mire van szükséged?
Mire van szükséged?

Anyagok:

1. egy mikrokontroller/mikroszámítógép/FPGA - Az FPGA a játékunk logikájának megvalósítására szolgál. Válassza ki a tábláját, a projektünkhöz a Mojo FPGA táblát kell használnunk. Az avatatlanok számára ez egy olyan tábla, amely hardvereket használ a funkciók végrehajtásához, nem pedig kódokat. Ezért azt mondanám, hogy meglehetősen alacsony szint és teljesen más, mint ha Arduino -t vagy Pi -t használ. Ha más táblákat használ, akkor saját kódot kell írnia, de ezt a játékot nagyon könnyű kódolni és hé! Most megtanulhatod a kódolást is!

2. Ws2812b LED -ek - Itt a LED -ek segítségével építjük fel a játékunk kijelzőjét. Nem lehetsz készítő, ha az xD előtt nem nyúltál a Ws2812b -hez. Ez egyetlen címezhető, ami azt jelenti, hogy levághatja az egyes LED -eket, és beillesztheti őket tetszőleges formációba. És az RGB azt jelenti, hogy tetszőleges színt adhat ki. Továbbá a FastLED - az Arduino könyvtár a Ws2812b vezérléséhez nagyon jól fejlett. Azt javaslom az embereknek, hogy használják az Arduino -t az FPGA helyett, ha nincs. A LED -eket a Taobao/Amazon -tól vásárolhatja meg, de mi a szingapúri Sim Lim -toronyból vásároltuk meg.

3. Fa-A külső burkolathoz 1 cm vastag rétegelt lemezt, a LED mátrixhoz pedig 0,3 cm vastag rétegelt lemezt használtunk. Iskolánk mesterséges laboratóriumában találtunk fahulladék -készletet.

4. Fényszóró akril - A képernyőn különféle akrilfajtákat próbáltunk ki, és ezt a PL -422 nevű, mattított akrilt találtuk, amely igazán jó a fény eloszlatására. Ha nem találja a pontos modellt, próbálja meg a fagyos akrilokat. Mi magunk vásároltuk a szingapúri Dama Plastics -nál.

5. Hablap - Az egyes fényképpontok szétválasztásához rácsszerkezetre volt szükségünk, és ez a hab ideális anyag ehhez. Iskolai könyvesboltunkban vásároltunk 0,5 cm vastag hablapot.

6. Nagy piros gomb - Ok, nem szükséges, hogy ilyen nagy piros gombunk legyen, de mindig jó, ha van egy gombunk az embereknek! xD Szingapúrban, a Sim Lim toronyban vettük.

Eszközök:

1. Fa ragasztó

2. Forrasztópáka

3. Forrasztás

4. Vezetékek. A legjobb, ha puha vezetékek vannak a merevebbekhez képest. És egymagos a többmagoshoz képest.

5. Huzalcsupaszító

6. Drótvágó

7. Fúrjon 1 mm -es fúrószárral

8. Görgőfűrész

9. Szalagfűrész

Hibakeresés:

1. Változó tápegység

2. Oszcilloszkóp

2. lépés: Gyors prototípus -készítés

Gyors prototípus
Gyors prototípus
Gyors prototípus
Gyors prototípus
Gyors prototípus
Gyors prototípus
Gyors prototípus
Gyors prototípus

Projektünk során gyors prototípus -készítést alkalmaztunk a LED -mátrix felépítése és a játék programozása előtt. Ennek az az oka, hogy nem akarjuk felépíteni a LED -mátrixot, csak hogy rájöjjünk, hogy a kódjaink nem működnek, vagy valamilyen módon hibás a játék logikánk.

A hardver oldaláról az első szakaszban csak kipróbáltuk a logikánkat a saját egyszerű LED -mátrixunkon lévő fényminták eltolásában. Miután teszteltük, hogy a logika jól működik -e, kimentünk 5 Ws2812b LED csíkot kivágni, csak hogy teszteljük a játék logikáját különböző sorokkal. Miután ez sikerült, folytatjuk a LED -mátrix teljes skálán történő gyártását.

Ezenkívül különböző akril mintákat is kipróbáltunk a LED-el, mielőtt a PL-422 mint a legjobb fény diffúzor mellett döntöttünk. És az elválasztó szerkezethez különböző magasságokat is kipróbáltunk, hogy a LED teljesen szóródjon. Végül rájöttünk, hogy a 3 cm*3 cm -es négyzet 4 cm -es magassággal a legjobb a diffúzióhoz. Ezen optimális méret alapján azt is eldöntöttük, hogy mekkora rétegelt lemezre van szükség egy 5 x 11 LED -es mátrixhoz úgy, hogy 0,5 cm -es rést hagyunk a habnak a négyzetek között.

A szoftveres oldalon igyekszünk a lehető legmodulárisabbak lenni - először azt teszteljük, hogy a LED -ek világíthatnak -e, mielőtt elkezdjük hozzáadni a váltás funkciót, majd másokat. Az eredmények katasztrofálisak lehetnek, ha ezt nem teszi meg. Ezt nehezen tanultuk meg, amikor megpróbáltuk az egész játékot nagy darabokban kódolni, mielőtt rájöttünk, hogy nem tudjuk hibakeresni. Jaj!

3. lépés: A burkolat elkészítése

A burkolat elkészítése
A burkolat elkészítése
A burkolat elkészítése
A burkolat elkészítése
A burkolat elkészítése
A burkolat elkészítése
A burkolat elkészítése
A burkolat elkészítése

A burkolatunkhoz klasszikus árkád gépi érzéseket és megjelenéseket választottunk. Először vékony rétegelt lemezt vágunk, hogy gyorsan prototípusba állítsuk az alakot, mivel könnyebb és gyorsabb a vékony rétegelt lemez vágása és tesztelése. Miután elégedettek voltunk méreteinkkel és alakunkkal, elkezdtünk vastagabb rétegelt lemezt használni a burkolat építéséhez. Szalagfűrésszel vágtuk át a vastagabb rétegelt lemezeket, és tekercsfűrésszel vágtuk át a vékonyabb rétegelt lemezeket. Ezt követően faragasztóval ragasztottuk össze őket.

A rétegelt lemez hátulján szerettük volna könnyen elérni a belsejében található elektronikát, ezért egy zárható darabot készítettünk belőle, amelyet könnyen eltávolíthat, amikor csak akar.

A gomb rögzítéséhez először rajzoltunk egy kört a gomb mikrokapcsolójának átmérőjével (a gomb alsó hosszú része). Ezután lyukat fúrtunk a széle közelében, és a görgetőfűrésszel köröket fűrészeltünk. Ezután elhelyeztük a gombot, és becsavartuk.

Vékony rétegelt lemezdarabot is vágunk a LED -mátrixunk alapjául, a korábban kiszámított méreteknek megfelelően.

Megjegyzés: Elnézést kérek a lépésről lépésre történő folyamat hiánya miatt. Nem dokumentáltuk végig a lépéseket, és mire rájöttünk, hogy dokumentálnunk kell a lépéseket, a burkolat már elkészült. A diagram szintén nem a végleges méretek.

4. lépés: A LED -mátrix készítése

A LED mátrix készítése
A LED mátrix készítése
A LED mátrix készítése
A LED mátrix készítése

A korábban kivágott vékony darab segítségével először jelöljük ki az egyes LED -ek helyzetét úgy, hogy a habszerkezetünk alapján rajzolunk egy négyzetet, és egy keresztet rajzolunk a négyzet közepére, ahol fel kell ragasztani a LED -et. Ezután 3 kis lyukat is fúrunk a LED mindkét oldalán, hogy a vezetékek átjussanak, és forrasztják őket az egyes LED -ekhez.

Az egyes LED-sorokat adatbe- és adatkimenetükön keresztül láncoljuk, és minden GND-t és VCC-t közös vezetékhez forrasztunk. A vezető adatbevitel generálja a fénymintákat minden sorhoz, és csatlakoztattuk a mikrovezérlő/FPGA kimenetéhez. Az egyik sor utolsó adatát ki is forraszthatja egy másik sor vezető adatbevitelére. A Ws2812b LED működése az, hogy minden LED tartalmaz egy IC -t, amely leveszi a szükséges adatokat a vezetékről, és továbbítja a többit a láncon. A LED -t egy másik fantasztikus utasításra alapoztuk (Valójában pontosan lemásoltuk! XD)

Itt szeretnénk hangsúlyozni a lágy vezetékek használatának fontosságát is. Ha merev, kemény huzalokat használ a vezető adatbevitelhez, akkor minden alkalommal, amikor rángatja a vezetéket, kihúzhatja a Ws2812b réz párnázatát, ami tönkreteszi azt. Ebben a projektben, mielőtt lágy vezetékekre váltottunk, összesen 40 LED -et semmisítettünk meg, ami a projektünkhöz szükséges LED -ek 1/3 -a.

Tanítható:

5. lépés: A játékkódok írása és a hardver hibakeresése

A játékkódok írása és a hibakeresési hardver
A játékkódok írása és a hibakeresési hardver
A játékkódok írása és a hibakeresési hardver
A játékkódok írása és a hibakeresési hardver
A játékkódok írása és a hibakeresési hardver
A játékkódok írása és a hibakeresési hardver

A Mojo Lucid HDL -en fut, ami nem a legnépszerűbb nyelv. Nem találunk Ws2812b LED -könyvtárat Lucidban, ezért saját könyvtárunk írásához folyamodtunk, ami nagyon érdekes élmény. Ehhez először elemeztük az Arduino FastLED könyvtárával kiosztott jelet, és kódokat írtunk annak megismétlésére. Itt van egy trükk a hardveres hibakeresésben, az oszcilloszkóp nagyon -nagyon hasznos a jelek elemzéséhez, legyen az saját jel hibakeresése, amiben nem vagy biztos, vagy más jelek ellenőrzése és másolása.

A Ws2812b könyvtárának megírása után folytatjuk a játék kódolását, a Bit shift funkciókkal balra és jobbra mozgattuk az egyes blokkokat, és a Bitwise AND értéket használtuk az egyes sorok négyzeteihez az előző sorhoz. Gondolhat arra is, hogy ezt az Arduino -ban implementálja, ami nem lehet olyan nehéz. Még szórakoztató játékkódokat is kódoltunk!

Játékunknak 2 szintje volt, ez a látható halmozási játék (zöld) és a második szintű láthatatlan halmozási játék (kék).

Még azután is, hogy működő kódjaink és működő LED -mátrixunk volt, néha még mindig olyan problémákkal kell szembenéznünk, mint a villogó fények vagy a fények, amikor nem kellene. A probléma általában a nem megfelelő földelés, a tápegység szintje vagy az interferencia miatt van. Itt más hardveres hibakeresési eszközökre, például változó tápegységre lesz szüksége annak ellenőrzéséhez, hogy a Mojo/Arduino tápegysége elegendő vagy túl magas. Tapasztalataim szerint a Ws2812b igen széles üzemi feszültségtartománnyal rendelkezik 2,8–5 V között. Itt van egy videóm, amely azt mutatja, hogy a fények teljesen megőrülnek, miután növeltem a teljesítményt.

A további ellenőrzések során azonban kiderült, hogy nem megfelelő forrasztóanyaggal rendelkeztünk, miután újra forrasztottuk őket, a problémánk megoldódott. Probléma lehet az interferenciával vagy a keresztbeszéléssel is, de szerencsére soha nem találkoztunk egyikükkel sem.

Github kódok:

Arduino Bitwise Shift:

Arduino Bitwise ÉS:

6. lépés: Mindent össze kell rakni

Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni

Megvan a burkolat és a LED mátrix. Itt az ideje, hogy mindent összerakjunk. Először a habot helyezzük az elejére és mögötte a LED mátrixot, és állítsuk be a helyzetet. Mivel a habnak nagyon nagy a súrlódása, csak súrlódásra szerelték fel, miközben a LED -mátrix forró ragasztóval a helyére került. Ezt követően a képernyőt a rács elé helyeztük. Ezután csatlakoztattuk minden sor tűjét a mikrokontrollerhez, és elkezdtünk játszani!: D

Egy dolog tetszik ebben a projektben a rugalmassága, mindig átprogramozhatja a mikrokontrollert egy másik játék részévé, és kipróbálhat valamit, például animációt vagy reakciójátékot. Remélem tetszeni fog nektek, és tanultok valamit ennek elkészítéséhez. GgEz!

Ajánlott: