Sisukord:

Virnastajate arkaadmäng: 6 sammu (piltidega)
Virnastajate arkaadmäng: 6 sammu (piltidega)

Video: Virnastajate arkaadmäng: 6 sammu (piltidega)

Video: Virnastajate arkaadmäng: 6 sammu (piltidega)
Video: Экскурсия по роскошному отелю в Турции 🏨 Недорого Все включено ⭐ 5-STAR Travel Vlog 💬 Подзаголовок 2024, November
Anonim
Virnastajate arkaadmäng
Virnastajate arkaadmäng

Tere poisid, täna tahan teiega jagada seda hämmastavat arkaadmängu, mida saate teha hunniku Ws2812b LED -ide ja mikrokontrolleri/FPGA abil. Vaata Stack Overflow - meie klassikalise arkaadmängu riistvaraline teostus. Kooliprojektina alanud muutus kiiresti armastustööks, kui hakkasime üha rohkem aega kulutama oma mängu arendamisele ja sellest rohkem õppima (ja jätma oma õpingud hooletusse xD). Lõpuks oli meie mäng nii hästi üles ehitatud ja meie kool võttis selle hästi vastu, et see konfiskeeriti (dematerjalina järgmise õpilasepartii jaoks). Noh, me saame alati teise ehitada. Alustame!

Mängu veebiversioon:

Samm: mida vajate?

Mida sul vaja on?
Mida sul vaja on?
Mida sul vaja on?
Mida sul vaja on?
Mida sul vaja on?
Mida sul vaja on?
Mida sul vaja on?
Mida sul vaja on?

Materjalid:

1. mikrokontroller/mikroarvuti/FPGA - FPGA -d kasutatakse meie mängu loogika rakendamiseks. Valige oma plaat, meie projekti jaoks peame kasutama Mojo FPGA plaati. Asjatundmatu jaoks on see plaaditüüp, mis kasutab oma funktsioonide rakendamiseks riistvara, mitte koode. Seega ütleksin, et see on üsna madal ja täiesti erinev kui siis, kui kasutate Arduino või Pi. Kui kasutate teisi tahvleid, peate kirjutama oma koodi, kuid seda mängu on üsna lihtne kodeerida ja hei! Nüüd saate ka kodeerimist õppida!

2. Ws2812b LED -id - siin kasutame LED -e oma mängu jaoks ekraani ehitamiseks. Ei saa olla tegija, kui te pole enne xD -d Ws2812b -d puudutanud. See on ühe adresseeritava tähendusega, et saate üksikud LED -id ära lõigata ja kleepida mis tahes meelepärasesse moodustisse. Ja see on RGB, mis tähendab, et saate väljastada mis tahes värvi, mis teile meeldib. Lisaks on FastLED - Arduino raamatukogu Ws2812b juhtimiseks väga hästi välja töötatud. Ma soovitaksin inimestel kasutada FPGA asemel Arduino, kui teil seda pole. LED -e saate osta Taobaost/Amazonist, kuid meie ostsime need Singapuri Sim Limi tornist.

3. Puit-väliskesta jaoks kasutasime 1 cm paksust vineeri ja LED-maatriksi jaoks 0,3 cm paksust vineeri. Leidsime oma vanapuuvarud meie kooli suurepärasest laborist.

4. Valgust hajutav akrüül - meie ekraani jaoks proovisime erinevat tüüpi akrüüli ja leidsime selle matt -akrüüli nimega PL -422, mis on tõesti hea valguse hajutamiseks. Kui te ei leia täpset mudelit, proovige otsida jäätunud akrüüle. Ostsime oma Singapuri Dama Plasticsist.

5. Vahtplaat - iga valguse eraldi piksli eraldamiseks vajasime võre struktuuri ja see vaht on selleks ideaalne materjal. Ostsime oma kooli raamatupoest 0,5 cm paksuse vahtplaadi.

6. Suur punane nupp - Ok, meil ei ole vaja nii suurt punast nuppu, kuid alati on hea, kui meil on nupp, mida inimesed saavad lüüa! xD Ostsime selle Sim Lim tornist Singapuris.

Tööriistad:

1. Puiduliim

2. Jootekolb

3. Jootma

4. Juhtmed. Parim on see, kui teil on jäigematega võrreldes pehmed juhtmed. Ja ühetuumaline võrreldes mitme tuumaga.

5. Traadi eemaldaja

6. Traadi lõikur

7. Puurige 1 mm puuridega

8. Kerimissaag

9. Lintsaag

Silumine:

1. Muutuv toiteallikas

2. Ostsilloskoop

2. samm: kiire prototüüpimine

