Arduino - веб-игра для двух игроков
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 4 | ||||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
Об этом проекте
Если вы новичок, вы можете узнать о кнопке в Arduino - Button Tutorial.
Я сделал аналогичный проект, используя здесь более простое оборудование (только PHPoC).
Демо
Поток данных
Arduino ---> PHPoC WiFi Shield ---> Веб-браузер
В игру играют два человека. каждый человек использует две кнопки для управления вратарем. Следовательно, нам нужно четыре кнопки.
Arduino считывает состояние четырех кнопок. Если какая-либо из них будет изменена, Arduino пересчитает направление движения вратаря и отправит значения направления в PHPoC WiFi Shield. При получении значений PHPoC WiFi Shield отправляет их в веб-браузер через веб-сокет. Функция JavaScript обновит направление движения вратарей.
Программа JavaScript будет постоянно обновлять положение мяча, вратарей и препятствий в зависимости от их направления, а также проверять столкновение.
Направление вратарей меняется в зависимости от состояния кнопок.
Обратите внимание: В PHPoC shield есть встроенная программа для передачи данных из Arduino в веб-браузер. Поэтому нам не нужно об этом заботиться.
Что нам нужно делать
- Установить информацию о WiFi для экрана PHPoC (SSID и пароль)
- Загрузить новый интерфейс на PHPoC Shield
- Напишите код Arduino
Настройка информации о Wi-Fi для PHPoC Shield
См. Эту инструкцию.
Загрузить новый веб-интерфейс в PHPoC Shield
- Загрузите исходный код PHPoC remote_game.php (в разделе кода).
- Загрузите его на экран PHPoC Shield с помощью отладчика PHPoC в соответствии с этой инструкцией.
При получении HTTP-запроса от веб-браузера PHPoC Shield интерпретирует PHP-скрипт в этом файле, а затем отправляет интерпретированный файл в веб-браузер. Интерпретируемый файл (содержащий код HTML, CSS и JavaScript) предоставляет пользовательский интерфейс (пользовательский интерфейс), обновляет положение мяча, вратарей и препятствий в зависимости от их направления, а также проверяет столкновение. Он также получает информацию о направлении движения вратарей от веб-узла.
Написать код Arduino
- Установите библиотеку PHPoC для Arduino (см. инструкцию).
- Загрузите код Arduino (в разделе кода) в Arduino
Тестирование
- Нажмите кнопку последовательного порта в среде Arduino IDE, чтобы увидеть IP-адрес.
- Откройте веб-браузер, введите
http://
replace_ip_address
/remote_game.php
- Нажмите кнопку подключения и проверьте его.
Лучший стартовый комплект Arduino для начинающих
См. «Лучший комплект Arduino для начинающих»
Ссылки на функции
- pinMode ()
- digitalRead ()
- Serial.begin ()
- Serial.print ()
- Serial.println ()
Код
- Код Arduino
- Код PHPoC Shield (remote_game.php)
Код Arduino Arduino
#include "SPI.h" #include "Phpoc.h" Сервер PhpocServer (80); логическое значение ужеConnected =false; void setup () {Serial.begin (9600); в то время как (! серийный); Phpoc.begin (PF_LOG_SPI | PF_LOG_NET); server.beginWebSocket («игра»); Serial.print ("Адрес сервера WebSocket:"); Serial.println (Phpoc.localIP ()); pinMode (6, ВХОД); pinMode (7, ВХОД); pinMode (8, ВХОД); pinMode (9, ВХОД); } int value_6 =digitalRead (6); int value_7 =digitalRead (7); int value_8 =digitalRead (8); int value_9 =digitalRead (9); int pre_dir_1 =0; int pre_dir_2 =0; int dir_1 =0; int dir_2 =0; void loop () {// когда клиент отправляет первый байт, поздороваться:PhpocClient client =server.available (); если (клиент) {значение_6 =digitalRead (6); значение_7 =digitalRead (7); значение_8 =digitalRead (8); значение_9 =digitalRead (9); dir_1 =значение_7 - значение_6; dir_2 =значение_9 - значение_8; if (dir_1! =pre_dir_1 || dir_2! =pre_dir_2) {pre_dir_1 =dir_1; pre_dir_2 =dir_2; String txtMsg ="[" + String (dir_1) + "," + String (dir_2) + "] \ r \ n"; char buf [txtMsg.length () + 1]; txtMsg.toCharArray (buf, txtMsg.length () + 1); server.write (buf, txtMsg.length ()); }}}
Код PHPoC Shield (remote_game.php) PHP
PHPoC - Game <стиль> тело {выравнивание текста:центр; размер шрифта:15 пунктов; семейство шрифтов:Arial, Helvetica, без засечек;} h1 {font-weight:bold; размер шрифта:25pt; } h2 {font-weight:жирный; размер шрифта:15 пунктов; } кнопка {font-weight:bold; размер шрифта:15 пунктов; }
PHPoC - веб-игра
WebSocket: null
Схема
1. Стек PHPoC wifi shield или PHPoC shield на Arduino2. Подключение, как на изображении ниже.

Производственный процесс
- Шахматы
- Игра с гироскопом Arduino с MPU-6050
- Игра Arduino Pong - OLED-дисплей
- Игровой контроллер Arduino
- Игра Arduino Pong на матрице 24x16 с MAX7219
- Игра Arduino Touch Breakout
- Игра Giant Animatronics Lego Minfig Operation Game
- Arduino - MP3-плеер с веб-интерфейсом
- Игра Pixel Chaser
- Автоматизированная игра Дино с использованием arduino