Съдържание:

Миночистач: 5 стъпки (със снимки)
Миночистач: 5 стъпки (със снимки)

Видео: Миночистач: 5 стъпки (със снимки)

Видео: Миночистач: 5 стъпки (със снимки)
Видео: Выходит тральщик... исп. муз. Евгений Лощилов,сл. Анатолий Казанцев 2024, Ноември
Anonim
Миночистач
Миночистач

За нашия финален проект CPE 133, Chase и аз решихме да създадем игра „Minesweeper“, която използва бутон и превключва вход от Basys-3 платка, както и VHDL код. По -добро име за играта би могло да бъде „Руска рулетка“, но ние искахме да отидем с по -подходящо за семейството име. Играта включва потребителя да натисне средния бутон на дъската Basys, за да назначи на случаен принцип един от 16 -те превключвателя да бъде „активен“с бомба. След това двама играчи се редуват, превключвайки превключвателите, един по един, докато един от играчите не обърне превключвателя с „бомбата“. Когато това се случи, седемсегментният дисплей предупреждава играчите, че този играч току -що е загубил играта.

Стъпка 1: Общ преглед

Проектът използва много от VHDL модулите, които използвахме през това тримесечие. Четирибитов брояч беше използван заедно с ръба на часовника, за да се симулира случайно четири битово число за активиране на един от превключвателите. Диаграма на състоянието беше използвана и за извеждане на различни думи към седемсегментния дисплей, вариращи от „PLAY“, когато играчите са в средата на играта си, до „LOSE“, когато един от играчите е завъртял активния превключвател.

Стъпка 2: Материали

  • Съвет за развитие на Basys3 от Digilent, Inc.
  • Vivado Design Suite BC_DEC.vhd (Този файл ни беше предоставен на Polylearn и е написан от Bryan Mealy)
  • 4 -битов брояч, изработен от Т джапанки
  • FSM

Стъпка 3: Създаване на играта

Създаване на играта
Създаване на играта
Създаване на играта
Създаване на играта

Първата стъпка към създаването на тази игра беше изчертаването на електрическа схема с всички компоненти, които ще използваме. Входовете за тази система бяха бутон 1, 16 -те превключвателя и часовникът. Изходите бяха седемсегментният дисплей и анодите. След като начертахме електрическата схема, написахме отделни изходни файлове за всеки компонент във Vivado и ги събрахме заедно, използвайки карти на портове под основния изходен файл.

Цялата основа на играта се върти около произволно присвояване на един от 16 -те превключвателя за активен с бомба и за играчите да не знаят кой превключвател е активен, докато този активен превключвател не бъде включен. Разгледахме генераторите на произволни и псевдослучайни числа онлайн, но в крайна сметка решихме, че използването на 4-битов брояч и присвояването на съответния превключвател за активен е достатъчно произволно за това, което търсихме. Успяхме да пренастроим нашия 4-битов брояч, който създадохме в предишен проект, за да можем да работим за тази задача. Използвахме брояча, за да създадем произволно число между 0-15; след това в компонента main1 присвоихме десетичния еквивалент на случайното число на съответния му ключ на дъската. Както се вижда на схемата, както изходът X („активна бомба“) от компонента main1, така и превключвателите, които играчите включват, преминават към FSM1. Машината на състоянието извежда еднобитова Z стойност, която след това се чете от BC_DEC1. Машината с крайни състояния, която използвахме, има две различни състояния: в състояние А седемсегментният дисплей извежда „PLAY“и машината остава в това състояние, докато разпознае, че активираният превключвател е обърнат. След като това се случи, FSM преминава в състояние B, където извежда „LOSE“на седемсегментния дисплей и остава в това състояние, докато всичките 16 превключвателя се обърнат на „0“. Когато това условие е изпълнено, FSM след това отново отива в състояние A и очаква играчите да започнат друга игра. Диаграма на Мур, която помага да се разбере този FSM, е показана по -горе.

Стъпка 4: Бъдещи модификации

Няколко модификации, които обмисляхме да направим в нашата игра, включват добавяне на още бомби в полето (евентуално увеличаване от една на три), добавяне на брояч на резултатите и множество кръгове. В крайна сметка решихме срещу тези подобрения, тъй като установихме, че игрането на по -дълга, разширена игра обикновено е по -напрегната и в крайна сметка по -забавна от игра, която обикновено завършва след три или четири превключвания на превключватели.

Стъпка 5: Заключение

Бяхме много доволни от крайния резултат от този проект; не само защото финалната версия на играта беше забавна за игра, но и защото създаването и програмирането на проекта изискваше да използваме най -много, ако не и всичко, което научихме през това тримесечие. Използвахме джапанки, броячи, FSM, часовника, потребителското въвеждане от дъската и изхода към седем сегментния дисплей.

Научихме също как няколко синтаксични грешки могат напълно да разбият програмата (дори и да се считат за добре в други езици за програмиране като Python или Java) и то само след множество симулации и множество итерации на кода, качени и тествани на борда, ще можете ли най -накрая да отстраните всички грешки от кода си.

Препоръчано: