使用したソフトウェアは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)がハンドル・ジョイスティックストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。オンラインコード版、ダウンロード版は...



コメント