経緯
Wiiリモコンやヌンチャクは安価に手に入る高機能デバイスだ。活用の幅は広いと思っている。2年前は大学の部活でWiiリモコンを使ったプロダクトの開発を計画していたが、コロナが原因でポシャってしまった。
当時はプレゼン用リモコンを作ろうとしていた。Wiiリモコンの通信にはBluetoothを用いているので、PC側にBluetooth機能と専用の通信アプリケーションが必要となる。
汎用性を求めるとPC側に制約があるのは綺麗じゃない。規格化されているHIDデバイスとして見せかけ、USBを差すだけでマウスまたはキーボードとして認識・動作することを目標とした。
またWiiリモコンはBluetooth周りが調査不足なので、手始めにマイコン(Pro Micro)でヌンチャクをUSBマウスとして実装した。
参考資料
ヌンチャクのコネクタ
Pro Microのピン
プログラム
実装
必要なもの
プログラムの動作確認
開発環境はArduino IDEを選択した。
Pro Microとヌンチャクを繋げ、ボタンやジョイスティックのデータを取得できるか確認する。コネクタは上記の資料を参考にSDA, SCL, VCC, GNDを接続、ヌンチャク側はヌンチャクアダプタを利用しているがジャンパーピンを直接挿しても動作する。
スケッチはGitHubで公開している。ヌンチャクとの通信部分はtodbot/wiichuck_adapterを参考にした。
ヌンチャクの分解
裏側2箇所のねじを外すとケースの裏蓋が取れる。
ケーブルは以下の対応。
赤 | VCC |
白、黒 | GND |
緑 | SDA |
黄 | SCL |
ケーブルを切断してPro Microとはんだ付け。
カッターナイフでケースの内側を一部削ってPro Microを縦に収納した。またUSBケーブルもコネクタ周辺の樹脂部分がネジ穴と干渉したため同様に削っている。
蓋を閉じてネジ止めすれば見た目はいいかんじになった。(アイキャッチ画像参照)
動作
USB接続するだけでマウスとして動作する。ジョイスティックでカーソル移動、Cボタンで左クリック、CボタンZボタンを押していたら右クリック。Zボタンを押している間はスクロール。
プログラムもUSB経由で書き込めるので楽。楽しい。
コメント
すげえ、真似してみたいです