Мазмұны:
- 1 -қадам: Шолу
- 2 -қадам: материалдар
- 3 -қадам: Ойын жасау
- 4 -қадам: Болашақ өзгерістер
- 5 -қадам: Қорытынды
Бейне: Кеніш: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Біздің CPE 133 қорытынды жобасы үшін, Чейз екеуміз Basys-3 тақтасынан енгізуді, сондай-ақ VHDL кодын қосатын батырманы қолданатын «мина тазалаушы» ойынын құруды шештік. Ойынның жақсы атауы «орыс рулеткасы» болуы мүмкін, бірақ біз отбасылық достық атау алғымыз келді. Ойынға пайдаланушы Basis тақтасындағы ортаңғы түймені басу арқылы 16 қосқыштың біреуін кездейсоқ түрде бомбамен «белсенді» етіп тағайындайды. Содан кейін екі ойыншы қосқыштарды кезек -кезек аударады, ойыншылардың бірі қосқышты «бомбамен» аударғанша. Бұл кезде жеті сегментті дисплей ойыншыларға ойыншының ойында жеңіліп қалғанын ескертеді.
1 -қадам: Шолу
Жоба осы тоқсан ішінде біз қолданған көптеген VHDL модульдерін қолданды. Коммутаторлардың бірін іске қосу үшін кездейсоқ төрт разрядты модельдеу үшін сағат жиегімен бірге төрт биттік есептегіш қолданылды. Күй диаграммасы жеті сегментті дисплейге әр түрлі сөздерді шығару үшін пайдаланылды, ойыншылар ойын ортасында болған кезде «ОЙНАУ» -дан, ойыншылардың бірі қосқышты аударған кезде «Ұтылу» -ға дейін.
2 -қадам: материалдар
- Digilent, Inc компаниясының Basys3 әзірлеу тақтасы.
- Vivado Design Suite BC_DEC.vhd (Бұл файл бізге Polylearn -да берілген және оны Брайан Мили жазған)
- Т -флиптерден жасалған 4 биттік есептегіш
- FSM
3 -қадам: Ойын жасау
Бұл ойынның алғашқы қадамы біз қолданатын барлық компоненттері бар схеманы құру болды. Бұл жүйенің кірістері 1 түймесі, 16 қосқыш және Сағат болды. Нәтижелер жеті сегментті дисплей мен анодтар болды. Схема сызбасын салғаннан кейін, біз Vivado -да әр компонент үшін жеке бастапқы файлдарды жаздық және оларды негізгі бастапқы файлдың астындағы порт карталарының көмегімен біріктірдік.
Ойынның барлық негізі кездейсоқ 16 коммутатордың біреуін бомбамен белсенді болуға тағайындаудан тұрады және ойыншылар сол қосқыш қосылмайынша, қандай қосқыштың белсенді екенін білмейді. Біз кездейсоқ және жалған кездейсоқ сандар генераторларын қарастырдық, бірақ біз ақыр соңында 4 биттік есептегішті пайдаланып, сәйкес қосқышты белсенді деп тағайындауды біз іздегеніміз үшін жеткілікті кездейсоқ деп шештік. Біз бұл тапсырмада жұмыс істеу үшін алдыңғы жобада жасаған 4 биттік есептегішті өзгерте алдық. Біз 0-15 арасындағы кездейсоқ санды құру үшін есептегішті қолдандық; содан кейін main1 компонентінде кездейсоқ санның ондық эквивалентін оның тақтадағы сәйкес қосқышына тағайындадық. Схемада көрсетілгендей, main1 компонентінен шығатын X («белсенді бомба») да, ойыншылар қосатын қосқыштар да FSM1 -ге өтеді. Мемлекеттік машина бір бит Z мәнін шығарады, оны BC_DEC1 оқиды. Біз қолданатын соңғы күй машинасының екі түрлі күйі бар: А күйінде жеті сегментті дисплейде 'PLAY' шығысы болады және машина іске қосылған қосқыш аударылғанын білмейінше сол күйде қалады. Бұл орын алғаннан кейін, FSM жеті сегментті дисплейге «LOSE» шығаратын В күйіне өтеді және барлық 16 қосқыш «0» күйіне ауысқанша сол күйде қалады. Бұл шарт орындалған кезде, FSM қайтадан А күйіне өтеді және ойыншылардың басқа ойынды бастауын күтеді. Бұл FSM түсінуге көмектесетін Мур диаграммасы жоғарыда көрсетілген.
4 -қадам: Болашақ өзгерістер
Біз ойынға енгізетін бірнеше өзгерістерге алаңға тағы бомбалар қосу (мүмкін біреуден үшке дейін көбейту), есептегішті және бірнеше раундты қосу кіреді. Біз, ақырында, бұл жақсартуларға қарсы шешім қабылдадық, өйткені біз әдетте үш -төрт ауысудан кейін аяқталған ойыннан гөрі ұзағырақ және кеңейтілген ойын ойнаудың кернеулі және ақырында қызықты болатынын анықтадық.
5 -қадам: Қорытынды
Біз бұл жобаның соңғы нәтижесіне өте риза болдық; Ойынның соңғы нұсқасы қызықты болғаны үшін ғана емес, сонымен қатар жобаны құру мен бағдарламалау бізден осы тоқсанда білгеніміздің бәрін болмаса да, көпшілікті пайдалануды талап еткендіктен. Біз флип -флоптарды, есептегіштерді, FSM -ді, сағатты, пайдаланушылардың тақтадан енгізуін және жеті сегментті дисплейге шығуды қолдандық.
Біз сондай -ақ бірнеше синтаксистік қателер бағдарламаны қалай толығымен бұза алатынын білдік (тіпті егер олар Python немесе Java сияқты басқа бағдарламалау тілдерінде жақсы деп есептелсе де) және тек бірнеше модельдеу мен кодтың бірнеше қайталануы жүктелген және тексерілгеннен кейін. тақта, сіз ақырында сіздің кодыңыздағы барлық қателерді өңдей аласыз.
Ұсынылған:
DIY 37 Leds Arduino рулетка ойыны: 3 қадам (суреттермен)
DIY 37 Leds Arduino рулетка ойыны: Рулетка - бұл кішкентай дөңгелекті білдіретін француз сөзімен аталған казино ойыны
Отто Бот (Мен өзімді кеніш деп атадым): 5 қадам
Отто Бот (Мен Mine Spike деп атадым): Бұл қарапайым жаяу робот жасау үшін кез келген адам жасай алатын қарапайым жоба
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): 6 қадам (суреттермен)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): Индуктивті зарядтау (сымсыз зарядтау немесе сымсыз зарядтау деп те аталады) - сымсыз қуат беру түрі. Ол портативті құрылғыларды электрмен қамтамасыз ету үшін электромагниттік индукцияны қолданады. Ең көп таралған қолданба - Qi сымсыз зарядтау