それではラピロに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] …」といったメッセージが出れば起動しています。もし起動していなければ次のようにして起動します。

写真1●Bluetoothデーモンの起動を確認
$ /etc/init.d/bluetooth start 

 続けてBluetoothアダプターが正しく認識されているか確認します。hciconfigコマンドを実行すると、写真2のようにデバイス名、BD(Bluetooth Device)アドレス、実行状態などが示されるはずです(BDアドレスは固有の値)。

写真2●Bluetoothアダプターが認識されていることを確認
写真2●Bluetoothアダプターが認識されていることを確認
[画像のクリックで拡大表示]

 次に、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ケーブルは取り外します。

写真3●sixpairコマンドの実行