Wiiリモコン(バランスボード)とWindows PCとの再接続の話

はじめに

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で読み込んでビルドする。

一応ビルドしたもの ここに置いておくが、やはり動作の保証はしない。

使い方

最初の一回だけ以下の手順でペアリングを行う。

  1. プログラムを起動する
  2. Wiiリモコンあるいはバランスボードの電池の蓋を開け、赤いボタンを押す
  3. プログラムのrefresh listボタンを押す
  4. プログラムの真ん中の一覧の中に、 "Nintendo"の文字で始まる行が無ければ、refresh listボタンを再度押す (あるいは2に戻る)
  5. プログラムで表示された"Nintendo"の文字列を含む行をクリックする
  6. リモコンあるいはバランスボードの赤いボタンを押す
  7. プログラムのpairingボタンを押す
  8. しばらく(30秒くらい?)待って、refresh listボタンを押す
  9. Nintendoの行の最後が、「auth:True, Conn:True, rem:True」に なっていたら、OKなのでおしまい。そうでなければ、失敗なので、 2に戻る。

このプログラムで一回ペアリングを行えば、 プログラムは不要となり、 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更新)