Каталог статей


Выбранная схема!!!


7995
Игра «Утиная охота» с использованием Arduino и Python | DIY-проект

Игра «Утиная охота» с использованием Arduino и Python | DIY-проект

Duck Hunt Game — это игра-стрелялка, основанная на pygame и использующая Arduino и датчик акселерометра. В этом проекте на экране делается указатель орудия, который перемещается по координатам x и y акселерометра, а для стрельбы по цели используется switch.

Указатель пистолета наводится путем наклона оборудования (акселерометра). Кнопка switch (S1) нажимается (нажимается как спусковой крючок) для выстрела и отправляет сигнал на ПК о том, что выстрел был произведен. Указатель пистолета перемещается в сторону птицы, и птица убивается if позиции совпадают.

Одновременно можно подстрелить двух и более птиц. Accuracy прицела уменьшает if, вы постоянно стреляете и перемещаете плату Arduino. Скриншот игры «Охота на уток» представлен на рис. 1.

Рис. 1: Скриншот игры «Охота на уток»

В этой игре используется базовая концепция взаимодействия между Arduino и Python с использованием пакета pyserial. Версия Python, используемая в этом проекте, — 3.4.4. Подробности о пакетах Python приведены в разделе программного обеспечения.

Цепь и работа

Принципиальная схема игры «Охота на уток» с использованием Arduino Uno и Python показана на рис. 2. Контакты x и y акселерометра подключены к аналоговым контактам A0 и A1 Arduino. Акселерометр может иметь разные значения в зависимости от производителя. Аналоговые значения x и y отображаются на последовательном мониторе Arduino IDE.

Рис. 2: Принципиальная схема игры «Охота на уток» с использованием Arduino Uno

Наклоните свое оборудование и запишите минимальное и максимальное значения x и y. Поместите эти значения в код Arduino. В программе это будет отображено от 0 до 20. Затем отправьте последовательные данные в Python и нажмите S1, чтобы подключить их к контакту 2 платы Board1, который используется для стрельбы из пистолета. Акселерометр питается от контакта 5 В платы Arduino. Акселерометр, использованный в этом проекте, показан на рис. 3, а авторский прототип — на рис. 4.

Рис. 3: Датчик акселерометра ADXL355
Рис. 4: Авторский прототип

Программное обеспечение

Пакеты Python

Загрузите пакеты перед компиляцией программы Python (duck_hunt.py). Их можно загрузить, набрав в Google «неофициальные двоичные файлы расширений Python для Windows». Загрузите версию Python 3.4.4.

В программе используются пакеты Python: pyserial, pygame, random, time и math, из которых вам нужно будет только загрузить pyserial и pygame; остальные предустановлены.

Игра разработана на основе библиотеки pygame, которая отображает изображения птиц и пистолета со всем графическим интерфейсом. Связь между кодом Python и Arduino осуществляется с помощью последовательной связи; поэтому вам необходимо добавить номер своего COM-порта после запуска программы. Это потребует от вас подтверждения. Нажмите y, чтобы начать игру. На экране программы появится кружок.

Птицы и утки появляются в случайных местах и в случайном направлении. Направления обозначаются цифрами, где 1 представляет собой север, 2 – северо-восток и движется по часовой стрелке к 8 – северо-западу.

Каждые 200 мс от Arduino отправляются 4-байтовые данные, которые включают в себя стартовый байт (*), за которым следуют координаты x и y в масштабе от 0 до 20 и заканчиваются 0 или 1, где 1 означает, что из пистолета был произведен выстрел с использованием S1.

Байт 1 отправляется непрерывно, чтобы данные не были потеряны. После того, как код Python обнаруживает выстрел из пистолета, он отправляет ответ Arduino, и байт снова меняется на 0. Кадры с птицами берутся из файла .GIF и загружаются один за другим на экран, чтобы показать движение птиц.

В конечном итоге на экране отображается общий результат, а также затраченное время и точность стрельбы. Убить двух и более совпадающих птиц одним выстрелом можно, за это начисляются дополнительные очки.

Код Arduino

Программное обеспечение (duck_hunt.ino) написано на языке программирования Arduino. Arduino Uno Board1 программируется с использованием программного обеспечения Arduino IDE. Подключите плату Arduino к ПК и выберите правильный COM-порт в Arduino IDE. Скомпилируйте программу (скетч). Выберите нужную плату в меню «Инструменты» → «Плата» в Arduino IDE и загрузите эскиз.

Шаги тестирования

Шаг 1

Загрузите Python 3.4.4 со своего веб-сайта. Выберите 64- или 32-разрядное программное обеспечение в зависимости от конфигурации вашего ПК с Windows. Установите его.

Шаг 2

Перейдите в командную строку «Пуск» → «Выполнить». Введите cmd и измените каталог папки (где был установлен Python). В моем case он находился на диске C, поэтому я набрал «cd C:\Python34».

Шаг 3

Чтобы избежать ошибок, обновите модуль pip типа python -m pip install pip –upgrade. Будет загружена последняя версия pip.

Шаг 4

Загрузите пакеты Python с сайта www.lfd.uci.edu/~gohlke/pythonlibs/. Найдите в списке pyserial и pygame (эти два пакета обязательны) и загрузите версию cp34 или последнюю версию в pyserial. Кроме того, загрузите amd64 if, если у вас 64-разрядная версия Windows, или else загрузите 32-разрядную версию.

Шаг 5

Сохраните файлы .whl в папке и установите их с помощью pip. Введите «C:\Python34\Scripts\pip». Установите [[ПУТЬ]]\[[ИМЯ ФАЙЛА]].whl. И импортируйте пакет в оболочку Python. Должно работать правильно.

Шаг 6

После установки Python и его библиотек протестируйте код Python. Все просто — код, заданный вместе с набором изображений, нужно хранить в одной папке. Откройте код; есть переменная ПОРТ. Измените номер COM-порта в соответствии с вашим компьютером после подключения платы Arduino.

Шаг 7

Подключите кабель USB и после загрузки кода в Arduino запустите код Python, нажав F5. Откроется окно GUI с четырьмя летающими птицами на экране и видом оружия, как показано на рис. 1.

Шаг 8

Направление пистолета можно изменить, наклонив оборудование, а стрелять пулями можно с помощью S1.

Шаг 9

Когда вы стреляете в while в движении, прицел будет неточным. После убийства четырех птиц лимит времени if (150 секунд) истечет, на экране отобразится статус вашей игры.


Категория: Железо | Добавил: Администратор (20.05.2026)
Просмотров: 7 | Рейтинг: 0.0/0


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2026