Arduino Uno R3にPS4コントローラーをBluetoothで繋いでみた
昨年の半年くらい前の投稿から、場所を変えながらずっと長期出張してます。(泣)
そんな中、宿泊場所が秋葉原に近いので頭の片隅で弄りたいな~と思ってたArduinoに手を出しました。
プログラムはともかくハードに関しては門外漢の私ですが、Arduinoを使って簡単にモーター、サーボなど動かして遊んでます。
今回はタイトル通り、ArduinoにPS4コントローラーをBluetoothで繋いでみました。
PS4コンとArduinoのUSB接続での確認もうまくいってます。
最終的にはPS4コンでサーボ2個、DCモーター2個の制御まで実装する予定。
■使ったもの
①Arduino Uno R3
※ライブラリとサンプルコードは以下ののPS4BT使ってます。感謝感謝
felis/USB_Host_Shield_2.0 · GitHub
③Bluetoothドングル(以下、全て動作確認しました)
・Buffalo BSBT4D09BK
・ELECOM LBT-UAN05C2
・Princeton PTM-UBT7
④PlayStation4コントローラー *2
■手順
PS4BTを使ったペアリングはPS3と違いUSBコード抜き差し無しでペアリング可能なので楽ちんです。
ライブラリの取り込みは省略。IDEのある"C:\Program Files\Arduino\libraries"フォルダに突っ込むだけですから。
①スケッチの例から「PS4BT」
②Arduinoのマイコンに「PS4BT」サンプルを書き込む。初回書き込み時のソースはそのままでいいですが、ペアリング後に赤枠をコメントアウトします。
③シリアルモニタを開くとシステムログが出力される。ソースにも書いてあるけど、文字化けするので通信速度は115200bpsを選択しておく。
以下の画像で止まったらSHAREボタンとPSボタンを同時押しのまま2秒前後?待つとmicroUSB近くのLEDが白く点滅するので、そこからペアリング開始です。完了のログ出力まで待つ。
④赤線部分まで来てログ出力が止まったら、PS4コンとBTドングルのペアリングは済んでいるのでPSボタンを押して繋げてみる。
⑤PSコンのLEDが青くなり。繋がったようです。
↓ボタン押し加減等が全部出てます。2点タッチパッドの触られている位置やコントローラーの傾きも検出できるようです。
とりあえずPSボタンを押してリンクを切る。
⑤ソースに戻り、最初の赤枠をコメントアウトし、コメントアウトされていたコードを戻す。そして、編集後のコードでマイコンに書き込むと完了です。
一度ペアリングしてPSボタンを押せばリンクできるようになっているので、このコメント編集をすることで①~③の作業を起動のたびにする必要が無くなります。
夢が広がる~。
L293Dを使ったモータードライブシールドも買ってあるのでやっと前に進めます。