Arduino-Webベースのカーレースブリックゲーム
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
デモ
この古典的なゲームは、私たちの何人かが子供の頃の懐かしさを感じるかもしれません。ゲームプレイはシンプルです。対戦相手の車にぶつからないようにして、できるだけ多くのスコアを獲得してください。車は5車線を切り替えることができ、15の異なる速度があります。速度が上がると、対戦相手の車の速度が速くなり、ゲームが難しくなります。
配線
- ArduinoにPHPoCシールドをスタックします。
- 回転角度センサーのGND、VCC、およびSIGピンをそれぞれArduinoのGND、5V、およびA0に接続します。

データフロー
Arduino ---> PHPoC Shield ---> Webブラウザ
ユーザーは回転角度センサーを操作します。回転角度センサーの入力信号値は、車の位置を切り替えるために使用されます。
Arduinoは回転角度センサーから値を読み取ります。入力ADC値は5つの異なるレベルに分けられます。レベルを切り替えることは、車線を変更することを意味します。簡単に言うと、入力信号が別のレベルに切り替わると、Arduinoは更新されたレベルをPHPoCシールドに送信します。
値を受け取ると、PHPoC WiFiShieldはそれをWebsocket経由でWebブラウザーに送信します。次に、JavaScript関数が車の位置(車線)を更新します。 JavaScriptプログラムは、対戦相手の位置とゲーム速度も継続的に更新します。
やるべきこと
- PHPoCシールド(SSIDとパスワード)のWiFi接続を設定します
- 新しいUIをPHPoCシールドにアップロードする
- Arduinoコードをアップロードする
PHPoCシールドのWiFi接続を設定する
この手順を参照してください。
新しいWebユーザーインターフェイスをPHPoCシールドにアップロードする
- PHPoCソースコードremote_racing_game.phpをダウンロードします。
- この手順に従って、PHPoCデバッガーを使用してPHPoCシールドにアップロードします。
Arduinoコードをアップロード
- Arduino用のPHPoCライブラリをインストールします(手順を参照)。
- ArduinoコードをArduinoにアップロードする
そして最後に
- ArduinoIDEのシリアルボタンをクリックしてIPアドレスを取得します。
- Webブラウザを開き、
http://
と入力しますrelace_ip_address_here
/remote_racing_game.php
- 接続ボタンをクリックしてゲームを楽しんでください。
Arduinoのポテンショメータの詳細-ポテンショメータチュートリアル
関数リファレンス
- pinMode()
- analogRead()
- digitalWrite()
- Serial.begin()
- Serial.println()
- forループ
- whileループ
- その他の場合
- loop()
- setup()
コード
- Arduinoコード
- remote_racing_game.php
Arduinoコード Arduino
#include "SPI.h" #include "Phpoc.h" PhpocServer server(80); int adcPin =A0; float adcVal =0; // ensorintからの値を格納する変数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サーバーアドレス:"); Serial.println(Phpoc.localIP()); } void loop(){//クライアントが最初のバイトを送信するとき、たとえばhello: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 PHP
PHPoCシールドコード<!DOCTYPEhtml>Arduino-Webベースのゲーム
Arduino-カーレースブリックゲーム
WebSocket:
null
製造プロセス