Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Веб-игра для двух игроков на 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.

Необходимые шаги

  1. Настроить Wi-Fi на PHPoC Shield (SSID/пароль) — см. инструкцию производителя.
  2. Загрузить remote_game.php на шилд через PHPoC Debugger.
  3. Установить библиотеку PHPoC для Arduino IDE.
  4. Загрузить скетч Arduino (см. ниже).

Тестирование

  1. Открыть Serial Monitor — увидеть IP-адрес шилда.
  2. В браузере: https://<IP>/remote_game.php
  3. Нажать 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.

Сборка

  1. Установить PHPoC Shield на Arduino UNO.
  2. Подключить 4 кнопки к D6–D9 с pull-down резисторами 10 кОм.
  3. Питание от USB или внешнего источника.

Производственный процесс

  1. Шахматы: от древних корней к современному производству — экспертный обзор
  2. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  3. Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
  4. DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
  5. Сборка консоли Pong 24×16 на Arduino Nano и MAX7219
  6. Arduino Breakout на сенсорном TFT 2.4″: классическая аркада своими руками
  7. Гигантский анимированный LEGO-человечек: игра «Операция» на Arduino
  8. Веб-управляемый MP3-плеер на Arduino: Воспроизведение аудио через браузер
  9. Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
  10. Автоматизация игры «Динозавр» в Chrome на Arduino и LDR с Python