Tartalomjegyzék:
- 1. lépés: Mire van szüksége?
- 2. lépés: Gyors prototípus -készítés
- 3. lépés: A burkolat elkészítése
- 4. lépés: A LED -mátrix készítése
- 5. lépés: A játékkódok írása és a hardver hibakeresése
- 6. lépés: Mindent össze kell rakni
Videó: Stackers Arcade Game: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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?
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
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 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 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 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
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:
Bubble Bobble Arcade Cabinet (Bartop): 14 lépés (képekkel)
Bubble Bobble Arcade Cabinet (Bartop): Még egy szekrényépítési útmutató? Nos, a szekrényemet elsősorban a Galaktikus Starcade segítségével építettem sablonként, de néhány változtatást végeztem, miközben úgy éreztem, hogy utólag javítom mindkettőt egyes alkatrészek könnyű felszerelése és az esztétika javítása
Arduino Cyclone Arcade Game: 6 lépés
Arduino Cyclone Arcade Game: Villogó, mutatós fények! Arduino! Játszma, meccs! Mit kell még mondani? Ez a játék a Cyclone arcade játékon alapul, ahol a játékos megpróbálja megállítani a led körüli görgetését egy adott helyen
Cyclone LED Arcade Game: 4 lépés
Cyclone LED Arcade Game: A projekt célja egy egyszerű játék létrehozása volt egy Arduino használatával, amely interaktív és szórakoztató lenne a gyerekek számára. Emlékszem, hogy a Cyclone arcade játék az egyik kedvenc arcade játékom volt, amikor fiatalabb voltam, ezért úgy döntöttem, hogy megismétlem. T
Halloween Horse Racing Arcade Game: 6 lépés
Halloween Horse Racing Arcade Game: Ebben az évben úgy döntöttünk, hogy egy lóversenyes arcade játékot készítünk Halloweenre. A Roll-a-Ball Horse Racing nevű mechanikus változat inspirált bennünket. Célunk az volt, hogy olyan játékot készítsünk, amely egyszerű irányítással rendelkezik, hogy a játékosok széles köre számára vonzó legyen. Alapján o
Arduino Pocket Game Console + A -Maze - Maze Game: 6 lépés (képekkel)
Arduino Pocket Game Console + A -Maze - Maze Game: Üdvözöllek az első oktatható játékomban! A projekt, amelyet ma szeretnék megosztani veletek, az Arduino labirintus játék, amely olyan zsebkonzol lett, mint az Arduboy és hasonló Arduino alapú konzolok. Az expo -nak köszönhetően az én (vagy az Ön) jövőbeli játékaival is villoghat