Sisällysluettelo:

Stackers Arcade Game: 6 vaihetta (kuvilla)
Stackers Arcade Game: 6 vaihetta (kuvilla)

Video: Stackers Arcade Game: 6 vaihetta (kuvilla)

Video: Stackers Arcade Game: 6 vaihetta (kuvilla)
Video: STACKER 6 2024, Marraskuu
Anonim
Pinoajat Arcade -peli
Pinoajat Arcade -peli

Hei kaverit, tänään haluan jakaa kanssanne tämän hämmästyttävän arcade -pelin, jonka voit tehdä joukolla Ws2812b -LED -valoja ja mikro/FPGA -ohjainta. Katso Stack Overflow - laitteistototeutuksemme klassisesta arcade -pelistä. Kouluprojektina alkanut muuttui nopeasti rakkauden työksi, kun alettiin käyttää enemmän ja enemmän aikaa pelimme kehittämiseen ja sen oppimiseen (ja laiminlyömään opintomme prosessissa xD). Lopulta pelimme oli niin hyvin rakennettu ja koulu otti sen hyvin vastaan, että se takavarikoitiin (demomateriaalina seuraavalle oppilaserälle). No, voimme aina rakentaa toisen. Aloitetaan!

Pelin online-versio:

Vaihe 1: Mitä tarvitset?

Mitä tarvitset?
Mitä tarvitset?
Mitä tarvitset?
Mitä tarvitset?
Mitä tarvitset?
Mitä tarvitset?
Mitä tarvitset?
Mitä tarvitset?

Materiaalit:

1. mikrokontrolleri/mikrotietokone/FPGA - FPGA: ta käytetään pelimme logiikan toteuttamiseen. Valitse pelilauta, projektissamme meidän on käytettävä Mojo FPGA -levyä. Tietämättömille se on eräänlainen levy, joka käyttää laitteistoa toimintojensa toteuttamiseen koodien sijasta. Siksi sanoisin, että se on melko alhainen ja täysin erilainen kuin jos käytät Arduinoa tai Pi: tä. Jos käytät muita tauluja, sinun on kirjoitettava oma koodisi, mutta tämä peli on melko helppo koodata ja hei! Nyt voit myös opetella koodausta!

2. Ws2812b LEDit - Tässä käytämme LED -valoja pelimme näytön rakentamiseen. Ei voi olla valmistaja, jos et ole koskettanut Ws2812b: tä ennen xD: tä. Se on yksi osoitettavissa oleva merkitys, jonka avulla voit katkaista yksittäiset LEDit ja liittää ne mihin tahansa haluamaasi kokoonpanoon. Ja se on RGB, joka tarkoittaa, että voit tulostaa haluamasi värin. Lisäksi FastLED - Arduino -kirjasto Ws2812b: n ohjaamiseen on hyvin kehittynyt. Suosittelen ihmisiä käyttämään Arduinoa FPGA: n sijasta, jos sinulla ei ole sellaista. Voit ostaa LEDit Taobaosta/Amazonista, mutta ostimme omamme Sim Lim -tornista Singaporesta.

3. Puu-Ulkovaippaan käytimme 1 cm paksuista vaneria ja LED-matriisiin 0,3 cm paksua vaneria. Löysimme puutavarakoulumme koulumme upeasta laboratoriosta.

4. Valoa hajottava akryyli - Näytössämme kokeilimme erilaisia akryylityyppejä ja löysimme tämän himmeän akryylin nimeltä PL -422, joka on todella hyvä valon hajottamiseen. Jos et löydä tarkkaa mallia, yritä etsiä himmeitä akryylimaaleja. Ostimme omamme Dama Plasticsista Singaporesta.

5. Vaahtotaulu - Jotta voimme erottaa yksittäiset valopikselit, tarvitsimme verkkorakenteen ja tämä vaahto on ihanteellinen materiaali siihen. Ostimme koulun kirjakaupasta 0,5 cm paksun vaahtomuovilevyn.

6. Iso punainen painike - Ok, ei ole välttämätöntä, että meillä on niin suuri punainen painike, mutta on aina hyvä, että meillä on painike, jolla ihmiset voivat lyödä! xD Ostimme sen Sim Lim -tornista Singaporesta.

Työkalut:

1. Puuliima

2. Juotin

3. Juotos

4. Johdot. On parasta, jos sinulla on pehmeät johdot verrattuna jäykempiin. Ja yksi ydin verrattuna moniytimiseen.

5. Langanpoistaja

6. Lankaleikkuri

7. Poraa 1 mm: n poranterillä

8. Vierintäsaha

9. Vannesaha

Virheenkorjaus:

1. Muuttuva virtalähde

2. Oskilloskooppi

Vaihe 2: Nopea prototyyppityö

