お久しぶりです (-0-)/
このブログを開設してから最初の方は勢いがあったものの、最近は全然更新していませんでしたorz
やっぱり、当番制にして更新しないとダメなようですね....
間が開きましたが、ロボットの開発は着実に行ってます!!
今回は、ロボットをコントローラで動かせたらいいなぁ....と思って、
まずはコントローラをパソコンに繋ぐ方法を調べてやってみました!
相変わらずぐーぐる先生の素晴らしさを知った今日この頃でした。
それでは、本題に入ります。
尚、本記事を読んで行われた処理や事故に対し、
当方は一切の責任を負いませんのであらかじめご了承ください。
★開発環境
・パソコン
OS Linux Ubuntu 12.04 LTS 64bit
Kernel 3.8.0-37-generic
・Bluetooth (受信機)
Logitech 株式会社 LBT-UAN04C2BK
・コントローラ
PlayStation(R)3 DUALSHOCK3
★手順
そもそも、パソコンとコントローラを繋ぐには方法が二つあります。
それは、有線で繋ぐ方法と無線で繋ぐ方法です。
何を当たり前のことを...と思うかもしれませんが、設定の大変さが全然違うので、
まずは有線のやり方から紹介します。
・有線で繋ぐ場合
USBポートにコントローラをぶっ挿す。
以上です。めっちゃ簡単です。
因みに、ちゃんと認識しているかは、
/dev/input/js0 (他にもコントローラとか挿さってたら、js0->js1 or js2 ...etc)
があれば認識できてます!
有線で繋ぐのはめっちゃ簡単でしたね。
でも、ロボットを"無線"で動かすことに意義があるんです。もう少し掘り下げましょう。
今回使用したPCには残念ながら内臓のBluetoooth受信機が無かったため、
上記のような受信機をUSBポートに挿して 使用しています。
送信機にあたるコントローラはPlayStation(R)3のコントローラを使用しているため、
Bluetoothでの通信が可能です。
さて、ここまで準備ができたら、必要なライブラリを入れていきましょう!
まず、Bluetoothの使用環境を整えます。
$ sudo apt-get update
$ sudo apt-get install bluetooth bluez-utils bluez-compat bluez-hcidump
$ sudo apt-get install libusb-dev libbluetooth-dev
できたら、BluetoothモジュールをUSBポートに挿して、(Bluetooth の電源を入れて)
次のコマンドにより、Bluetoothが起動していることを確かめましょう。
$ /etc/init.d/bluetooth status
確認できたら、今度はコントローラの認識環境を整えていきましょう!
$ sudo apt-add-repository ppa:falk-t-j/qtsixa
$ sudo apt-get update
$ sudo apt-get install sixad
ここまでできたら、ペアリングと呼ばれる、
通信の際の機器のアドレス設定的な事を行います。
方法は、まずコントローラをパソコンにUSBで繋ぎ、以下のコマンドを実行します。
$ sudo sixpair
ここで、以下のような結果が帰ってきたらペアリング成功です!
失敗したと言う方は、エラーコードでググってみてください。
するとQtAxiAのFAQサイトにひっかかると思うので、
それぞれの指示にしたがってください。
Current Bluetooth master: xx:xx:xx:xx:xx:xx
Setting master bd_addr to: xx:xx:xx:xx:xx:xx
この設定は一度うまくいったらあとはする必要はありません。
ここまでできたら、もうあと少し!
以下のコマンドを実行し 、パソコンからコントローラを外して、
PSボタンを押してください!
$ sudo sixad --start
実行したら、PSボタンを押すように指令が出ますので、確認後押してください。
コントローラがブルブルっと震え、
4つのLEDのうち、どれか1つだけが光ったら成功です。
おめでとうございます!!!
一応、/dev/input/js0 が認識されているか確認しておきましょう。
因みに、終了したいときはCntrl+Cで終了します。
さらに、次回以降、パソコンの起動時に、接続を行いたいときは、
$ sudo sixad --boot-yes
と入力しておけば、おっけいです。
★ おわりに
一通り説明しましたが、間違いも多々あるかと思います。
何か間違いを発見した方は、是非、コメントにてお知らせください。
次回は、接続したコントローラの情報をC言語を用いて取得する記事を書きます!
★ 参考サイト
工作と小物のがらくた部屋 様
ask Ubuntu 様
0 件のコメント:
コメントを投稿