トップ «前の日記(2009/09/16(Wed)) 最新 次の日記(2009/09/18(Fri))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2009/09/17(Thu) Wiiリモコン+linux [長年日記] 1:30現在 21℃

_ [Ubuntu][Linux][プロジェクト実習][研究関係] UbuntuでWiiリモコンを使う

Bluetoothの環境を導入

以下のパッケージを導入。(最近のlinuxだと既に入っているかも)

■ bluez-utils

■ libbluetooth2

■ libbluetooth2-dev

■ python-dev

■ python-xlib

■ python-xlib-doc

■ python-bluez

■ gnome-bluetooth

■ PyBluez

自分のPCで試した時(2年前)は最後のPyBluezは下のサイトからソース(pybluez-src-0.9.2.tar.gz)をダウンロードして、展開・インストールした。

が、最近はpython-bluezが元々入っている模様。

http://org.csail.mit.edu/pybluez/download.html

 $ tar zxvf pybluez-src-0.9.2.tar.gz
 $ cd pybluez-src-0.9.2
 $ sudo python setup.py install

これでBluetooth USBアダプタの設定は終了。

きちんと認識されていれば、次のコマンドを実行すると、

 $ hcitool scan
 Scanning ...

という表示が出る。

ここで、Wiiリモコンを用意しておき「Syncボタン」を押すと、Macアドレスが表示される。

 $ hcitool scan
 Scanning ...

    00:19:1D:5E:6D:4F Nintendo RVL-CNT-01

このMacアドレスは後で使うので、メモしておく。なお、Macアドレスは固有のものなので、実際には上と違う値になっている。

ちなみに「Syncボタン」は、裏蓋の中の電池ボックスの右下にある赤いボタン。

Wiiリモコンのドライバを導入

必要なパッケージは下の4つ。

当時はdebからインストールしたが、今はapt-getで入れられるらしい。必要に応じてdevも入れる。

■ libcwiid0

■ libcwiimote-0.2

■ wmgui

■ wminput

xorg.confの設定

Xが正しく起動できなかったときのために、xorg.confのバックアップを取っておくこと。

まあ、別にxorg.confこれをせんでも動くときゃ動くがな!!

むしろ下手に手を出さない方が懸命かも(参考:http://d.hatena.ne.jp/sosuk/20090623/1245770678)

CUIでいじらないのが今の主流か・・・。

ま、せっかくだし一応書いとくが。

/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"

ただ、ディストリビューションによっては"ServerLayout"が無いっぽい。

その場合はおそらくこんな感じのを書き加えればいいはず。

Section "ServerLayout"

      Identifier     "Default Layout"
      Screen      0  "Screen0" 0 0
      InputDevice    "Mouse0" "CorePointer"
      InputDevice    "Keyboard0" "CoreKeyboard"
InputDevice    "Wiimote" "AlwaysCore"

EndSection

当然のことだが、 決して元々書かれていた部分は消さないように!

これでxを立ち上げ直せば(一度ログアウトするだけでいい)動くようになる。

最近のディストリビューションだと高確率で叱られるがな!!

Wiiリモコンを起動

以上の設定が済んだら、再起動して次のコマンドを実行。

 $ sudo modprobe uinput
 $ sudo wminput 00:19:1D:5E:6D:4F

ここではあらかじめ調べておいたMacアドレスを指定。

次のような表示が出たら成功!

 $ sudo wminput 00:19:1D:5E:6D:4F
 Put Wiimote in discoverable mode now (press 1+2)...

あとは表示にある通り、Wiiリモコンの1ボタンと2ボタンを押せば、リモコンの動きに合わせてマウスカーソルが動く。Aボタンが左クリックの役割。

自作プログラムの作成

libwiimoteのサイト(http://libwiimote.sourceforge.net)を参考にすれば、ライブラリを使って簡単に作れるよ!

最後に

更に突っ込んで使い人はココ(http://www.wiili.com/index.php/Main_Page)を見れば幸せになれるかも・・・