それではラピロにRaspberry Piを搭載した場合の作例として、PlayStation 3(PS3)用の無線コントローラー「DUALSHOCK3」でラピロを操作する方法を解説します。
ラピロはスマートフォンのブラウザーからでも動かせますが、それでは限界があります。PS3のアナログスティックを使えば、腕の向きを微妙に調整したりできます。腕の向きを固定しながら、「○」ボタンで物をつかむといった動作もできるでしょう。両手になじんだコントローラーで、自在にラピロを動かせます。
Bluetoothで通信
PS3のDUALSHOCK3は実はBluetoothで通信しています。ラピロにもBluetooth通信の機能が必要になりますが、簡単に実現できます。Raspberry PiのUSBポートにBluetoothアダプターを挿すだけです。Raspberry PiのUSBポートはラピロの後頭部の穴からアクセスできます。
今回はUSB対応のBluetoothアダプターとして、プラネックスコミュニケーションズの「BT-Micro3H2X」を使用しました。Class2の製品なので10メートル程度の範囲で通信できます。これをラピロに挿します。
ドライバ類をインストール
Raspberry PiをインターネットにつながるLANに接続して、まずBluetoothのドライバなどをインストールします。
$ sudo apt-get install bluez-utils bluez-hcidump checkinstall libusb-dev libbluetooth-dev joystick
インストールが完了したら、Bluetoothデーモンが起動していることを確認します(写真1)。「[ok] …」といったメッセージが出れば起動しています。もし起動していなければ次のようにして起動します。
$ /etc/init.d/bluetooth start
続けてBluetoothアダプターが正しく認識されているか確認します。hciconfigコマンドを実行すると、写真2のようにデバイス名、BD(Bluetooth Device)アドレス、実行状態などが示されるはずです(BDアドレスは固有の値)。
次に、Bluetoothのペアリングに必要なsixpairというツールを入手してコンパイルします。
$ wget "http://www.pabr.org/sixlinux/sixpair.c" -O sixpair.c
$ gcc -o sixpair sixpair.c -lusb
ここでペアリングをするために、1度USBケーブルでDUALSHOCK3とRaspberry Piを有線接続します。USBケーブルをつないだ状態でDUALSHOCK3のPSボタンを押してsixpairコマンドを実行すると、写真3のようなメッセージが出てます。ペアリングが終わったらUSBケーブルは取り外します。