Sadržaj:
- Korak 1: Pregled
- Korak 2: Materijali
- Korak 3: Kreiranje igre
- Korak 4: Buduće izmjene
- Korak 5: Zaključak
Video: Minolovac: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Za naš završni projekt CPE 133, Chase i ja smo odlučili stvoriti igru "Minolovac" koja je koristila gumb i prebacivanje unosa s Basys-3 ploče, kao i VHDL koda. Bolji naziv za igru mogao bi biti "Ruski rulet", međutim htjeli smo ići s porodičnijim imenom. Igra uključuje korisnika da pritisne srednje dugme na Basys ploči kako bi nasumično dodijelio jedan od 16 prekidača "aktivnim" bombom. Dva igrača zatim naizmjence podižu prekidače, jedan po jedan, sve dok jedan od igrača ne okrene prekidač s „bombom“. Kada se to dogodi, ekran sa sedam segmenata upozorava igrače da je taj igrač upravo izgubio igru.
Korak 1: Pregled
U projektu su korišteni mnogi VHDL moduli koje smo koristili tokom ovog kvartala. Četverobitni brojač je korišten zajedno sa ivicom takta kako bi se simulirao slučajni četverobitni broj za aktiviranje jednog od prekidača. Dijagram stanja je također korišten za ispis različitih riječi na zaslon sa sedam segmenata, u rasponu od 'PLAY' kada su igrači usred svoje igre, do 'LOSE' kada je jedan od igrača okrenuo aktivni prekidač.
Korak 2: Materijali
- Razvojni odbor Basys3 iz kompanije Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Ova datoteka nam je dostavljena na Polylearnu, a napisao ju je Bryan Mealy)
- 4 -bitni brojač od T japanki
- FSM
Korak 3: Kreiranje igre
Prvi korak prema izradi ove igre bio je crtanje dijagrama sa svim komponentama koje ćemo koristiti. Ulazi za ovaj sistem bili su dugme 1, 16 prekidača i sat. Izlazi su bili zaslon sa sedam segmenata i anode. Nakon crtanja sheme kola, napisali smo pojedinačne izvorne datoteke za svaku komponentu u Vivadu i sastavili ih koristeći karte portova ispod glavne izvorne datoteke.
Cijela osnova igre vrti se oko nasumičnog dodjeljivanja jednog od 16 prekidača da bude aktivan s bombom, a za igrače da ne znaju koji je prekidač aktivan dok se taj aktivni prekidač ne uključi. Na internetu smo istražili generatore slučajnih i pseudoslučajnih brojeva, ali smo na kraju odlučili da je korištenje 4-bitnog brojača i dodjeljivanje odgovarajućeg prekidača aktivnim dovoljno nasumično za ono što smo tražili. Uspjeli smo prenamijeniti naš 4-bitni brojač koji smo stvorili u prethodnom projektu kako bismo mogli raditi za ovaj zadatak. Koristili smo brojač za stvaranje slučajnog broja između 0-15; tada smo u komponenti main1 dodijelili decimalni ekvivalent slučajnog broja odgovarajućem prekidaču na ploči. Kao što se vidi na shemi, i izlaz X ("aktivna bomba") iz komponente main1 i prekidači koje igrači uključuju idu na FSM1. Mašina stanja emituje jednobitnu Z vrednost koju zatim čita BC_DEC1. Mašina konačnih stanja koju smo koristili ima dva različita stanja: u stanju A, zaslon sa sedam segmenata daje 'PLAY' i mašina ostaje u tom stanju sve dok ne prepozna da je aktivirani prekidač okrenut. Kada se to dogodi, FSM prelazi u stanje B gdje emitira 'LOSE' na sedmosegmentni prikaz i ostaje u tom stanju sve dok se svih 16 prekidača ne prebaci na '0'. Kada je taj uvjet ispunjen, FSM ponovo ide u stanje A i čeka igrače da započnu novu igru. Mooreov dijagram koji pomaže u razumijevanju ovog FSM -a prikazan je gore.
Korak 4: Buduće izmjene
Nekoliko izmjena koje smo razmatrali o tome da uvedemo u našu igru uključuju dodavanje više bombi u polje (moguće povećanje s jedne na tri), dodavanje brojača rezultata i više rundi. Na kraju smo se odlučili protiv ovih poboljšanja, jer smo otkrili da je igranje duže, produžene igre obično bilo napetije i na kraju zabavnije od igre koja se obično završavala nakon tri ili četiri preokreta.
Korak 5: Zaključak
Bili smo jako zadovoljni konačnim rezultatom ovog projekta; ne samo zato što je konačnu verziju igre bilo zabavno igrati, već i zato što je kreiranje i programiranje projekta zahtijevalo da iskoristimo najviše, ako ne i sve ono što smo naučili u ovom kvartalu. Koristili smo japanke, brojače, FSM -ove, sat, korisnički unos sa ploče i izlaz na sedmosegmentni displej.
Također smo saznali kako bi nekoliko sintaksnih grešaka moglo potpuno slomiti program (čak i ako bi se u drugim programskim jezicima, poput Pythona ili Jave, smatrale u redu) i to tek nakon više simulacija i višestrukih iteracija koda koje su učitane i testirane na board, hoćete li konačno moći riješiti sve greške u svom kodu.
Preporučuje se:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) sa Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju svog Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Minolovac-Raspberry-Pi-Edition: 7 koraka (sa slikama)
Minesweeper-Raspberry-Pi-Edition: Moj posljednji projekt za CSC 130 seriju na Louisiana Tech University je Minesweeper Raspberry Pi Edition. U ovom projektu pokušao sam ponovo stvoriti klasičnu igru minolovca koristeći Tkinter biblioteku Python programiranja
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Kako rastaviti računar jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računar jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računar. Većina osnovnih komponenti je modularna i lako se uklanja. Međutim, važno je da se oko toga organizirate. To će vam pomoći da izbjegnete gubitak dijelova, a također i prilikom ponovnog sastavljanja