
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38

Pro náš finální projekt CPE 133 jsme se Chase a já rozhodli vytvořit hru „Hledání min“, která využívala tlačítka a přepínání vstupu z desky Basys-3 a také VHDL kódu. Lepším názvem hry by mohla být ruská ruleta, ale my jsme chtěli jít s rodinnějším názvem. Hra zahrnuje uživatele tím, že stiskne prostřední tlačítko na desce Basys a náhodně přiřadí jeden ze 16 přepínačů jako „aktivní“s bombou. Dva hráči pak střídavě obracejí spínače, jeden po druhém, dokud jeden z hráčů nepřepne vypínač s „bombou“. Když k tomu dojde, sedmisegmentový displej upozorní hráče, že daný hráč právě prohrál hru.
Krok 1: Přehled
Projekt využil mnoho modulů VHDL, které jsme využili v průběhu tohoto čtvrtletí. Ve spojení s hodinovou hranou byl použit čtyřbitový čítač za účelem simulace náhodného čtyřbitového čísla pro aktivaci jednoho z přepínačů. Stavový diagram byl také použit k výstupu různých slov na sedmisegmentový displej, od „PLAY“, když jsou hráči uprostřed hry, až po „LOSE“, když jeden z hráčů přepnul aktivní přepínač.
Krok 2: Materiály
- Vývojová rada Basys3 od společnosti Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Tento soubor nám byl poskytnut na Polylearn a napsal jej Bryan Mealy)
- Čtyřbitový čítač vyrobený z T žabek
- FSM
Krok 3: Vytvoření hry


Prvním krokem k vytvoření této hry bylo nakreslení schématu zapojení se všemi součástmi, které budeme používat. Vstupy pro tento systém byly tlačítko 1, 16 přepínačů a hodiny. Výstupy byly sedmisegmentový displej a anody. Po nakreslení schématu zapojení jsme napsali jednotlivé zdrojové soubory pro každou součást ve Vivadu a spojili je pomocí map portů pod hlavním zdrojovým souborem.
Celý základ hry se točí kolem náhodného přiřazení jednoho ze 16 přepínačů k aktivaci pomocí bomby a pro hráče, aby nevěděli, který přepínač je aktivní, dokud tento aktivní spínač nezapnete. Podívali jsme se na generátory náhodných a pseudonáhodných čísel online, ale nakonec jsme se rozhodli, že použití 4bitového čítače a přiřazení aktivního odpovídajícího přepínače je dostatečně náhodné pro to, co jsme hledali. Byli jsme schopni znovu použít náš 4bitový čítač, který jsme vytvořili v předchozím projektu, abychom mohli pracovat pro toto přiřazení. Pomocí čítače jsme vytvořili náhodné číslo mezi 0-15; pak jsme v komponentě main1 přiřadili desítkový ekvivalent náhodného čísla jeho odpovídajícímu přepínači na desce. Jak je vidět na schématu, výstup X („aktivní bomba“) z komponenty main1 a přepínače, které hráči zapnou, přejdou na FSM1. Stavový stroj vydává jednobitovou hodnotu Z, která je poté načtena BC_DEC1. Stroj konečných stavů, který jsme použili, má dva různé stavy: ve stavu A sedm segmentových displejů vydává „PLAY“a stroj zůstává v tomto stavu, dokud nerozpozná, že aktivovaný přepínač je překlopen. Jakmile se to stane, FSM přejde do stavu B, kde vysílá „LOSE“na sedmisegmentový displej a zůstává v tomto stavu, dokud není všech 16 přepínačů přepnuto na „0“. Když je tato podmínka splněna, FSM pak znovu přejde do stavu A a čeká na hráče, aby zahájili další hru. Mooreův diagram, který pomůže porozumět tomuto FSM, je uveden výše.
Krok 4: Budoucí úpravy
O několika úpravách, které jsme zvažovali o provedení naší hry, patří přidání dalších bomb do pole (možná zvýšení z jedné na tři), přidání počítadla skóre a více kol. Nakonec jsme se proti těmto vylepšením rozhodli, protože jsme zjistili, že hraní delší a delší hry bylo obvykle napjatější a nakonec zábavnější než hra, která obvykle skončila po třech nebo čtyřech přepnutích přepínačů.
Krok 5: Závěr

S konečným výsledkem tohoto projektu jsme byli velmi spokojeni; nejen proto, že konečná verze hry byla zábavná, ale také proto, že tvorba a programování projektu vyžadovalo, abychom využili většinu, ne -li vše, co jsme se v tomto čtvrtletí naučili. Využili jsme žabky, čítače, FSM, hodiny, vstup uživatele z desky a výstup na sedmisegmentový displej.
Také jsme se dozvěděli, jak by několik syntaktických chyb mohlo program úplně rozbít (i když by byly v jiných programovacích jazycích, jako je Python nebo Java považovány za v pořádku), a že až po několika simulacích a více iteracích kódu, který se nahraje a otestuje na deska, budete konečně schopni vyřešit všechny chyby z vašeho kódu.
Doporučuje:
Pomocí rozšíření Hope's Chest k vyhledání neúplné chrámové obřadní práce ve vašem rodokmenu při hledání rodiny: 11 kroků

Použití rozšíření Hope's Chest k vyhledání neúplné chrámové obřadní práce v rámci vašeho rodokmenu při hledání rodiny: Účelem tohoto instruktážního programu je ukázat, jak pomocí rodokmenu Hope's Chest vyhledat rodokmen ve službě Family Search pro předky s neúplnou prací na chrámové obřadě. Použití Hope's Chest může výrazně urychlit vaše hledání nekomp
ActoKids: nový způsob hledání aktivit: 11 kroků

ActoKids: nový způsob hledání aktivit: Je důležité udržovat děti všech věkových kategorií a schopností aktivní a zapojené do jejich komunit. Účast na aktivitách pomáhá dětem zůstat zdravé, navazovat přátelství, rozvíjet dovednosti a rozvíjet kreativitu. Nalezení informací o
Při hledání efektivity .: 9 kroků

Při hledání efektivity .: BUCK Converter na " DPAK " Velikost.Obvykle elektronický začátečník nebo kutil potřebuje regulátor napětí v desce s plošnými spoji tištěný nebo na desce. Bohužel pro jednoduchost používáme lineární regulátor napětí, ale neexistují
Jak postavit parkovací senzor, abyste vyřešili bolest při hledání volného místa: 12 kroků

Jak postavit parkovací senzor, abychom vyřešili bolest při hledání volného místa: V tomto projektu postavíme jednoduchý parkovací senzor pomocí Raspberry Pi. Ukazuje se, že každé ráno musím čelit této otázce: je již POUZE parkovací místo před mojí kanceláří obsazeno? Protože když to ve skutečnosti je, musím jít kolem
Hledání cesty s GPS: 9 kroků

Hledání cesty s GPS: Rychlé cvičení v porozumění a aplikaci dat GPS Požadovaný čas: 2 hodiny Cena: 75– 150 $ Pro výrobce je poměrně levné začlenit vysoce kvalitní geoprostorová data do elektronických projektů. A v posledních několika letech GPS (Global Positionin