Оглавление:
Видео: Игра Arduino Battleship: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Я помню, как в детстве играл в «Морской бой» в бумажную и карандашную версию. Фактически, это было примерно со времен Первой мировой войны. У меня также был «электронный» вариант в начале 1960-х годов под названием «Sonar Sub Hunt», в котором были огни, звуки и скрытые мины. По сегодняшним стандартам видеоигр «Морской бой» довольно скучный, но я подумал, что все равно сделаю его, просто чтобы посмотреть, что думают о нем внуки. Ведь иногда ретро бывает круто.
В этом проекте есть фрагменты, которые могут пригодиться в другом месте, даже если вы не заинтересованы в создании игры «Морской бой». Он имеет простой 4-битный ЖК-интерфейс 1602, который включает в себя процедуру для установки определенного местоположения символа. Также есть интерфейс для декодирования коммутационной матрицы 4х4. Эти два интерфейса доступны в виде отдельных включаемых файлов, поэтому их легко переносить. В игре также есть различные программы звуковых эффектов и простая схема усилителя звука на одном транзисторе.
Шаг 1. Аппаратное обеспечение
Схема, представленная здесь, предназначена для одного игрока, поэтому нужно будет создать два юнита. Устройства обмениваются данными с помощью 3-проводного интерфейса, который включает в себя линии передачи и приема UART, а также заземляющий провод. Я решил использовать стандартный 1/8-дюймовый стереоразъем для наушников и стандартный кабель с вилками на обоих концах. RX из одного блока переходит в TX другого блока и наоборот. Вы можете сделать это, поменяв местами провода, припаянные к разъему для наушников внутри коробки, или поменяв их местами на печатной плате при ее сборке.
Классическая игра была представлена в виде матрицы, но я решил сделать простую реализацию, используя ЖК-дисплей 1602 в качестве дисплея. Первая строка показывает расположение кораблей игрока и выстрелы противника. Вторая строка показывает выстрелы игрока и любые попадания в корабли противника. Это дает 16 возможных мест для кораблей. Количество кораблей задается в программном обеспечении, и я произвольно выбрал 5.
16 мест на корабле прекрасно соответствуют требованиям к переключателям, поскольку позволяют использовать матрицу 4x4. Доступны матричные переключатели 4x4, но я решил использовать отдельные переключатели в одной строке, чтобы соответствовать линейному дисплею. Тем не менее, я подключил переключатели как матрицу 4x4, так что потребовалось всего восемь контактов Arduino. См. Электрическую схему переключателя и схему для правильного подключения.
ЖК-дисплей подключен к 4-битному интерфейсу. Я также добавил внешний светодиод на контакт D13, чтобы указать, какой игрок должен делать выстрел. Первоначально игроки решают, кто сделает первый выстрел, а затем программа автоматически контролирует ход игры.
Я хотел добавить простые звуковые эффекты для выстрела, взрывов, готовой игры и победителя / проигравшего. Я попробовал использовать простой пьезо-зуммер, но вместо этого остановился на небольшом динамике. Ток, требуемый динамиком, превышает то, с чем может справиться Arduino, поэтому был добавлен простой транзисторный усилитель. Звук по-прежнему невысокий, но лучше, чем с зуммером. У меня динамик 4 Ом, но если у вас 8-омный, измените резистор на схеме с 39 Ом на 33 Ом. Если вы используете пьезо-зуммер, вы сможете управлять им напрямую от вывода Arduino, а другая сторона зуммера будет подключена к земле.
Также имеется внешний переключатель сброса, который подключается непосредственно между землей и выводом «сброса» на Arduino. Это дает возможность перезапустить игру.
Шаг 2: Программное обеспечение
В программном обеспечении есть включаемый файл для моего ЖК-интерфейса, и я также создал включаемый файл для сканирования матрицы переключателей 4x4. Инициализация предлагает игроку выбрать места для своих кораблей, а затем переходит в состояние «Готов». Когда оба игрока готовы, один из них начинает игру, нажав переключатель.
Местоположение выстрела передается через UART другому игроку, а соответствующий результат передается обратно игроку, который произвел выстрел. Как упоминалось ранее, после того, как сделан первый снимок, программное обеспечение определяет, кто сделает следующий снимок. Перед передачей кадра он сравнивается с местоположениями предыдущих кадров. Если это место уже было использовано, выстрел не будет передан. Светодиод «My_Shot» определяет, чья это очередь. Также есть звук выстрела, генерируемый для правильного выбора, и звук взрыва, если корабль поражен. Звуковые эффекты взяты из примеров, найденных в Интернете, с модификациями, соответствующими игре.
После того, как все корабли противника будут поражены, на каждом ЖК-дисплее отображается сообщение: одно - победитель, а другой - проигравший. В сообщении также указано, что игру можно перезапустить, нажав кнопку сброса. Также есть отдельные звуковые эффекты для победителя и проигравшего.
Шаг 3. Снимки экрана
Вот несколько скриншотов из игры. Это все для этого поста. Ознакомьтесь с другими моими инструкциями, а также с моим сайтом: www.boomerrules.wordpress.com
Рекомендуемые:
Игра в рулетку DIY 37 Leds Arduino: 3 шага (с изображениями)
DIY 37 Leds Arduino Roulette Game: Roulette - это игра в казино, названная в честь французского слова, означающего маленькое колесо
Цифровая игра Ludo Dice с 7-сегментным дисплеем Arduino: 3 шага
Digital Ludo Dice с проектом 7-сегментного дисплея Arduino: в этом проекте 7-сегментный дисплей используется для случайного отображения числа от 1 до 6 всякий раз, когда мы нажимаем кнопку. Это один из самых крутых проектов, который нравится делать всем. Чтобы узнать, как работать с 7-сегментным дисплеем, нажмите здесь: -7 segme
Игра Jumping Man с использованием Arduino: 3 шага
Игра Jumping Man с использованием Arduino: Всем привет !!! Добро пожаловать в мой первый учебник. Я был большим поклонником игры Jumping Dinosaur, поэтому я попытался создать аналогичную игру с помощью Arduino UNO и ЖК-экрана. Это интересный проект, требующий лишь усилий
Автоматизированная игра в динозавров с использованием Arduino: 4 шага
Автоматическая игра с динозаврами с использованием Arduino: Итак, привет, парень, добро пожаловать обратно в новую статью в этой статье, мы создадим автоматизированную игру с динозаврами с использованием Arduino. Эту автоматизированную игру с динозаврами очень легко сделать. За несколько шагов вы можете сделать эту игру с динозаврами дома, когда я смотрел Тик-Ток несколько дней назад, я иду
Игра Саймона - Веселая игра !: 5 шагов
Simon Game - Fun Game !: Справка: После долгих выходных вы должны очень постараться, чтобы выполнить все задания и работу, за которые вы отвечаете. Пора нам тренировать мозг, не так ли? Помимо этих скучных и бессмысленных игр, есть игра под названием Simon Game