4, 5年くらい前から、WiiリモコンあるいはバランスWiiボードを Bluetooth経由でWindows PCに接続し、 センサとして利用したりしている。
しかしその利用において、(巷の解説では) PCの電源を入れ直すたびに、あるいは電池を入れ直すたびに、 ペアリングをし直さなければならないように書かれている。 ペアリングのし直しは、「(PCで)bluetoothデバイス表示」 「(PCにもし残っていれば、以前の)デバイスの削除」 「(PCで)デバイスの追加」 「(リモコン側で)蓋を開けて赤いボタンを押す」 「(PCで)デバイスの選択」等々と結構手間である。 最初の一回はともかく、 使う日に毎回これを行わなくてならないのは、 面倒すぎると思われる。
そこで、(一回も使ったことはないのだが、話に聞く) Wii本体とWiiリモコンの場合と同様に、 リモコン側の任意のボタンを押すと接続が 再開されるようにしたいと考えた。
WiiBrewのWiimoteのページ を見れば書いてあるのだが、 ペアリングの際にPINとして、MACアドレスを与えると良いらしい。 しかしながら普通のBluetoothスタックでは、 PINはキーボードから入力するものであるため、 MACアドレスの様に表示できる文字以外の情報があるとお手上げになってしまう。
そこで、プログラムでBluetoothスタックをコントロールすることで、 MACアドレスをPINとしたペアリングを行えるようにした。
基本自分の環境でしか試していないため、 他人の環境で動作することを一切保証しない。
(注意)一番下の「追記」に、
多少改修したプログラムがあるので、
そちらを使ったほうが使いやすいかと思う。
ここにあるソースコードをダウンロードし、
展開後、Visual Studioで読み込んでビルドする。
一応ビルドしたもの
ここに置いておくが、やはり動作の保証はしない。
最初の一回だけ以下の手順でペアリングを行う。
このプログラムで一回ペアリングを行えば、 プログラムは不要となり、 2度とペアリングしなくても良いはずである。
ただ、ペアリングではドライバのインストールが行われるのだが、 Windowsのドライバのインストールが遅すぎて、Wiiリモコンが タイムアウトしてしまうことが多々ある。一回だめでも複数回トライするとよい。
WiimoteLibのサイト に行くと、サンプルプログラムを含むライブラリがダウンロードできる。 これをダウンロードして、展開後サンプルプログラムを動かせば、 WiiリモコンもしくはバランスWiiボードからデータがPCに 来ていることを確かめられる。
上記の「使い方」の通りにして、ペアリングした後、 WiimoteLibのサンプルプログラムを起動して、 つながっていることを確かめる。
その後、PCを再起動しても、 Wiiリモコンの任意のボタン、あるいは バランスWiiボードの手前のボタンを押すだけで再接続が行われる。 WiimoteLibのサンプルプログラムで確かめると良い。
プログラムそのものは結構前に作ったのだが、 整理などをしておらず、公開が遅くなってしまった。 そのため、はやりの時期を外れてしまったことは否めないが、 まれにならここの記述が役に立つ人もいるのではないかと思われる。
やっていることはあまり変わらないが、ボタンなどの構成を変更した wiipermpair2を作成した。 ソースコードはここにあり、 Windows8.1(64)で コンパイルしたバイナリはここにある。
「Bluetoothデバイス一覧の更新を自動で行うようにした。」 「wiiリモコン・バランスボードの電源が切れるdisconnectボタンをつけた」 「ペアリングを自動で行うモードを付けてみた」などの違いがあるが、 これを使いながら他のソフトを使ってみたことはないので、 そのあたりがちゃんと動くかどうかは無保証である。
基本的な使い方は、プログラムを起動してから、 リモコン・バランスボードの赤いボタンを押すと、 そのうち一覧に名前・MACアドレス・ボタンの行が出てくるので、 もう一度リモコン・バランスボードの赤いボタンを押してから プログラムの「pairing」のボタンを押してしばらく待つというものである。 しばらく待って「disconnect」の表示が出ればOKで、 待っても「remove」の表示しか出なければ、 「remove」ボタンを押し、消えてからもう一度。
(2013/4/26作成)
(2015/2/4更新)