Оглавление:
Видео: Сапер: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Для нашего финального проекта CPE 133 мы с Чейзом решили создать игру «Сапер», в которой использовались бы кнопки и переключатели ввода с платы Basys-3, а также код VHDL. Лучшим названием для игры вполне могло бы быть «Русская рулетка», однако мы хотели использовать более понятное для всей семьи название. В игре пользователь нажимает среднюю кнопку на доске Basys, чтобы случайным образом назначить один из 16 переключателей «активным» с бомбой. Затем два игрока по очереди по очереди поднимают переключатели, пока один из игроков не щелкнет переключателем с помощью «бомбы». Когда это происходит, семисегментный дисплей предупреждает игроков о том, что этот игрок только что проиграл игру.
Шаг 1. Обзор
В проекте использовалось множество модулей VHDL, которые мы использовали в течение этого квартала. Четырехбитный счетчик использовался вместе с фронтом тактового сигнала, чтобы имитировать случайное четырехбитное число для активации одного из переключателей. Диаграмма состояний также использовалась для вывода различных слов на семисегментный дисплей, от «ИГРАТЬ», когда игроки находятся в середине своей игры, до «ПРОИГРЫВАТЬ», когда один из игроков щелкнул активным переключателем.
Шаг 2: материалы
- Совет по разработке Basys3 от Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Этот файл был предоставлен нам на Polylearn и написан Брайаном Мили)
- 4-битный счетчик из T-образных триггеров
- Автомат
Шаг 3: создание игры
Первым шагом к созданию этой игры было построение принципиальной схемы со всеми компонентами, которые мы будем использовать. Входами для этой системы были кнопка 1, 16 переключателей и часы. Выходами были семисегментный дисплей и аноды. После рисования принципиальной схемы мы написали отдельные исходные файлы для каждого компонента в Vivado и собрали их вместе, используя карты портов в основном исходном файле.
Вся основа игры вращается вокруг случайного назначения одного из 16 переключателей активным с бомбой, и чтобы игроки не знали, какой переключатель активен, пока этот активный переключатель не будет включен. Мы изучили генераторы случайных и псевдослучайных чисел в Интернете, но в конце концов решили, что использование 4-битного счетчика и назначение соответствующего переключателя активным является достаточно случайным для того, что мы искали. Мы смогли перепрофилировать наш 4-битный счетчик, который мы создали в предыдущем проекте, чтобы он мог работать для этого задания. Мы использовали счетчик для создания случайного числа от 0 до 15; затем в компоненте main1 мы присвоили десятичный эквивалент случайного числа соответствующему переключателю на плате. Как видно на схеме, как выход X («активная бомба») от компонента main1, так и переключатели, которые включают игроки, переходят к FSM1. Конечный автомат выводит однобитовое значение Z, которое затем считывается BC_DEC1. Используемый нами конечный автомат имеет два разных состояния: в состоянии A семисегментный дисплей выводит «PLAY», и автомат остается в этом состоянии до тех пор, пока не обнаружит, что активированный переключатель перевернут. Как только это происходит, конечный автомат переходит в состояние B, где он выводит «LOSE» на семисегментный дисплей и остается в этом состоянии до тех пор, пока все 16 переключателей не перейдут в «0». Когда это условие выполнено, автомат снова переходит в состояние A и ожидает, что игроки начнут новую игру. Диаграмма Мура, помогающая понять этот автомат, показана выше.
Шаг 4: Будущие модификации
Несколько модификаций, которые мы планировали внести в нашу игру, включают добавление большего количества бомб на поле (возможно, увеличение с одной до трех), добавление счетчика очков и нескольких раундов. В конечном итоге мы отказались от этих улучшений, так как обнаружили, что играть в более продолжительную и расширенную игру обычно было более напряженно и, в конце концов, веселее, чем в игре, которая обычно заканчивалась после трех или четырех переключений.
Шаг 5: Заключение
Мы были очень довольны конечным результатом этого проекта; не только потому, что в финальную версию игры было интересно играть, но и потому, что создание и программирование проекта потребовали от нас использовать большую часть, если не все, что мы узнали в этом квартале. Мы использовали триггеры, счетчики, конечные автоматы, часы, ввод данных пользователем с платы и вывод на семисегментный дисплей.
Мы также узнали, как несколько синтаксических ошибок могут полностью нарушить работу программы (даже если они будут считаться нормальными на других языках программирования, таких как Python или Java), и это только после нескольких симуляций и нескольких итераций кода, загруженного и проверенного на доска, сможете ли вы, наконец, избавиться от всех ошибок в своем коде.
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)
Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке
Проектирование печатной платы с помощью простых и легких шагов: 30 шагов (с изображениями)
Проектирование печатных плат с помощью простых и легких шагов: ПРИВЕТ, ДРУЗЬЯ Это очень полезное и легкое руководство для тех, кто хочет изучить дизайн печатных плат. Давайте начнем