산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 UNO & PHPoC 와이파이 실드로 웹 기반 2인용 게임 만들기

부품 및 소모품

부품수량
아두이노 UNO1
아두이노용 PHPoC 와이파이 실드1
버튼4
브레드보드 (일반)1
저항 10kΩ1
열수축 튜브1

프로젝트 소개

초보자라면 아두이노 버튼 튜토리얼을 참고하세요.

더 간단한 하드웨어(PHPoC만 사용)로 비슷한 프로젝트를 만든 적이 있습니다.

데모

데이터 흐름

아두이노 → PHPoC 와이파이 실드 → 웹 브라우저

두 사람이 게임을 합니다. 각자 두 개의 버튼으로 골키퍼 방향을 제어하므로 총 네 개의 버튼이 필요합니다.

아두이노가 네 버튼의 상태를 읽고, 변경 사항이 있으면 골키퍼 이동 방향을 다시 계산하여 PHPoC 와이파이 실드로 전송합니다. 값을 수신하면 PHPoC 와이파이 실드가 웹소켓을 통해 웹 브라우저로 전송합니다. 자바스크립트 함수가 골키퍼 이동 방향을 업데이트합니다.

자바스크립트 프로그램은 공, 골키퍼, 장애물의 위치와 방향을 기반으로 지속적으로 업데이트하고 충돌도 체크합니다.

골키퍼 방향은 버튼 상태에 따라 변경됩니다.

참고: PHPoC 실드에는 아두이노에서 웹 브라우저로 데이터를 전달하는 내장 프로그램이 있습니다. 따라서 이에 대해 신경 쓸 필요가 없습니다.

해야 할 일

PHPoC 실드 와이파이 정보 설정

이 지침 참조

PHPoC 실드에 새 웹 UI 업로드

웹 브라우저에서 HTTP 요청을 수신하면 PHPoC 실드가 이 파일의 PHP 스크립트를 해석하고 해석된 파일을 웹 브라우저로 전송합니다. 해석된 파일(HTML, CSS, 자바스크립트 포함)은 UI를 제공하고, 공/골키퍼/장애물의 위치를 방향에 따라 업데이트하며 충돌을 체크합니다. 웹소켓을 통해 골키퍼 이동 방향도 수신합니다.

아두이노 코드 작성

테스트

초보자를 위한 최고의 아두이노 스타터 키트

초보자를 위한 최고의 아두이노 키트 보기

함수 레퍼런스

코드

아두이노 코드
#include "SPI.h"
#include "Phpoc.h"

PhpocServer server(80);
boolean alreadyConnected = false;

void setup() {
  Serial.begin(9600);
  while(!Serial);
  Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
  server.beginWebSocket("game");
  Serial.print("WebSocket server address: ");
  Serial.println(Phpoc.localIP());
  pinMode(6, INPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
  pinMode(9, INPUT);
}

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();
  if (client) {
    value_6 = digitalRead(6);
    value_7 = digitalRead(7);
    value_8 = digitalRead(8);
    value_9 = digitalRead(9);
    dir_1 = value_7 - value_6;
    dir_2 = value_9 - value_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 실드 코드 (remote_game.php) - PHP
<!DOCTYPE html>
<html>
<head>
<title>PHPoC - Game</title>
<meta name="viewport" content="width=device-width, initial-scale=0.7, maximum-scale=0.7">
<style>
body { text-align: center; font-size: 15pt; font-family: Arial, Helvetica, sans-serif; }
h1 { font-weight: bold; font-size: 25pt; }
h2 { font-weight: bold; font-size: 15pt; }
button { font-weight: bold; font-size: 15pt; }
</style>
<script>
// ... 자바스크립트 게임 로직 (원문 참조)
</script>
</head>
<body>
<center>
<p> <h1>PHPoC - Web-based Game</h1> </p>
<canvas id="remote" width="400" height="500"></canvas>
<h2>
<p> WebSocket: <span id="ws_state">null</span> </p>
<button id="bt_connect" type="button" onclick="connect_onclick();">Connect</button>
</h2>
</center>
</body>
</html>

회로도

  1. PHPoC 와이파이 실드 또는 PHPoC 실드를 아두이노 위에 스택
  2. 아래 이미지처럼 배선
아두이노 UNO & PHPoC 와이파이 실드로 웹 기반 2인용 게임 만들기

제조공정

  1. 체스: 고대 기원에서 현대 제조까지 전문가 개요
  2. 아두이노 나노와 MPU-6050으로 실시간 자이로스코프 게임 만들기
  3. 아두이노 우노와 OLED 디스플레이로 클래식 퐁(Pong) 게임 만들기: 단계별 튜토리얼
  4. DIY 아두이노 USB 게임 컨트롤러 - 나만의 고성능 게임패드 만들기
  5. 아두이노 나노와 MAX7219로 만드는 24x16 LED 퐁 게임 콘솔
  6. 아두이노 터치 브레이크아웃 게임: 2.4" TFT LCD로 클래식 아케이드 구현
  7. 거대 레고 미니피겨 아두이노 아나마트로닉스 오퍼레이션 게임 제작기
  8. 아두이노 웹 제어 MP3 플레이어 - 브라우저로 오디오 재생하기
  9. 픽셀 체이서: 아두이노 나노로 만든 인터랙티브 원탭 LED 게임
  10. 아두이노로 크롬 공룡 게임 자동화하기 – LDR과 파이썬으로 장애물 감지