Nopea prototyyppien luominen
Nopea prototyyppien luominen
Nopea prototyyppien luominen
Nopea prototyyppien luominen
Nopea prototyyppien luominen
Nopea prototyyppien luominen
Nopea prototyyppien luominen
Nopea prototyyppien luominen

Projektissamme käytimme nopeaa prototyyppiä ennen LED -matriisin rakentamista ja pelimme ohjelmointia. Syy tähän on se, että emme halua rakentaa LED -matriisia vain ymmärtääksemme, että koodimme eivät toimi tai pelilogiikkamme on jollain tavalla virheellinen.

Laitteiston puolella testasimme ensimmäisessä vaiheessa vain logiikkaamme valokuvioiden siirtämisessä omaan yksinkertaiseen LED -matriisiimme. Kun testasimme, että logiikka toimii hyvin, menimme sitten leikkaamaan 5 Ws2812b -LED -valonauhaa vain testataksemme pelilogiikkamme eri riveillä. Kun tämä toimii, jatkamme LED -matriisin valmistamista täysimittaisesti.

Testasimme myös erilaisia akryylinäytteitä LED-valolla ennen kuin valitsimme PL-422: n parhaaksi valonhajottajaksi. Ja erotinrakenteen osalta testasimme myös eri korkeuksia, jotta LED -valot hajaantuisivat täysin. Lopulta tajusimme, että 3 cm*3 cm neliö, jonka korkeus on 4 cm, on paras diffuusioon. Tämän optimaalisen koon perusteella päätimme myös, minkä kokoista vaneria tarvitaan 5 x 11 LED -matriisiin jättämällä 0,5 cm: n rako vaahdolle neliöiden väliin.

Ohjelmistopuolella yritämme olla mahdollisimman modulaarisia - testataan ensin, voidaanko LED -valot syttyä, ennen kuin siirrytään siirtotoiminnon lisäämiseen, ja sitten muita. Tulokset voivat olla katastrofaalisia, jos et tee tätä. Opimme tämän vaikealla tavalla, kun yritimme koodaa koko pelin suurella palalla ennen kuin huomasimme, ettemme voineet korjata sitä. Oho!

Vaihe 3: Kotelon valmistus

Kotelon valmistus
Kotelon valmistus
Kotelon valmistus
Kotelon valmistus
Kotelon valmistus
Kotelon valmistus
Kotelon valmistus
Kotelon valmistus

Kotelollamme käytimme klassisia arcade -koneita ja ulkonäköä. Ensin leikkasimme ohuen vanerin muodon nopeaan prototyyppiin, koska ohuen vanerin leikkaaminen ja testaaminen on helpompaa ja nopeampaa. Kun olimme tyytyväisiä mittoihimme ja muotoomme, aloimme käyttää paksumpaa vaneria kotelon rakentamiseen. Leikkasimme paksumman vanerin läpi vannesahalla ja ohuemman sahaajan läpi rullasahalla. Sen jälkeen liimasimme ne puuliimalla yhteen.

Vanerin takaosasta halusimme päästä helposti käsiksi elektroniikkaan, joten teimme siitä lukittavan kappaleen, jonka voit helposti poistaa milloin haluat.

Napin kiinnittämiseksi piirsimme ensin ympyrän, joka on napin mikrokytkimen halkaisijan kokoinen (painikkeen pitkä alaosa). Porasimme sitten reiän reunan lähelle ja sahaimme vierityssahalla ympyrän. Sitten asetimme painikkeen ja ruuvimme sen kiinni.

Leikkasimme myös ohuen vanerikappaleen LED -matriisin pohjaksi aiemmin laskamiesi kokojen mukaan.

Huomautus: pahoittelen vaiheittaisen prosessin puutetta. Emme dokumentoineet vaiheita kokonaan ja kun tajusimme, että meidän on dokumentoitava vaiheet, kotelo oli jo tehty. Kaavio ei myöskään ole lopulliset mitat.

Vaihe 4: LED -matriisin tekeminen

LED -matriisin tekeminen
LED -matriisin tekeminen
LED -matriisin tekeminen
LED -matriisin tekeminen

Käyttämällä aiemmin leikattua ohutta kappaletta, merkitsemme ensin kunkin LEDin sijainnin piirtämällä neliön vaahtorakenteemme perusteella ja piirtämällä ristin neliön keskelle paikkaan, johon meidän tulisi kiinnittää LED. Sitten poraamme myös 3 pientä reikää LED -valon kummallekin puolelle johtojen läpivientiin ja juotamme ne kullekin LED -valolle.

