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

Arduino-Webベースの2人用ゲーム

コンポーネントと消耗品

>
Arduino UNO
× 1
Arduino用のPHPoCWiFiシールド
× 1
ボタン
× 4
ブレッドボード(汎用)
× 1
抵抗10kオーム
× 1
熱収縮チューブ
× 1

このプロジェクトについて

初心者の方は、Arduino-ボタンチュートリアルでボタンについて学ぶことができます。

ここでは、より単純なハードウェア(PHPoCのみ)を使用して同様のプロジェクトを作成しました。

デモ

データフロー

Arduino ---> PHPoCWiFiシールド---> Webブラウザ

ゲームをしているのは2人です。各人は2つのボタンを使用してゴールキーパーの方向を制御します。したがって、4つのボタンが必要です。

Arduinoは4つのボタンの状態を読み取ります。いずれかが変更された場合、Arduinoはゴールキーパーの移動方向を再計算し、方向の値をPHPoCWiFiシールドに送信します。値を受信すると、PHPoC WiFiShieldはそれをwebsocket経由でWebブラウザーに送信します。 JavaScript関数は、ゴールキーパーの移動方向を更新します。

JavaScriptプログラムは、ボール、ゴールキーパー、障害物の位置を方向に基づいて継続的に更新し、衝突もチェックします。

ゴールキーパーの方向は、ボタンの状態に基づいて変更されます。

注意: PHPoCシールドには、ArduinoからWebブラウザにデータを渡すための組み込みプログラムがあります。したがって、気にする必要はありません。

私たちがしなければならないこと

  • PHPoCシールドのWiFi情報(SSIDとパスワード)を設定します
  • 新しいUIをPHPoCシールドにアップロードする
  • Arduinoコードを書く

PHPoCシールドのWiFi情報の設定

この手順を参照してください。

新しいWebUIをPHPoCシールドにアップロードする

  • PHPoCソースコードremote_game.phpをダウンロードします(コードセクションにあります)。
  • この手順に従って、PHPoCデバッガーを使用してPHPoCシールドにアップロードします。

PHPoC Shieldは、WebブラウザからHTTPリクエストを受信すると、このファイルのPHPスクリプトを解釈し、解釈されたファイルをWebブラウザに送信します。解釈されたファイル(HTML、CSS、JavaScriptコードを含む)はUI(ユーザーインターフェイス)を提供し、ボール、ゴールキーパー、障害物の方向に基づいて位置を更新し、衝突もチェックします。また、WebSocketからゴールキーパーの移動方向を受け取ります。

Arduinoコードを書く

  • Arduino用のPHPoCライブラリをインストールします(手順を参照)。
  • Arduinoコード(コードセクション)をArduinoにアップロードする

テスト

  • Arduino IDEのシリアルボタンをクリックして、IPアドレスを確認します。
  • Webブラウザを開き、 http:// と入力します replace_ip_address /remote_game.php
  • 接続ボタンをクリックしてテストします

初心者のための最高のArduinoスターターキット

初心者向けの最高のArduinoキットをご覧ください


関数リファレンス

  • pinMode()
  • digitalRead()
  • Serial.begin()
  • Serial.print()
  • Serial.println()

コード

  • Arduinoコード
  • PHPoCシールドコード(remote_game.php)
Arduinoコード Arduino
 #include "SPI.h" #include "Phpoc.h" PhpocServer server(80); boolean previousConnected =false; void setup(){Serial.begin(9600); while(!Serial); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); server.beginWebSocket( "game"); Serial.print( "WebSocketサーバーアドレス:"); 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(){//クライアントが最初のバイトを送信するとき、たとえばhello: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>    PHPoC-ゲーム      

PHPoC-Webベースのゲーム

WebSocket: null

回路図

1.ArduinoにPHPoCwifiシールドまたはPHPoCシールドをスタックします
2.下の画像のような配線

製造プロセス

  1. チェス
  2. MPU-6050を搭載したArduinoジャイロスコープゲーム
  3. ArduinoPongゲーム-OLEDディスプレイ
  4. Arduinoゲームコントローラー
  5. MAX7219を搭載した24x16マトリックスのArduinoPongゲーム
  6. Arduinoタッチブレイクアウトゲーム
  7. ジャイアントアニマトロニクスレゴミンフィグオペレーションゲーム
  8. Arduino-WebベースのMP3プレーヤー
  9. ピクセルチェイサーゲーム
  10. arduinoを使用した自動恐竜ゲーム
  11. LEDルーレットゲーム