Kiire prototüüpimine
Kiire prototüüpimine
Kiire prototüüpimine
Kiire prototüüpimine
Kiire prototüüpimine
Kiire prototüüpimine
Kiire prototüüpimine
Kiire prototüüpimine

Enne oma LED -maatriksi ehitamist ja mängu programmeerimist kasutasime oma projekti jaoks kiiret prototüüpimist. Selle põhjuseks on asjaolu, et me ei taha LED -maatriksit luua ainult selleks, et mõista, et meie koodid ei tööta või meie mänguloogika on mingil moel vigane.

Riistvara poolel testisime esimeses etapis lihtsalt oma loogikat valgusmustrite nihutamisel meie enda lihtsal LED -maatriksil. Kui testisime, et loogika töötab hästi, läksime välja lõikama 5 Ws2812b LED -i ribasid, et testida oma mänguloogikat erinevate ridadega. Kui see õnnestub, jätkame LED -maatriksi valmistamist täies ulatuses.

Katsetasime LED-iga ka erinevaid akrüülproove, enne kui leppisime PL-422 kui parima valgushajutiga. Eraldaja struktuuri jaoks katsetasime ka LED -i täieliku hajumise jaoks erinevaid kõrgusi. Lõpuks mõistsime, et 3 cm*3 cm ruut, mille kõrgus on 4 cm, on parim difusioon. Selle optimaalse suuruse põhjal otsustasime ka, kui suur on vineer 5 x 11 LED -maatriksi jaoks, jättes ruutude vahele vahu jaoks 0,5 cm vahe.

Tarkvara poolel püüame olla võimalikult modulaarsed - kõigepealt kontrollime, kas LED -id saavad põlema panna, enne kui jätkame vahetusfunktsiooni lisamist, ja seejärel teisi. Kui te seda ei tee, võivad tulemused olla katastroofilised. Õppisime seda raskel viisil, kui proovisime kogu mängu suures tükis kodeerida, enne kui saime aru, et me ei saa seda siluda. Oh!

Samm: korpuse valmistamine

Korpuse valmistamine
Korpuse valmistamine
Korpuse valmistamine
Korpuse valmistamine
Korpuse valmistamine
Korpuse valmistamine
Korpuse valmistamine
Korpuse valmistamine

Meie korpuse jaoks läksime klassikaliste arkaadimasinate tunnete ja väljanägemisega. Esiteks lõikasime kuju kiireks prototüübiks õhukese vineeri, kuna õhukese vineeri lõikamine ja testimine on lihtsam ja kiirem. Kui olime oma mõõtmete ja kujuga rahul, hakkasime korpuse ehitamiseks kasutama paksemat vineeri. Paksema vineeri lõikamiseks kasutasime lintsaagi ja õhemate lõikamiseks kerimissaega. Pärast seda kasutasime nende liimimiseks puiduliimi.

Vineeri tagakülje jaoks tahtsime hõlpsasti juurde pääseda sees olevale elektroonikale, seega tegime selle lukustatavaks tükiks, mille saate hõlpsalt eemaldada, kui soovite.

Nupu kinnitamiseks joonistasime esmalt ringi nupu mikrolüliti läbimõõdu suuruse ringiga (nupu alumine pikk osa). Seejärel puurisime serva lähedale augu ja saagisime rulliga saega ringi. Seejärel panime nupu ja keerasime selle sisse.

Lõikasime ka õhukese vineeritüki oma LED -maatriksi alusena vastavalt eelnevalt arvutatud suurustele.

Märkus: vabandan samm-sammult protsessi puudumise pärast. Me ei dokumenteerinud samme lõpuni ja selleks ajaks, kui mõistsime, et peame sammud dokumenteerima, oli ümbris juba tehtud. Diagramm ei ole ka lõplikud mõõtmed.

4. samm: LED -maatriksi tegemine

LED -maatriksi tegemine
LED -maatriksi tegemine
LED -maatriksi tegemine
LED -maatriksi tegemine

Kasutades varem välja lõigatud õhukest tükki, märgime kõigepealt välja iga LED -i asukoha, joonistades meie vahtstruktuurile tuginedes ruudu ja joonistades ruudu keskele rist, kuhu peaksime LED -i kleepima. Seejärel puurime ka LED -i kummalegi küljele 3 väikest auku juhtmete läbimiseks ja jootame need igale LED -ile.

Me aheldame iga LED-rea nende andmete sisend- ja andmeväljundi tihvtide abil ning jootame iga GND ja VCC ühiseks juhtmeks. Juhtiv andmeside genereerib iga rea valgusmustrid ja ühendasime selle mikrokontrolleri/FPGA pistikuga. Samuti saate joota ühe rea viimased andmed teise rea juhtivate andmete juurde. Ws2812b LED töötab nii, et iga LED sisaldab IC -d, mis võtab juhtmest vajalikud andmed ja edastab ülejäänud ahela. Põhinesime oma valgusdioodil veel ühel fantastilisel juhitavusel (tegelikult kopeerisime selle täpselt! XD)

Siinkohal tahaksime rõhutada ka pehmete juhtmete kasutamise tähtsust. Kui kasutate juhtivat andmeside tihvti jäigad ja kõvad juhtmed, juhtub iga kord, kui juhtmele tõmmake, see võib teie Ws2812b vasest polstri välja tõmmata, mis selle hävitab. Selles projektis hävitasime enne pehmete juhtmete vahetamist kokku 40 LED -i, mis on 1/3 meie projekti jaoks vajalikest LED -idest.

Juhendatav:

Samm: mängukoodide kirjutamine ja riistvara silumine

Mängukoodide kirjutamine ja riistvara silumine
Mängukoodide kirjutamine ja riistvara silumine
Mängukoodide kirjutamine ja riistvara silumine
Mängukoodide kirjutamine ja riistvara silumine
Mängukoodide kirjutamine ja riistvara silumine
Mängukoodide kirjutamine ja riistvara silumine

Mojo töötab Lucid HDL -iga, mis pole kõige populaarsem keel. Me ei leia Lucidist ühtegi Ws2812b LED -raamatukogu, seega otsustasime kirjutada oma raamatukogu, mis on väga huvitav kogemus. Selleks analüüsisime kõigepealt signaali, mis edastatakse Arduino FastLED raamatukogu abil, ja kirjutasime selle kordamiseks koodid. Siin on riistvara silumise trikk, ostsilloskoop on signaalide analüüsimiseks väga -väga kasulik, olgu see siis teie enda signaali silumine, milles te pole kindel, või muude signaalide kontrollimine ja kopeerimine.

Pärast Ws2812b raamatukogu kirjutamist jätkame mängu koodiga, kasutasime bittide nihutamise funktsioone, et liigutada iga plokk vasakule ja paremale, ja kasutasime Bitwise AND iga rea ruutudele eelmisele reale. Võite mõelda ka selle rakendamisele Arduinos, mis ei tohiks olla nii raske. Me kodeerisime selle lõbuks isegi mängukuvasid!

Meie mängul oli 2 taset, mis on nähtav virnastamismäng (roheline) ja teise taseme nähtamatu virnastamismäng (sinine).

Isegi pärast seda, kui meil olid töötavad koodid ja töötav LED -maatriks, seisame mõnikord silmitsi selliste probleemidega nagu tuled vilguvad või tuled süttivad, kui nad seda ei peaks tegema. Probleem on tavaliselt vale maanduse, toiteallika taseme või häirete tõttu. Siin on vaja muid riistvara silumistööriistu, näiteks muutuvat toiteallikat, et kontrollida, kas Mojo/Arduino toiteallikas on piisav või liiga kõrge. Minu kogemuste kohaselt on Ws2812b -l üsna lai tööpinge vahemik 2,8–5 V. Siin on mul video, mis näitab, et tuled lähevad hulluks pärast võimsuse suurendamist.

Edasisel kontrollimisel selgus aga, et meil oli vale jootmine, pärast nende uuesti jootmist meie probleem lahendati. Probleem võib olla ka häirete või ristkõnelemisega, kuid õnneks pole me neist ühegi vastu tulnud.

Githubi koodid:

Arduino Bitwise Shift:

Arduino Bitwise JA:

6. samm: pange kõik kokku

Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes

Teil on korpus ja LED -maatriks. Nüüd on aeg kõik kokku panna. Kõigepealt asetame vahu esiküljele ja LED -maatriksi selle taha ning reguleerime asendit. Kuna vahtplastil on väga suur hõõrdumine, paigaldati see lihtsalt hõõrdumisele, samal ajal kui LED -maatriks on kuumalt liimitud. Pärast seda asetasime ekraani võre ette. Seejärel ühendasime iga rea nööpnõela mikrokontrolleriga ja hakkasime mängima!: D

Üks asi, mis mulle selle projekti juures meeldib, on selle paindlikkus, saate alati mikrokontrolleri mõne teise mängu osaks ümber programmeerida ja proovida midagi, näiteks animatsiooni või reaktsioonimängu tegemist. Loodan, et teile meeldib selle tegemine ja saate selle tegemiseks midagi õppida. GgEz!

Soovitan: