さて、ラジコンづくりの一歩としてESP32にDualshock4の信号が受信できるのか試します。
まず使用するパーツは下記の通りです。
・ESP32 (技適取得済みなので日本国内で使っても問題ありません)
・ESP32とパソコンを繋ぐためのケーブル(A to microB)
・Dualshock4のコントローラー(何色でも大丈夫ですが、家にあった白のコントローラーを使います。)
この3点で試していこうと思います。
![](https://ssl-stat.amebame.com/pub/content/9477400408/amebapick/item/picktag_autoAd_301.png)
まず準備段階としてArduino IDE(プログラム総合開発環境)を使ってESP32のBluetoothアドレスを調べる必要があります。
ボードはESP32 Dev Moduleを選択し、ポート番号は持っているESPのポート番号を選択してください。
ポート番号は基本USBケーブルを差したら勝手に出てきますが出てこないor正確な番号が知りたい場合
デバイスマネージャーを開くと”ポート”のところCOM〇が出てきます。
それでは下記のプログラムを実行してみてください。
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() {
}
※エラーが出てきてしまう場合、下記のことを確認してみてください。
①ケーブルは通信もできるものなのか←エラーで一番多いです。100均のケーブルだと充電専用が多いです。
②ケーブルがしっかりパソコン、ESP32につながっているか確認。
③ESP32の初期不良?なのかすべて正常なのに書き込めない場合下記の手順を試してください。(手動で書き込みできるようにする方法)
③-1ESP32のBootボタンを押す。
③-2Bootボタンを押しつつENボタンを1回押す。
③-3Bootボタンを押したままプログラムを書き込む
④-4connectingが表示されたらBootボタンを離す。
③の場合「Failed uploading: uploading error: exit status 2」のようなエラーが出ます。
![](https://ssl-stat.amebame.com/pub/content/9477400408/amebapick/item/picktag_autoAd_301.png)
プログラム実行後ツール→シリアルモニターを選択するとシリアルモニターが表示されます。
プログラム実行に成功していると下記の表示が出てBluetoothのアドレスが確認できます。
※プログラムが正常に実行されているが表示されない場合
ESP32のENボタンを押すと表示されます。
Bluetoothのアドレスをメモしておいてください。
windowsに元から入っているメモ帳にメモするか同じくwindowsに元から入っている付箋というアプリにメモすると便利です。
![](https://ssl-stat.amebame.com/pub/content/9477400408/amebapick/item/picktag_autoAd_301.png)
次にDualshock4の接続先をESP32のBluetoothアドレスに設定します。
下記よりsixaxis pair toolをダウンロードしてください。
アドレス設定のために必要です。
いかがわしいサイトではないのでご安心ください。
ダウンロード後、Dualshock4をパソコンにUSBで接続して起動すると下記のようなウインドウが表示されます。
赤く囲ったところに先ほどメモしたESP32のアドレスを入れます。
これでDualshock4がESP32につながるようになりました。
それでは本当にDualshock4がESP32につながったのか確認するためプログラムを実行してみましょう。
![](https://ssl-stat.amebame.com/pub/content/9477400408/amebapick/item/picktag_autoAd_301.png)
その前にDualshock4のライブラリを下記のGit(データを置いておくことができるクラウド)からダウンロードします。
https://github.com/aed3/PS4-esp32
URLを開いたら真ん中上くらいに「Code」のボタンがあるのでクリックしてもらうと一番下に「Download Zip」があるのでダウンロードしてください。
そのあとArduino IDEにライブラリの追加をします。
スケッチ→Include Library→Ass .ZIP Library→ダウンロードしたZIPファイルを選択
するとDualshock4のスケッチ例がライブラリに追加されます。
ファイル→スケッチ例→PS4Controller→PS4ReceiveDataをクリックするとスケッチが出てきます。
![](https://ssl-stat.amebame.com/pub/content/9477400408/amebapick/item/picktag_autoAd_301.png)
5行目のPS4.begin("(ここをメモしたアドレスに変更)”)を変更してプログラムを実行。
そのあとDualshock4のPSボタンを押すとペアリングされてシリアルモニターに入力値が出てきます。
ここまで出来たら成功です。
この入力値を利用して次回はサーボモーターを動かしていこうかと思います。
ここまで読んでいただきありがとうございました。
次回もお楽しみに!!
![](https://ssl-stat.amebame.com/pub/content/9477400408/amebapick/item/picktag_autoAd_301.png)