それでは送られてきているデータの中身を確認してみます。各ボタンを押したときのデータが分かれば、後はそれとラピロの動作をひも付けることで、ラピロをリモートコントロールできるようになります。
コントローラーから送られてくる信号を16進数表記で8バイトずつ表示するPythonプログラム「sixad_test1.py」を図1に示しました。
$ sudo python sixad_test1.py
のように実行すると、写真1のような文字の羅列が現れます。
○ボタンを押してすぐに指を放し、その部分のコードを確認してみると、写真2のようになっていました。DUALSHOCK3は、ボタン、アナログスティック、加速度センサーに変化があると8バイトの信号を送信するようです。○ボタンを押した衝撃で加速度センサーの信号も送られてしまうので、純粋に○ボタンを押した瞬間と指を放した瞬間の信号を抜き出してみると、図2のようになっていました。同様に、×、□、△ボタンを押してみると図3の結果が得られました。
これらの信号を比較してみると、7~8バイト目がボタンの種類を表しているようです。7バイト目が01で、8バイト目が0C、0D、0E、0Fのときが、△、〇、×、□ボタンだと分かります。さらに5バイト目の01でボタンが押された、00でボタンが放されたことを示しています。