我第一次看到如何将Wiimote和Wii Balance Borad与电脑连接的介绍是在Google工程师Matt Cutts的博客上看到的。Matt虽然在博客上写得很详细,但随着时间的推移,不管是Wii还是Wiimote及Balance Board的驱动程序都有了很大的改变,甚至Linux的升级也使Matt的这份教程显得有些过时,有必要进行一下更新。
1.关于Wii的外设
所有Wii的外设,不管是Wiimote还是Balance Board,或者其他什么东西,都是由一大堆传感器加上一个蓝牙模块组成的。所以,只要有合适的驱动程序,Wii的这些外设可以和任何支持蓝牙的电子设备连接,比如电脑、手机、iPhone、iPod。详细的解释可以参考http://wiibrew.org上的文章。
2.如何连接
2.1 理论上Wii的外设与电脑连接在Windows和Linux上都可以完成,这完全取决于驱动程序。我找到的驱动程序有两个:一个是cwiid,运行在Linux上,支持所有Wii的外设;另一个是wiiuse,支持Windows和Linux两种平台,但不支持Wii Balance Board。不过,TU Delft曾为wiiuse补上了在Linux下对Wii Balance Board的支持。我用的是cwiid,安装在ubuntu 9.10上。
2.2 按照Matt Cutts的博客上的文章《Talking to a Wiimote in Ubuntu 8.10》完成Wiimote的安装。
2.3 打开Matt Cutts的博客上关于Wii Balance Borad的文章《Use a Wii Balance Board with Linux》做为参考。
2.4 下载cwiid。cwiid的网站是http://abstrakraft.org/cwiid/,但是连接不太稳定,速度也很慢。作者也已经把源代码放到github.com上托管了。
2.4.1 在ubuntu的程序包管理器中找到git程序并安装。
2.4.2 创建一个叫wii的文件夹用来保存将要下载的cwiid程序。
2.4.3 打开终端,进入wii文件夹,输入 git clone git://github.com/abstrakraft/cwiid.git。git程序会创建一个叫cwiid的文件夹,所以程序都保存在这个文件夹中。git的其他用法可以参考git的用户手册。
2.5 编译并安装cwiid。
2.5.1首先阅读cwiid的README文件。编译前先使用Ubuntu的包管理器获取所编译所需要的程序,
sudo apt-get install autoconf autogen automake gcc bluetooth libgtk2.0-dev pkg-config flex bison python-all-dev
sudo apt-get install libbluetooth-dev
2.5.2 编译及安装,在终端中输入如下命令:
cd wii/cwiid/
autoconf
aclocal
./configure
make
sudo make install
3. 截至到目前为止如果没有任何报错信息,那么Wii的外设应该说已经可以正常的和电脑连接了。cwiid的程序包中提供了一个实例程序,在wmdemo文件夹中,但这个demo程序并不支持balance board。要想在电脑上玩balance board还需要一个应用程序。
http://cid-89ad14bdc69639e0.skydrive.live.com/embedicon.aspx/.Public/wii/weighdemo.py http://cid-89ad14bdc69639e0.skydrive.live.com/embedicon.aspx/.Public/wii/scalesgui.py
weighdemo是一个简单的单线程命令行程序.
scalesgui.py是一个图形界面程序,须要pygame的支持.由于python 2.6与2.5的差别比较大,在安装python 2.6的情况下运行scalesgui.py需要到pygame的网站上下载pygame1.9.1的源代码,自己编译并安装后才可以使用