Wiiリモコンを使おう

こんにちは。とうとう夏休みです。今年から夏休み中に教室が借りられなくなったということで、6畳の狭い部室に部員がひしめき合っています。
今日は暑い室外に机を出してハンダ付けしてました。今日で人数少ない方なんで困ったものです。

Wiiリモコンを使ってなにか作ろうと思い、いろいろ情報を集めてみたので、備忘録として公開しておきます。

1.Wiiリモコンについて
Wiiリモコンは、中に三軸加速度センサと、Wiiモーションプラス、Wiiリモコンプラスには三軸ジャイロまで入っています。
接続はBluetoothなので、パソコンなどと簡単につなぐことができ、BluetoothHIDとして認識され、適切にプログラミングすればセンサやボタンの情報が読めます。

Wiiリモコンの種類:
一口にWiiリモコンと言っても幾つか種類があるらしい
i.初代Wiiリモコン
ii.Wiiリモコンプラス(初期型)
iii.Wiiリモコンプラス(現行機(2013年現在))Nintendo RVL-CNT-01-TR

AmazonでWiiリモコンプラスパックを購入したところ、3が届きました。

2.パソコンとの接続
BluetoothHID機器として認識されます。
WindowsでBluetooth機器を使うときは、スタックにマイクロソフト製、東芝製などの候補がありますが、RVL-CNT-01-TRは東芝製スタックでなければ上手く動きませんでした。
他の機種は確認できていません。
最初にマイクロソフトスタックで試したところ、一見すると接続がうまく行っているように見えて(デバイスマネージャにはしっかり表示される)、一部のコマンドしか受け付けてくれませんでした。
東芝のスタックはBT-MicroEDR1X(BTドングル)などに付いてくるものを使うか、サポート外ですが東芝のサイトからdynabook用のものをダウンロードして入手します。
この場合、試用版となり30日しか使用できないようです。

3.プログラミング
WiiリモコンのコマンドなどはWiibrewに掲載されています(英語)
ライブラリもいくつかあるようですが、開発が盛んだったのは数年前で、RVL-CNT-01-TRに対応しているものは少ないようです。
私はここのtiny_hid_dllを利用して作ることにしました。
名前から分かる通り、wiiリモコンに特化したライブラリではないのですが、今後マイコンに移植する可能性を考慮してのことです。
Wiibrewに載っていない情報としては、RVL-CNT-01-TRの場合、WiiモーションプラスのIDが0000 A420 0405ではなく0100 A420 0405になっています。
-TR対応を謳ったサンプルプログラムの中には、WM+の確認に0000の方を利用しているものもあるようで、RVL-CNT-01-TRからジャイロセンサーの情報を読み取れない場合があります。

以上を利用して、自分が使おうとしている最低限の機能だけ実装した簡単なソフトを作ってみました。
wiimote

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中