Arduino-Webベースのジョイスティック
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 |
このプロジェクトについて
初心者の方は、次のことを学ぶことができます:
- Arduino-サーボモーター。
- Arduino-ジョイスティック
このプロジェクトですべてを制御できますが、例としてサーボモーターを取り上げました。
デモ
配線
- ArduinoにPHPoCWiFiシールドまたはPHPoCシールドをスタックする
- 2つのサーボモーターのGNDピンとVCCピンをそれぞれArduinoのGNDと5Vに接続します。 (arduinoのピンIOREFは5Vピンのように使用できます)
- 2つのサーボモーターのピン信号をArduinoのピン8とピン9にそれぞれ接続します。
データフロー
Webブラウザ---> PHPoCWiFiシールド---> Arduino
Webブラウザー上のWebアプリは、タッチまたはクリックイベントの座標(スケーリング後)をWebSocket経由でPHPoCシールドに送信します。データを受信すると、PHPoCシールドは自動的にデータをArduinoに渡します。 Arduinoは、PHPoCシールドから受信したデータに従って2つのサーボモーターを制御します。
注意: PHPoCシールドには、WebブラウザからArduinoにデータを渡すための組み込みプログラムがあります。したがって、気にする必要はありません。
私たちがしなければならないこと
- PHPoCシールドのWifi情報(SSIDとパスワード)を設定します
- 新しいUIをPHPoCシールドにアップロードする
- Arduinoコードを書く
PHPoCシールドのWi-Fi情報の設定
この手順を参照してください。
新しいWebUIをPHPoCシールドにアップロードする
- PHPoCソースコードremote_joystick.phpをダウンロードします(コードセクションにあります)。
- この手順に従って、PHPoCデバッガーを使用してPHPoCシールドにアップロードします。
Arduinoコードを書く
- Arduino IDEにArduino用のPHPoCライブラリをインストールします(手順を参照)
- コードセクションのソースコードを参照してください。
試してみてください
- Arduino IDEのシリアルボタンをクリックして、IPアドレスを確認します。
- Webブラウザを開き、
http://
と入力しますreplace_ip_address
/remote_joystick.php
- 接続ボタンをクリックしてテストします。
プロジェクトは似ていますが、ハードウェアプラットフォームが異なります
このプロジェクトは同じ動作をしますが、他のハードウェアプラットフォームを使用しました
初心者のための最高のArduinoスターターキット
初心者向けの最高のArduinoキットをご覧ください
関数リファレンス
- Arduino-サーボライブラリ
- Servo.attach()
- Servo.write()
- Servo.writeMicroseconds()
- Servo.read()
- Servo.attached()
- Servo.detach()
- Serial.begin()
- Serial.println()
コード
- Arduinoコード
- Webユーザーインターフェイス(remote_joystick.php)
Arduinoコード Arduino
#include "SPI.h" #include "Phpoc.h" #includePhpocServer server(80);サーボservo_x;サーボservo_y; void setup(){Serial.begin(9600); while(!Serial); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket( "web_joystick"); Serial.print( "WebSocketサーバーアドレス:"); Serial.println(Phpoc.localIP()); Servo_x.attach(8); //ピン8のサーボをサーボオブジェクトservo_y.attach(9);に接続します。 //ピン9のサーボをサーボオブジェクトservo_x.write(90);に接続します。 Servo_y.write(90); } void loop(){//新しいクライアントを待つ:PhpocClient client =server.available(); if(client){String data =client.readLine(); if(data){int pos =data.indexOf( ':'); long x =data.substring(0、pos).toInt(); long y =data.substring(pos + 1).toInt(); Serial.print( "x:"); Serial.print(x); Serial.print( "、y:"); Serial.println(y); // [-100;からスケール100]から[0; 180] long angle_x =(x + 100)* 180/200; long angle_y =(y + 100)* 180/200; Servo_x.write(angle_x); Servo_y.write(angle_y); }}}
Webユーザーインターフェイス(remote_joystick.php) PHP
<!DOCTYPE html>Arduino-PHPoCシールド
Arduino-Webベースのジョイスティック
WebSocket: null
回路図
製造プロセス