【要約】Joy-Con 2/Joy-Con の Bluetooth の仕様に関する情報を少しメモする(+ 特殊なコントローラーなどの余談) [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者がJoy-ConシリーズをNintendo Switch以外のデバイスで利用しようとする際、通信プロトコルの違いによる互換性の問題に直面する。具体的には以下の課題がある。
- ・通信規格の不一致:Joy-ConはBluetooth Classicを使用するが、Joy-Con 2はBLE/GATTを採用している。
- ・ハードウェアの制約:ESP32-S3のようにBLEのみ対応するチップでは、従来のJoy-Conを制御できない。
- ・APIの機能差:ブラウザで扱う際、Gamepad APIではJoy-ConのIMU(加速度・ジャイロ)データが取得できない。
// Approach
筆者は、各コントローラーの通信仕様に基づき、Web APIや組み込みライブラリを用いた制御手法を整理している。主なアプローチは以下の通りである。
- ・ブラウザ経由の制御:Joy-Con 2にはWeb Bluetooth APIを、Joy-ConにはGamepad APIまたはWebHID APIを適用する。
- ・PCでの実装:C++を用いた
joycon2cppやJoyConPlusPlusなどのオープンソースプロジェクトを活用する。 - ・組み込みデバイスでの実装:
NimBLE-Arduinoを用い、M5Stack等のESP32系デバイスで制御を試行する。
// Result
コントローラーの仕様に応じた、適切な通信プロトコルとAPIの選択指針が示された。これにより以下の成果が得られる。
- ・高度なセンサー利用:WebHID APIを用いることで、Joy-ConのIMUデータの取得が可能になる。
- ・適切なハードウェア選定:ESP32-S3ではJoy-Con 2を、従来のJoy-ConにはBluetooth Classic対応のESP32(Core2等)を用いるべきであることが明確化された。
- ・特殊デバイスの制御:ルーレットコントローラー等の特殊なHIDデバイスも、WebHID経由で制御可能であることが示された。
Senior Engineer Insight
> 通信プロトコルの違いがハードウェア選定に直結する点は、組み込み開発において極めて重要だ。Joy-Con 2がBLEへ移行したことは、低消費電力化やデバイスの多様化に寄与する。一方で、既存のClassic対応設計を見直す必要がある。WebHIDによるIMU取得の実現性は、WebベースのインタラクティブなUI開発において強力な武器となるだろう。プロトコルの差異を正しく理解することが、開発コストの抑制に繋がる。