Веб-игра для двух игроков на Arduino UNO и PHPoC WiFi Shield
Компоненты
| Arduino UNO | ×1 |
| PHPoC WiFi Shield для Arduino | ×1 |
| Тактильные кнопки | ×4 |
| Макетная плата, резисторы 10 кОм (pull-down) | ×1 |
| Термоусадка | ×1 |
О проекте
Двухигровая веб-игра: два игрока управляют «вратарями» четырьмя кнопками (по две на игрока). Arduino опрашивает кнопки, вычисляет направление движения и отправляет данные через PHPoC WiFi Shield браузерам игроков по WebSocket. Игровая логика (мяч, препятствия, столкновения) выполняется на клиенте (JavaScript).
Поток данных
Arduino → PHPoC Shield → WebSocket → Браузер (JS). PHPoC Shield имеет встроенную прошивку-мост — отдельного кода для шилда не требуется, достаточно загрузить PHP-файл с UI.
Необходимые шаги
- Настроить Wi-Fi на PHPoC Shield (SSID/пароль) — см. инструкцию производителя.
- Загрузить
remote_game.phpна шилд через PHPoC Debugger. - Установить библиотеку PHPoC для Arduino IDE.
- Загрузить скетч Arduino (см. ниже).
Тестирование
- Открыть Serial Monitor — увидеть IP-адрес шилда.
- В браузере:
https://<IP>/remote_game.php - Нажать Connect, играть стрелками клавиатуры (или кнопками на плате).
Код Arduino
#include <SPI.h> #include <Phpoc.h>
PhpocServer server(80);
int pins[4] = {6,7,8,9}; // кнопки
int pre_dir_1=0, pre_dir_2=0;
void setup() {
Serial.begin(9600); while(!Serial);
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
server.beginWebSocket("game");
Serial.print("WS IP: "); Serial.println(Phpoc.localIP());
for(int p: pins) pinMode(p, INPUT);
}
void loop() {
PhpocClient client = server.available();
if(client) {
int v6=digitalRead(6), v7=digitalRead(7), v8=digitalRead(8), v9=digitalRead(9);
int dir_1 = v7 - v6; // игрок 1: вверх/вниз
int dir_2 = v9 - v8; // игрок 2
if(dir_1!=pre_dir_1 || dir_2!=pre_dir_2) {
pre_dir_1=dir_1; pre_dir_2=dir_2;
String msg = "["+String(dir_1)+","+String(dir_2)+"]\r\n";
server.write(msg.c_str(), msg.length());
}
}
}
Веб-интерфейс (remote_game.php)
Полный HTML/JS код (Canvas 400×500) с физикой мяча, вратарей, препятствий, счётом и WebSocket-клиентом. Файл загружается на PHPoC Shield. При запросе браузером PHP интерпретируется и отдаётся готовый HTML/JS.
Сборка
- Установить PHPoC Shield на Arduino UNO.
- Подключить 4 кнопки к D6–D9 с pull-down резисторами 10 кОм.
- Питание от USB или внешнего источника.
Производственный процесс
- Шахматы: от древних корней к современному производству — экспертный обзор
- Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
- Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- Сборка консоли Pong 24×16 на Arduino Nano и MAX7219
- Arduino Breakout на сенсорном TFT 2.4″: классическая аркада своими руками
- Гигантский анимированный LEGO-человечек: игра «Операция» на Arduino
- Веб-управляемый MP3-плеер на Arduino: Воспроизведение аудио через браузер
- Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
- Автоматизация игры «Динозавр» в Chrome на Arduino и LDR с Python