Kazalo:
- 1. korak: Pregled
- 2. korak: Materiali
- 3. korak: Ustvarjanje igre
- 4. korak: Prihodnje spremembe
- 5. korak: Zaključek
Video: Minolovac: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
Za naš končni projekt CPE 133 sva se s Chaseom odločila ustvariti igro "Minolovac", ki je uporabljala gumb in preklapljala vnos z deske Basys-3 ter kode VHDL. Boljše ime za igro bi lahko bilo "ruska ruleta", vendar smo si želeli družine prijaznejšega imena. Igra vključuje uporabnika, da pritisne srednji gumb na plošči Basys, da naključno dodeli eno od 16 stikal za "aktivno" z bombo. Dva igralca nato izmenično dvigata stikala, eno za drugim, dokler eden od igralcev ne pritisne stikala s "bombo". Ko se to zgodi, zaslon s sedmimi segmenti opozori igralce, da je pravkar izgubil igro.
1. korak: Pregled
V projektu so bili uporabljeni številni moduli VHDL, ki smo jih uporabili v tem četrtletju. Štiri bitni števec je bil uporabljen skupaj z robom ure za simulacijo naključnega štiri bitnega števila za aktiviranje enega od stikal. Diagram stanja je bil uporabljen tudi za prikaz različnih besed na zaslonu sedmih segmentov, od "PLAY", ko so igralci sredi igre, do "LOSE", ko je eden od igralcev prestavil aktivno stikalo.
2. korak: Materiali
- Razvojni odbor Basys3 podjetja Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Ta datoteka nam je bila posredovana na Polylearnu, napisal pa jo je Bryan Mealy)
- 4 -bitni števec iz T japonk
- FSM
3. korak: Ustvarjanje igre
Prvi korak k izdelavi te igre je bil risanje vezja z vsemi komponentami, ki jih bomo uporabljali. Vhodi za ta sistem so bili gumb 1, 16 stikal in ura. Izhodi so bili zaslon s sedmimi segmenti in anode. Po risanju sheme vezja smo za vsako komponento v Vivadu napisali posamezne izvorne datoteke in jih združili z zemljevidi vrat pod glavno izvorno datoteko.
Celotna osnova igre se vrti okoli naključnega dodelitve enega od 16 stikal za aktiviranje z bombo in za igralce, da ne vedo, katero stikalo je aktivno, dokler se to aktivno stikalo ne vklopi. Na spletu smo iskali generatorje naključnih in psevdonaključnih števil, vendar smo se na koncu odločili, da je uporaba 4-bitnega števca in dodelitev ustreznega stikala aktivnemu dovolj naključna za tisto, kar smo iskali. Naš 4-bitni števec, ki smo ga ustvarili v prejšnjem projektu, smo lahko preuredili, da smo lahko delali za to nalogo. S števcem smo ustvarili naključno število med 0-15; nato smo v komponenti main1 dodelili decimalni ekvivalent naključnega števila njegovemu ustreznemu stikalu na plošči. Kot je prikazano na shemi, tako izhod X ("aktivna bomba") iz komponente main1 kot stikala, ki jih vklopijo igralci, preidejo na FSM1. Stanje stroj odda eno bitno vrednost Z, ki jo nato prebere BC_DEC1. Stroj končnega stanja, ki smo ga uporabili, ima dve različni stanji: v stanju A iz sedmih segmentnih prikazovalnikov izstopi "PLAY" in naprava ostane v tem stanju, dokler ne prepozna, da je aktivirano stikalo obrnjeno. Ko se to zgodi, FSM preide v stanje B, kjer odda "LOSE" na sedemsegmentni zaslon in ostane v tem stanju, dokler se vseh 16 stikal ne premakne na "0". Ko je ta pogoj izpolnjen, FSM ponovno preide v stanje A in čaka na igralce, da začnejo drugo igro. Moorejev diagram, ki pomaga razumeti ta FSM, je prikazan zgoraj.
4. korak: Prihodnje spremembe
Nekaj sprememb, ki smo jih razmišljali o svoji igri, vključuje dodajanje več bomb na polje (po možnosti z enega na tri), dodajanje števca točk in več krogov. Na koncu smo se odločili proti tem izboljšavam, saj smo ugotovili, da je igranje daljše, podaljšane igre običajno bolj napeto in na koncu bolj zabavno kot igra, ki se običajno konča po treh ali štirih preklopih stikal.
5. korak: Zaključek
S končnim rezultatom tega projekta smo bili zelo zadovoljni; ne samo zato, ker je bilo končno različico igre zabavno igrati, ampak tudi zato, ker smo pri ustvarjanju in programiranju projekta morali uporabiti največ, če ne celo vse, kar smo se naučili v tem četrtletju. Uporabili smo japonke, števce, FSM -je, uro, uporabniški vnos s plošče in izhod na sedem segmentni zaslon.
Izvedeli smo tudi, kako bi lahko nekaj sintaktičnih napak popolnoma prekinilo program (tudi če bi se v drugih programskih jezikih, kot sta Python ali Java, zdelo dobro) in to šele po več simulacijah in večkratnih ponovitvah kode, ki so bile naložene in preizkušene na board, ali boste končno lahko odpravili vse hrošče iz svoje kode.
Priporočena:
Kako: Namestitev Raspberry PI 4 Headless (VNC) z Rpi-sliko in slikami: 7 korakov (s slikami)
Kako: Namestitev Raspberry PI 4 Headless (VNC) z Rpi-imagerjem in slikami: Ta Rapberry PI nameravam uporabiti v kopici zabavnih projektov v svojem blogu. Vabljeni, da to preverite. Želel sem se vrniti v uporabo Raspberry PI, vendar na novi lokaciji nisem imel tipkovnice ali miške. Nekaj časa je minilo, odkar sem nastavil malino
Minolovac-Raspberry-Pi-Edition: 7 korakov (s slikami)
Minesweeper-Raspberry-Pi-Edition: Moj zadnji projekt za serijo CSC 130 na Univerzi Louisiana Tech je Minesweeper Raspberry Pi Edition. V tem projektu sem želel poustvariti klasično igro minolovcev z uporabo knjižnice Tkinter za programiranje Python
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Vijak - Nočna ura za brezžično polnjenje DIY (6 korakov): 6 korakov (s slikami)
Bolt - Nočna ura za brezžično polnjenje DIY (6 korakov): Induktivno polnjenje (znano tudi kot brezžično polnjenje ali brezžično polnjenje) je vrsta brezžičnega prenosa energije. Za zagotavljanje električne energije prenosnim napravam uporablja elektromagnetno indukcijo. Najpogostejša aplikacija je brezžično polnjenje Qi
Kako razstaviti računalnik z enostavnimi koraki in slikami: 13 korakov (s slikami)
Kako z enostavnimi koraki in slikami razstaviti računalnik: To navodilo za razstavljanje računalnika. Večina osnovnih komponent je modularnih in jih je enostavno odstraniti. Vendar je pomembno, da ste glede tega organizirani. To vam bo pomagalo preprečiti izgubo delov in tudi pri ponovni montaži