工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Web対応Arduinoカーレースブロックゲームの製作

必要な部品と材料

Arduino UNO ×1
PHPoC Shield for Arduino(PHPoC WiFi Shieldも可) ×1
USB WiFiドングル(Ralink RT3070/RT5370チップセット搭載) ×1
ロータリーアングルセンサ(ポテンショメータ) ×1

プロジェクト概要

デモ

懐かしいブロックゲーム風カーレース。5レーンを行き来し、対向車を避けてスコアを競います。速度は15段階、加速するにつれ難易度上昇。

配線

Web対応Arduinoカーレースブロックゲームの製作

データフロー

Arduino → PHPoC Shield → Webブラウザ

ユーザーがロータリーアングルセンサを操作。ADC値を5段階に分割し、レーン切り替え信号としてArduinoが読み取り、変化があればPHPoC Shieldへ送信。PHPoC ShieldはWebSocket経由でブラウザへ通知。JavaScriptが自車位置、対向車、ゲーム速度を更新。

セットアップ手順

  1. PHPoC ShieldのWiFi設定(SSID/パスワード)
  2. Web UI(remote_racing_game.php)をPHPoC Shieldにアップロード(PHPoC Debugger使用)
  3. Arduinoスケッチを書き込み(PHPoC Library for Arduinoが必要)

プレイ方法

  1. Arduino IDEのシリアルモニタでIPアドレスを確認
  2. ブラウザで https://[IPアドレス]/remote_racing_game.php を開く
  3. 「CONNECT」ボタンを押してゲーム開始

ポテンショメータの詳細:Arduino - ポテンショメータチュートリアル

使用関数リファレンス

コード

Arduinoスケッチ

#include "SPI.h"
#include "Phpoc.h"
PhpocServer server(80);
int adcPin = A0;
float adcVal = 0;
int lastPos = -1;
float adcMin = 512-2.5*100;

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());
}

void loop() {
  PhpocClient client = server.available();
  if (client) {
    adcVal = 0;
    for(int i=0; i<50; i++) adcVal += analogRead(adcPin);
    adcVal /= 50;
    int pos = (int)((adcVal-adcMin) / 100);
    if (pos<0) pos=0; else if(pos>4) pos=4;
    if(lastPos != pos){
      String txtMsg = String(pos) + "\r\n";
      char buf[txtMsg.length()];
      txtMsg.toCharArray(buf, txtMsg.length());
      server.write(buf, txtMsg.length());
      Serial.println(txtMsg);
      lastPos = pos;
      delayMicroseconds(50);
    }
  }
}

remote_racing_game.php(PHPoC Shield側)

<!DOCTYPE html>
<html>
<head>
<title>Arduino - Web-based Game</title>
<meta name="viewport" content="width=device-width, initial-scale=0.7, maximum-scale=0.7">
<style> ... </style>
<script>
// ゲームロジック:キャンバス描画、WebSocket通信、対向車移動、衝突判定、スコア表示等
// 詳細は元コード参照
</script>
</head>
<body>
<center>
<h1>Arduino - Car Race <br> Brick Game</h1>
<canvas id="remote" width="500" height="400"></canvas>
<h2>WebSocket: <span id="ws_state">null</span></h2>
<button id="bt_connect" onclick="connect_onclick()">CONNECT</button>
</center>
</body>
</html>

製造プロセス

  1. Web制御DMX照明システム:Arduino Megaマスターコントローラー
  2. Arduino UNOとOLEDディスプレイでクラシックPongゲームを自作:ステップバイステップチュートリアル
  3. Bluetooth操作のArduinoスパイボットを自作する
  4. DIY Arduino USBゲームコントローラー - 高性能ゲームパッドを自作
  5. Arduinoタッチブレークアウトゲーム:2.4インチTFT LCDでクラシックアーケードを再現
  6. 古いラジコンカーをXboxコントローラーで操作可能に - ArduinoとUSBホストシールドで実現
  7. Arduinoウェブ制御MP3プレーヤー:ブラウザから簡単オーディオ再生
  8. Pixel Chaser: Arduino Nanoで作るワンタップLEDゲーム
  9. ArduinoをWebパターンロックで保護 - 簡単セットアップとリモート制御
  10. Arduinoで自動化するChrome恐竜ゲーム – LDRとPythonで障害物を検知してジャンプ
  11. Arduinoで自作RCポルシェカー:ステップバイステップガイド