ESP32とPS4コントローラーDualshock4をbluetooth接続してサーボモーター制御

IoT

使用したソフトウェアはArduino IDEです。

ボードマネージャーからESP32をインストール

※注意:バージョン2.0.*を選択、3.0.*を選択するとsketchをコンパイルする際にエラーが出ます

GitHubでPS4-esp32をダウンロード

GitHub - aed3/PS4-esp32: Use a ps4 controller with an esp32
Use a ps4 controller with an esp32. Contribute to aed3/PS4-esp32 development by creating an account on GitHub.

zipファイルを保存して、以下から読み込み
Sketch⇒Include Library⇒Add.ZIP Library…

ESP32のMACアドレスを確認

下記のコードをsketchに入力して実行します。

void setup(void) {
Serial.begin(115200);
uint8_t bt_mac[6];
esp_read_mac(bt_mac, ESP_MAC_BT);
Serial.printf("Bluetooth Mac Address => %02X:%02X:%02X:%02X:%02X:%02X\r\n", bt_mac[0], bt_mac[1], bt_mac[2], bt_mac[3], bt_mac[4], bt_mac[5]);
}

void loop() {
}

シリアルモニターを表示してESP32のAddressを確認できます。

PS4コントローラーDualshock4の接続先をESP32のbluetoothアドレスに設定

下記をダウンロード後、USBでDualshock4を接続します

Download SixaxisPairTool by Dancing Pixel Studios
SixaxisPairTool, Free Download by Dancing Pixel Studios

以下のウインドウが現れるので、ESP32のMACアドレスを入力します

ESP32サーボモーター ライブラリーをインストール

sketchでarduinoと同じライブラリを使用しようとして#include <Servo.h>を記述して実行するとエラーがでます。LIBRARY MANAGERからESP32サーボモーターのライブラリーをインストールします。

PS4Dualshock4コントローラーとESP32をbluetooth接続してサーボモーター制御

回路図は下記のように、赤線を5Vもしくは3.3V、黒線をGND、黄線を任意のPIN(今回は13PIN)に接続します。

以下をsketchに記述して実行します。
サーボモーターの読み込みは#include <ESP32Servo.h>です。
ps5.begin(“”)にはPS4コントローラーDualshock4のMACアドレスを入力します。

#include <PS4Controller.h>
#include <ESP32Servo.h>

Servo myServo;
int angle;
uint8_t rx;
int rx2;

void setup() {
Serial.begin(115200);
PS4.begin("A4:CF:12:56:2E:2A");
Serial.println("Ready.");
myServo.attach(13);
}

void loop() {
rx=PS4.RStickX();
rx2=abs(rx);
if (rx2>128) {
Serial.print(rx);
Serial.println(rx2);
angle=map(rx2,128,252,30,90);
myServo.write(angle);
}else if(rx2<128){
Serial.println(rx);
Serial.println(rx2);
angle=map(rx2,0,128,90,150);
myServo.write(angle);
}
}

右スティックの左右の動きに合わせてサーボモーターが回転します。

ESP32ボードへ電池で電源供給を行う

PCからUSB端子で電源供給する他に、Vin端子から電源を供給する方法があります。

1.5V×2個=3Vの乾電池の場合、PS4コントローラーのBluetooth接続ができませんでした。

1.5V×4個=6Vの乾電池にした場合、PS4コントローラーのBluetooth接続ができて、サーボモーターの操作もできました。

Amazon.co.jp: ESP32-DevKitC-32E 開発ボード : 産業・研究開発用品
Amazon.co.jp: ESP32-DevKitC-32E 開発ボード : 産業・研究開発用品
【楽天市場】技適認証品】ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード:Joman
ESP-32S ESP32S ESP32 Raspberry pi Arduino WiFI 開発ボード 技適。技適認証品】ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード
Amazon | 【純正品】ワイヤレスコントローラー (DUALSHOCK 4) ジェット・ブラック (CUH-ZCT2J) | ハンドル・ジョイスティック
【純正品】ワイヤレスコントローラー (DUALSHOCK 4) ジェット・ブラック (CUH-ZCT2J)がハンドル・ジョイスティックストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。オンラインコード版、ダウンロード版は...

コメント

タイトルとURLをコピーしました