2008年9月14日日曜日

第23回 最新版のUbuntuでWiiリモコンを使う方法

2007/12/06まで済み


=============================
 最新版のUbuntuでWiiリモコンを使う方法
=============================

最近は、出版社からの原稿依頼、某雑誌の取材への対応など意外
な仕事が舞い込んで、忙しい日々が続きました。

やっと一段落して、あとは発売を待つばかりの状態です。

さて、今回は、Wiiリモコンをマウス代わりに使う方法です。
Fedoraについては、まだFedora8で試していないので、今回は
省略します。

Linux100%の原稿のやりとりの中で、この件についての問い
合わせがあり、改めてGustyで試したときに書いた記事が
下記のものです。


ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
参照記事:2007年11月02日

 Ubuntu GutsyでWiiリモコンを使う方法
 http://blog.livedoor.jp/vine_user/archives/51167140.html

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー

============================
 Wiiリモコンで何ができるのか?
============================
一言でいうと、マウスで出来ることはほとんど出来ます。
ボタンの割り当ては変更可能ですが、初期状態では次のような
割り当てになっていると思います。

 Aボタン=左クリック
 Bボタン=中クリック
 十字ボタンの上ボタン=upスクロール
 十字ボタンの下ボタン=downスクロール

上記の記事と比べると、右クリックがありませんね。これは、
はじめ右クリック
が効かなかったため、記事の中では
/etc/X11/xorg.confのSection "InputDevice"の部分
に、次の行を加えて右クリックが使えるようにしているからです。

 Option "Emulate3Buttons" "true"

ここの部分は、いろいろと調べて解決方法を見つけたんです。

マウス代わりに使って何が面白いのかと思われるかも知れま
せんが、プレゼンテーションなどで遠隔操作できるという利点
があります。知人の情報では、実際に学会で利用している人が
いたそうです(おそらくWindowsで)。

個人的には、Beryl(CompizFusionの前身)をWiiリモコンで操作
しているYouTube動画があり、試してみたかっただけですが。


============================
 必要なもの
============================
・Ubuntu GustyをインストールしたPC
・BlueTooth USBアダプタ
・Wiiリモコン (Wiiの本体は不要)
・赤外線LED2つ、LEDソケット2つ、電池ボックス2つ、配線
1m程度

BlueToothアダプタは、PLANEXのBT-01UDEという機種を使いまし
たが、Ubuntuで認識してくれればどのメーカーでも構わないと
思います。

最後の赤外線LEDなどは、Wiiリモコンに内蔵されている赤外線
センサを利用するときに必要なものです。
Wiiのセンサーバーの代わりに使います。

加速度センサを使う場合には必要ありませんが、実際に使って
みると、加速度センサはかなり使いづらいです。


============================
 Wiiリモコンを使えるようにする設定方法
============================
まず、BlueToothアダプタが認識されているかどうか、次の
コマンドで確認してください。
Gnomeパネルの右上の部分に青いアイコンが表示されていれば
問題なく認識されていると思いますが、念のため。

$ hcitool scan
Scanning ... ←この表示が出ればOK。

以前は、ドライバを個人的に配布しているサイトがあり、
そこからダウンロードしましたが、現時点では、Ubuntuの
標準リポジトリであるuniverseリポジトリに含まれています。
HDDにインストールしたUbuntuでは、最初から有効になっている
と思いますので、Synapticパッケージマネージャか、apt-get
コマンドで簡単にインストール出来ます。

$ sudo apt-get install libcwiid0 libcwiimote-0.2 wminput

【xorg.confの設定】
最後に、/etc/X11/xorg.confの内容を次のように変更します。

■ 次の6行を最終行に追加

Section "InputDevice"
 Identifier "Wiimote"
 Driver "evdev"
 Option "Name" "Nintendo Wiimote"
 Option "Emulate3Buttons" "true"
EndSection

■ Section "ServerLayout"の中に次の1行を追加

 InputDevice "Wiimote" "AlwaysCore"

これで、Xウィンドウを再起動すれば準備は終了です(ログイン
しなおすだけで構いません)。

【赤外線センサーを使って起動する】
次のコマンドで起動します。ただし、事前にセンサーバーの
代用として、赤外線LEDを用意しておく必要があります。
ディスプレイの上部か下部に15cmほど離して2つ並べ、ONに
しておいてください。

$ sudo modprobe uinput
$ sudo wminput -c ir_ptr

これで、次のような表示が出れば成功です。

Put Wiimote in discoverable mode now (press 1+2)...

この記述内容にしたがって、1ボタンと2ボタンを同時に
押し、Wiiリモコンを動かせば、その動きに合わせてマウス
カーソルが移動するよう状態になっているはずです。


===========================
 編集後記
===========================
最後の$ sudo modprobe uinput の部分は、Wiiリモコンの
uinputというドライバを読み込んでいるんです。
前回の記事に関連したところです。


改めて、宣伝しておきますが…。
Linux100% vol.2が出ます。12月13日発売の予定です。

ブログにも書いたように、僕もGoogle関連とSecondLifeの
ページを担当しました。他のページに合わせた編集を加えて
いただいたので、もとの原稿と多少変更されていますが、
この部分に関しては僕の責任ですので、不明な点がありましたら、
下記の記事にコメントして下さい。

http://blog.livedoor.jp/vine_user/archives/51181462.html

取材を受けた某雑誌については、発売予定日だけ書いておきます。
12月25日発売の予定です。


次回の配信は、12月12日の予定です。お楽しみに!