手持ちのBTモジュールでロボゼロを動かしてみた(7):SBDBT編(SIXAXIS)
SBDBTを使って、PS3のBluetooth無線コントローラー(SIXAXIS:シックスアクシス/DUALSHOCK3)によるロボゼロのコントロールを可能にしたので紹介していきたいと思います。
●SBDBTについて
「SBDBT」はランニングエレクトロニクスさんから出ているUSBコネクタがの付いたPICマイコン基板です。Bluetoothアダプタを装着すれば、簡単にBluetoothモジュールになってしまうという代物です。もっと詳しく知りたい方は、先日書いたブログ(Bluetooth通信モジュールとして使える「SBDBT」を買いました)、もしくは、ランニングエレクトロニクスさんのホームページをご覧下さい
●ファームについて
ロボゼロをSIXAXISでコントロールするために、SBDBTのランニングエレクトロニクスさんにお話を持ちかけたところ、ロボゼロの無線通信の拡張低速シリアル通信のRCB-3に対応したSIXAXIS用のファームが作れました
今回作ったSIXAXIS ロボ用ファームとは、分離して別に、SIXAXIS 汎用ファームも公開に向けて準備中だそうです。
※追記:汎用のファームはまだなんですが、問い合わせが多いとのことで、現在、ロボ用のファームがβ版として公開されています
「SBDBTのロボゼロ無線コントロール対応ファームがβ公開!」
SIXAXIS ロボ用ファームは、ロボゼロの無線接続ポートに対応する拡張低速シリアル通信(RCB-3:ロボゼロの無線接続端子の拡張低速シリアル(RCB3)信号について)に準拠する信号に変換し、2400bpsでSBDBTの7番品のTXから送信されるようになっています。
そして、global.hで、
- 送信受信信号極性の反転
- 送信タイミング
- 連続送信時 ニュートラル位置のデータの抑制
- 電文の周期に制限がある場合
- ニュートラル位置のデータのみ追加で送信するパケット数
といった設定が可能になっています。
●SIXAXIS ロボ用ファームを書込む
SBDBTは、購入時SPPサーバーのファームが書込まれているため、ファームを書き換える必要があります。
- PICKit3:3900円(ファーム書込み装置)
が必要になります。
- PICのコンパイラー(無料)をインストール
MPLAB Xを使って、マックでも書換え可能です。- MPLAB IDE (Win版のみ)
- MPLAB X IDE (Win&Mac版)
- ファームのダウンロード
- ランニングエレクトロニクスさんのサポートページから、「PS3コントローラー通信ファームウェア」をダウンロード
- MPLABで開く
- ダウンロードしたファームの中にある「sbxbt_ps3」をダブルクリックしてMPLABで開く
- global.hの中にある設定を書き換える
- 私は以下のように設定してます(画像はクリックすると大きくなります)。
- UART1
BAUDRATE1 2400
※拡張低速シリアル通信の通信速度は2400bpsです。 - UART1ハードウェアフロー制御 (0:なし 1:あり)
UART1_HW_FLOW 0
※6番ピンのRTSと9番ピンのCTSを使わない場合、ショートさせるか、フロー制御をなしにする。 - 送信信号極性 0:通常 1:反転
UART1_TX_POLARITY 1
※RCB-3は理論ONとOFFの値が反転した状態になります。もし反転の回路を作ってないならば、この値を1にする必要があります。 - シリアルの場合の送信タイミング
0:連続送信 1:前回のデータと差があったときのみ
SEND_ON_DIFFERENT_DATA 0 - 送信方法パラメータ(RCB-3プロトコルの場合のみ関係あり)
連続送信時 ニュートラル位置のデータは
0:連続送信 1:連続送信を抑制する
NEUTRAL_DATA_SUPPRESS 1 - 電文の周期に制限がある場合
0:なし 1以上:1電文あたりの最低時間(ms) - UART1_MINIMUM_INTERVAL 0
ニュートラル位置のデータのみ追加で送信するパケット数
0:追加なし 1以上:追加パケット数
NEUTRAL_ADDITIONAL_PACKETS 0
- 私は以下のように設定してます(画像はクリックすると大きくなります)。
- 「PICkit3」にSBDBTを付けて、コンピュータに繋げる。
※電源を供給させる必要があります。
MPLABの場合
MPLAB Xの場合 - 「Build All」で、コンパイルする。
or
- 「Program」で、ファームを書込む。
or
●Bluetoothアダプター
動作確認済みのアダプタはSBDBTのマニュアルに書いてあります。Classは1でも2でもどちらでも大丈夫だと思います。Versionは2,3,4で動作確認されているので、現在売っているものならほぼ大丈夫のように思います(※だからといって動作の保証には責任は負いかねますのでご了承下さい)。
なお、Ver.4はVer.3の上位モデルという訳ではないようで、もし、転送速度を求めるならVer.3を、省電力を求めるならばVer.4.0を選ぶとよいかと思います。
ロボゼロで使う場合は、拡張低速シリアル通信(2400bps)なので速度より、バッテリーを持たせたいので、ver4の方がいいのかもしれませんね。
●PS3ワイヤレスコントローラ
ご存知、SIXAXIS(シックスアクシス)/DUALSHOCK3はPS3用のBluetooth無線のコントローラです。色によって少しお値段が異なります。私はロボゼロ色の「赤」買いました
●基板
SIXAXIS for ROBOでは、信号の反転処理(する・しない)を設定できるようになっています。反転処理されていれば、電圧を変える回路だけを作ればよいことになります。
反転も必要だとチップじゃないと場所取りすぎるんですが、電圧だけならディップでも大丈夫。秋月の3端子レギュレータTA48M033F (100円)を使って作りました。これはコンデンサーも入ったセットになっているので便利ですよねそれとSBDBTを挿す為のシングルピンソケット(低メス)を使って、下の図の様に作りました。
繋げ方は、各自お好みでいいですが、参考までに基板の表と裏の写真を載っけておきました。クリックすると拡大してみやすくなります。
以下、書き出すときりがないんですが、回路を作る為に必要なもの書き上げてみました。
- TA48M033F:100円
- シングルピンソケット(低メス):60円
- ピンヘッダ(オスL型):50円
- 切れる基板
:〜3000円(※普通の基板は60円くらいから)
- 接続コード(10cm):420円(※差し替えが必要)
または、パーツから組み立てる- 3平行ビニール線:130円
- コネクタメス1列x3:420円
- コネクタ端子40個:630円
- 精密ねじDセット:230円(5袋も必要ないですがアマゾンだと:精密ねじDセット8個入りX5袋
)
- ピンバイス
- 防湿コーティング剤
:600円
- プリント基板フラックス
:600円
- フラックス洗浄剤
:436円
●装着
背面フレームカバーには4カ所にネジ穴が空いています。この穴を使ってM2X5のネジとナットで固定します。狭い空間に取り付けることになるので、できる限り低くする必要があります。
●PS3コントローラにBTアダプタのアドレスを登録
SIXAXIS/DUALSHOCK3などPS3のコントローラをPS3以外で使う為に、少々面倒な設定をあらかじめ行っておく必要があります。
- ※追記:SBDBT5V版の場合、パソコンを使わなくても、SBDBT5Vのみでアドレス登録が可能になりました(ps3用ファームver121127)ので、アドレスの登録は、こちらのページの手順を参考にして下さい。
通信相手の情報をコントローラに書込むような処理になります。通信相手とはSBDBTに挿すBluetoothアダプターになります。この設定はPCのMotionJoyというアプリを使って行います。
- MotionJoyをダウンロード&インストール。
- Windowsアプリです。マックを使っている方はParallels Desktop for Macなどの仮想マシンで行えます。
- MotionJoyのインストール方法などは、いろいろなサイトで紹介されていますので、ネットで検索し、そちらを参考に行ってください。
- 言語を日本語に変更しておくとよいでしょう。
- MotionJoyを起動。
- SBDBTで使うBluetoothアダプタをパソコンに挿す。
※マック+Parallels Desktop for Macでも認識させられますが、無線マウス&キーボードを使っているとBluetoothアダプタを挿した瞬間、切断されてマウス操作できなくなってしまうので、USBの優先の設定をParallels側に設定してからBluetoothアダプタを挿す必要があります。一旦切断しますが、数秒で復帰します。 - 登録させるPS3コントローラをUSBケーブルでPCに繋ぐ
- 「ドライバーマネージャ」を選択
- BTアダプターとPS3コントローラに相当する2つにチェックを入れて「Load driver」をクリック。
- (上の処理が成功したら)「Bleutoothペア」を選択
- BTアダプタとDUALSHOCK3が選択されてることを確認
- 「Pair Now」をクリック。アダプターのMACアドレスが、コントローラに設定されます。
- BTアダプタをSBDBTに装着。
- ロボゼロ電源オン。
- SIXAXIS電源オン。ペアリングが成功すると、LEDがひとつ点灯する。
●費用
ざっと費用を書き上げてみました
- SBDBT: 2980円
- TA48M033Fなどパーツ類:500円程度
- Bluetoothアダプター
:700〜1200円程度
- ワイヤレスコントローラ (DUALSHOCK3) ブラック
:4500円程度
3端子レギュレータとか定番のだし、アダプターもコントローラーも持っていれば、SBDBTの2980円で済んでしまうという、驚きの代物です
●動かしてみる
実際に動かしているところを少しだけムービで撮りました。
--------
--------
さて、今回はこんなところでおしまいにします。ファームウエアの公開、もうすぐだと思いますので、公開楽しみに待ってて下さいね
- 拡張低速シリアル(RCB3)信号について
- VS-C2 for Android でロボゼロを動かしてみた
- 手持ちのBTモジュールでロボゼロを動かしてみた
----------------
にほんブログ村
| 固定リンク
「週刊 ロボゼロ」カテゴリの記事
- Xcontroller 0.7.0 公開(2014.02.12)
- JO-ZERO2&ROBOXEROに対応した無線式送受信機JXB-1(2014.02.05)
- RCBController 1.0.0 公開(2013.09.28)
- 「SBDBT BLE for RCB」ファーム更新 (2013/9/23)(2013.09.24)
- 「SBDBT BLE for RCB with techBASIC」更新 (2013/9/23)(2013.09.27)
「無線(SBDBT)」カテゴリの記事
- SBBLEController 1.1.0 公開(2014.06.21)
- FirmaSBBLE(浜サブレー) 公開(2013.12.30)
- SBBLE(サブレー) I2C対応版 公開!(2013.12.25)
- 「Maker Faire Tokyo 2013」 来て下さい(2013.10.16)
- RCBController 1.0.0 公開(2013.09.28)
この記事へのコメントは終了しました。
コメント
ロボゼロの無線化について貴重な情報がありとても参考になりました。
今日、無事 SBDBT を使用して無線化に成功しました。
無線化の作業をしていて1点気になることがありましたので報告します。
HSWB-04F の受信機接続端子の pin配置 +5V と RxD が実際と逆になっているようです。
投稿: つぐ | 2012年10月 6日 (土) 17時02分
つぐさん
コメントありがとうございます。
RXではなくTXで、
TXは7番ピンです。
図が間違ってますかね?
いま外なので、いろいろチェックできないので
うちに帰ったら、見てみますね。
投稿: micono | 2012年10月 6日 (土) 17時24分
>図が間違ってますかね?
はい。 回路図の左(HSWB-04F側)の 3pinコネクタが違っていると思います。
赤(5V) と 黄色(RxD) が逆みたいです。
SBDBD側は問題ないです。
投稿: | 2012年10月 6日 (土) 22時12分
ただいま帰りました。
ありがとうございます。
チェックしてみました。
真ん中がシグナルですね。
ボードの絵が間違っているんですね。修正しておきます。
投稿: micono | 2012年10月 6日 (土) 23時09分