Ketjutamme jokaisen LED-rivin niiden Data In- ja Data Out-nastoilla ja juotamme kaikki GND ja VCC yhteiseen johtoon. Johtava tiedonsiirto luo valokuviot kullekin riville, ja olemme yhdistäneet sen mikrokontrollerin/FPGA: n liittimeen. Voit myös juottaa yhden rivin viimeiset tiedot toisen rivin johtavaan tietoon. Ws2812b LED toimii siten, että jokainen LED sisältää IC: n, joka ottaa tarvittavat tiedot langasta ja siirtää loput ketjussa. Perustimme LEDimme toiseen fantastiseen Instructablesiin (Itse asiassa kopioimme sen täsmälleen! XD)

Tässä haluamme myös korostaa pehmeiden johtojen käytön tärkeyttä. Jos käytät jäykkiä, kovia johtimia johtavaan Data In -tappiin, joka kerta, kun vedät langalta, se voi vetää ulos Ws2812b: n kuparipehmusteen, joka tuhoaa sen. Tässä projektissa, ennen kuin vaihdoimme pehmeisiin johtoihin, tuhosimme yhteensä 40 LEDiä, mikä on 1/3 projektimme tarvitsemista LEDeistä.

Ohjeellinen:

Vaihe 5: Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus

Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus
Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus
Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus
Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus
Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus
Pelikoodien kirjoittaminen ja laitteiston virheenkorjaus

Mojo käyttää Lucid HDL: ää, joka ei ole suosituin kieli siellä. Emme löydä Ws2812b -LED -kirjastoja Lucidista, joten ryhdyimme kirjoittamaan omaa kirjastoamme, mikä on erittäin mielenkiintoinen kokemus. Tätä varten analysoimme ensin signaalin, joka jakautuu käyttämällä Arduinon FastLED -kirjastoa ja kirjoitettiin koodeja sen toistamiseksi. Tässä on laitteiston virheenkorjauksen temppu, oskilloskooppi on erittäin hyödyllinen signaalien analysoimiseksi, olipa kyseessä sitten oman signaalin virheenkorjaus, josta et ole varma, tai muiden signaalien tarkistaminen ja kopioiminen.

Kirjoitettuamme kirjaston Ws2812b: lle, siirrymme sitten pelin koodiin, siirrämme jokaista lohkoa vasemmalle ja oikealle Bittisiirtotoimintojen avulla ja käytimme Bitwise AND - ja AND jokaisen rivin neliöitä edelliselle riville. Voit myös ajatella sen toteuttamista Arduinossa, mikä ei saisi olla niin vaikeaa. Koodasimme jopa pelinäytöt huvikseen!

Pelissämme oli 2 tasoa, mikä on näkyvä pinoamispeli (vihreä) ja toisen tason näkymätön pinoamispeli (sininen).

Vaikka meillä oli toimivat koodit ja toimiva LED -matriisi, joskus kohtaamme edelleen ongelmia, kuten valojen välkkymistä tai valojen syttymistä, kun niiden ei pitäisi. Ongelma johtuu yleensä väärästä maadoituksesta, virtalähteen tasosta tai häiriöistä. Tässä tarvitset muita laitteiston virheenkorjaustyökaluja, kuten muuttuvaa virtalähdettä, jotta voit tarkistaa, onko Mojo/Arduinon virtalähde riittävä tai liian korkea. Kokemukseni mukaan Ws2812b: llä on melko laaja käyttöjännitealue 2,8 - 5 V. Tässä minulla on video, joka osoittaa, että valot menevät hulluksi tehon lisäämisen jälkeen.

Tarkemmat tarkastukset paljastivat kuitenkin, että meillä oli väärä juotos, kun juotimme ne uudelleen, ongelma ratkesi. Häiriöissä tai ristikeskustelussa voi olla myös ongelma, mutta onneksi emme koskaan kohdanneet mitään niistä.

Github-koodit:

Arduino Bitwise Shift:

Arduino Bitwise AND:

Vaihe 6: Kokoa kaikki yhteen

Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen

Sinulla on kotelo ja LED -matriisi. Nyt on aika koota kaikki yhteen. Aseta ensin vaahto etupuolelle ja LED -matriisi sen taakse ja säädä asentoa. Koska vaahdolla on erittäin suuri kitka, se asennettiin vain kitkaan, kun LED -matriisi on liimattu paikalleen. Tämän jälkeen asetimme näytön ruudukon eteen. Liitimme sitten jokaisen rivin nastan mikrokontrolleriin ja aloimme pelata!: D

Yksi asia, josta pidän tässä projektissa, on sen joustavuus, voit aina ohjelmoida mikro -ohjaimen osaksi toista peliä ja kokeilla jotain, kuten animaation tai reaktiopelin tekemistä. Toivottavasti pidät tämän tekemisestä ja opit jotain tämän tekemiseen. GgEz!

Suositeltava: