Turinys:
- 1 žingsnis: apžvalga
- 2 žingsnis: medžiagos
- 3 žingsnis: sukurkite žaidimą
- 4 žingsnis: būsimi pakeitimai
- 5 žingsnis: Išvada
Video: Minosvaidis: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Galutiniam mūsų CPE 133 projektui Chase'as ir aš nusprendėme sukurti žaidimą „Minosvaidis“, kuriame būtų naudojami mygtukai ir jungikliai iš „Basys-3“plokštės bei VHDL kodas. Geresnis žaidimo pavadinimas galėtų būti „rusiška ruletė“, tačiau norėjome pasirinkti labiau šeimai tinkamą pavadinimą. Žaidime vartotojas turi paspausti vidurinį „Basys“lentos mygtuką, kad atsitiktine tvarka priskirtų vieną iš 16 jungiklių „aktyvų“su bomba. Tada du žaidėjai pakaitomis varto jungiklius po vieną, kol vienas iš žaidėjų apsuka jungiklį su „bomba“. Kai tai atsitiks, septynių segmentų ekranas įspėja žaidėjus, kad tas žaidėjas ką tik pralaimėjo žaidimą.
1 žingsnis: apžvalga
Projekte buvo panaudota daug VHDL modulių, kuriuos panaudojome per šį ketvirtį. Kartu su laikrodžio kraštu buvo naudojamas keturių bitų skaitiklis, kad būtų galima imituoti atsitiktinį keturių bitų skaičių ir suaktyvinti vieną iš jungiklių. Būsenos diagrama taip pat buvo naudojama norint išvesti skirtingus žodžius į septynių segmentų ekraną, pradedant „PLAY“, kai žaidėjai yra žaidimo viduryje, ir baigiant „LOSE“, kai vienas iš žaidėjų pasuko aktyvų jungiklį.
2 žingsnis: medžiagos
- „Basys3“plėtros valdyba iš „Digilent, Inc.
- „Vivado Design Suite BC_DEC.vhd“(šis failas mums buvo pateiktas „Polylearn“ir parašė Bryanas Mealy)
- 4 bitų skaitiklis, pagamintas iš T šlepečių
- MFV
3 žingsnis: sukurkite žaidimą
Pirmasis žingsnis kuriant šį žaidimą buvo schemos schema su visais komponentais, kuriuos naudosime. Šios sistemos įvestys buvo mygtukas 1, 16 jungiklių ir laikrodis. Išėjimai buvo septynių segmentų ekranas ir anodai. Nubraižę schemą, mes parašėme atskirus kiekvieno „Vivado“komponento šaltinio failus ir sudėjome juos naudodami pagrindinio šaltinio failo prievadų žemėlapius.
Visas žaidimo pagrindas yra atsitiktinis priskyrimas vienam iš 16 jungiklių, kad jis būtų aktyvus su bomba, ir kad žaidėjai nežinotų, kuris jungiklis yra aktyvus, kol šis aktyvus jungiklis nebus įjungtas. Mes ieškojome atsitiktinių ir pseudo atsitiktinių skaičių generatorių internete, tačiau galiausiai nusprendėme, kad 4 bitų skaitiklio naudojimas ir atitinkamo jungiklio priskyrimas aktyviam yra pakankamai atsitiktinis tam, ko ieškojome. Mes galėjome iš naujo panaudoti 4 bitų skaitiklį, kurį sukūrėme ankstesniame projekte, kad galėtume dirbti su šia užduotimi. Mes naudojome skaitiklį, kad sukurtume atsitiktinį skaičių nuo 0 iki 15; tada pagrindiniame komponente mes priskyrėme atsitiktinio skaičiaus dešimtainį atitikmenį atitinkamam jungikliui lentoje. Kaip matyti schemoje, išėjimas X („aktyvi bomba“) iš pagrindinio komponento ir jungikliai, kuriuos žaidėjai įjungia, pereina prie FSM1. Būsenos mašina išleidžia vieno bitų Z reikšmę, kurią tada skaito BC_DEC1. Mūsų naudota baigtinės būsenos mašina turi dvi skirtingas būsenas: A būsenoje septynių segmentų ekranas išleidžia „PLAY“ir aparatas lieka toje būsenoje, kol atpažįsta, kad aktyvuotas jungiklis yra pasuktas. Kai tai atsitiks, FSM pereina į B būseną, kur septynių segmentų ekrane pateikia „LOSE“ir išlieka toje būsenoje, kol visi 16 jungiklių bus perkelti į „0“. Kai ši sąlyga įvykdyta, MFV vėl pereina į A būseną ir laukia, kol žaidėjai pradės kitą žaidimą. Mūro diagrama, padedanti suprasti šį FSM, parodyta aukščiau.
4 žingsnis: būsimi pakeitimai
Keletas pakeitimų, kuriuos mes svarstėme atlikti savo žaidime, yra pridėti daugiau bombų į lauką (galbūt padidinti nuo vieno iki trijų), pridėti rezultatų skaitiklį ir kelis raundus. Galiausiai nusprendėme prieš šiuos patobulinimus, nes nustatėme, kad žaisti ilgesnį, pratęstą žaidimą paprastai būdavo labiau įtempta ir galiausiai smagiau nei žaidimą, kuris paprastai baigdavosi po trijų ar keturių perjungimų.
5 žingsnis: Išvada
Mes labai džiaugėmės galutiniu šio projekto rezultatu; ne tik todėl, kad galutinę žaidimo versiją buvo smagu žaisti, bet ir todėl, kad kurdami ir programuodami projektą turėjome panaudoti daugumą, jei ne viską, ką išmokome šį ketvirtį. Mes panaudojome šlepetes, skaitiklius, FSM, laikrodį, vartotojo įvestį iš plokštės ir išvestį į septynių segmentų ekraną.
Mes taip pat sužinojome, kaip kelios sintaksės klaidos gali visiškai sugriauti programą (net jei jos būtų laikomos tinkamomis kitomis programavimo kalbomis, pvz., „Python“ar „Java“) ir kad tik po kelių simuliacijų ir daugybės kodo iteracijų, įkeltų ir išbandytų lenta, ar pagaliau galėsite pašalinti visas savo kodo klaidas.
Rekomenduojamas:
„Pasidaryk pats“„Leds Arduino“ruletės žaidimas: 3 žingsniai (su nuotraukomis)
„Pasidaryk pats“37 „Leds Arduino“ruletės žaidimas: Ruletė yra kazino žaidimas, pavadintas prancūziško žodžio, reiškiančio mažą ratą, vardu
„BOSEBerry Pi“interneto radijas: 4 žingsniai (su nuotraukomis)
„BOSEBerry Pi“interneto radijas: man patinka klausytis radijo! Savo namuose naudojau DAB radiją, tačiau radimas buvo šiek tiek nevienodas, o garsas nuolat nutrūko, todėl nusprendžiau sukurti savo interneto radiją. Aplink mano namus ir skaitmeninį brolį turiu stiprų „Wi -Fi“signalą
Profesionali orų stotis naudojant „ESP8266“ir „ESP32 pasidaryk pats“: 9 žingsniai (su nuotraukomis)
Profesionali orų stotis, naudojant „pasidaryk pats“ESP8266 ir ESP32: „LineaMeteoStazione“yra visiška orų stotis, kurią galima sujungti su profesionaliais „Sensirion“jutikliais ir kai kuriais „Davis“prietaiso komponentais (lietaus matuoklis, anemometras)
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Varžtas - „pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): 6 žingsniai (su nuotraukomis)
Varžtas - „Pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): Indukcinis įkrovimas (taip pat žinomas kaip belaidis įkrovimas arba belaidis įkrovimas) yra belaidžio energijos perdavimo tipas. Jis naudoja elektromagnetinę indukciją tiekti elektros energiją nešiojamiesiems įrenginiams. Dažniausia programa yra „Qi“belaidžio įkrovimo st