手持ちのBTモジュールでロボゼロを動かしてみた(8):SBDBT編(Wiiリモコン)
先日「SBDBTのロボゼロ無線コントロール対応ファームがβ公開!」で書いたように、WiiリモコンまたはWiiクラシックコントローラでもSBDBTを使ってロボゼロを動かせるように対応してもらいました
●Bluetoothアダプター、基板、装着、費用
Bluetoothアダプター、基板とその装着、そして費用に関しては、PS3コントローラーのSIXAXIS / DUAL SHOCK3を使った場合と同じです。以下のリンク先を参照にして下さい。
●ファームについて
Wiiリモコンでロボゼロを動かす場合は、これまでに公開されていた「Wiiリモコン通信ファームウェア」の最新版(ver.12.0920β)を使います。ランニングソフトウエアさんのページのサポートページからダウンロードできます。
SIXAXIS用のファームと同じ様に、ロボゼロの無線接続ポートに対応する拡張低速シリアル通信(RCB-3)に準拠する信号に変換し、2400bpsでSBDBTの7番品のTXから送信されるようになっています。
ソースのglobal.hで
- 送信受信信号極性の反転
- 1+2同時押しで接続/蓋の中のSYNCボタンで接続
- INQUIRYでWiiリモコンを探す/INQUIRYをやめWiiリモコンからの接続を待つ
- コアボタン/コアボタンと加速度センサー
- I/Oで送信/シリアルで送信/シリアルRCB-3プロトコル
- 送信タイミング
- 連続送信時 ニュートラル位置のデータの抑制
- 電文の周期に制限がある場合
- ニュートラル位置のデータのみ追加で送信するパケット数
- 縦持ち/横持ち
- 加速度センサの値の倍率
- wiiリモコン加速度センサのデッドゾーン設定
- クラッシックコントローラーのアナログデッドゾーン設定
といった設定の変更ができます。
とりあえず、私は、以下の設定でクラシックコントローラで使ってます
- UART1
BAUDRATE1 2400 - 送信信号極性 0:通常 1:反転
UART1_TX_POLARITY 1 - wiiリモコンのレポートモードを設定(拡張機器なしの場合)
0x30:ボタンのみ 0x31:ボタンと加速度センサー
WII_REMOTE_REPORT_MODE 0x30 or 0x31 - Wiiリモコンの状態をIOで送信するかシリアルで送信するか
0:I/Oで送信 1:シリアルで送信 2:シリアルRCB-3プロトコル
SERIAL_TRANSFER 2 - シリアルの場合の送信タイミング
0:連続送信 1:前回のデータと差があったときのみ
SEND_ON_DIFFERENT_DATA 1 - 電文の周期に制限がある場合
0:なし 1以上:1電文あたりの最低時間(ms)
UART1_MINIMUM_INTERVAL 0 - Wiiリモコン加速度センサのデッドゾーン設定
WII_REMOTE_ACC_DEADZONE 25 - クラッシックコントローラーのアナログデッドゾーン設定
WII_CC_ANALOG_DEADZONE 25 - 送信方法パラメータ(RCB-3プロトコルの場合のみ関係あり)
連続送信時 ニュートラル位置のデータは
0:連続送信 1:連続送信を抑制する
NEUTRAL_DATA_SUPPRESS 1 - ニュートラル位置のデータのみ追加で送信するパケット数
0:追加なし 1以上:追加パケット数
NEUTRAL_ADDITIONAL_PACKETS 0
●対応コントローラ
現在対応のコントローラは以下になります。
Wiiリモコンの方はプラスである必要はありませんので、2000円程度で買えます。クラシックコントローラはPROだとグリップが付いているので凄く使い易いですが、ver120920では書換えが少々必要になります。
- Wiiリモコン(プラス):2000〜3500円程度
(プラスも動作確認済み) - Wiiクラシックコントローラ(PRO):1600円程度
[追記]:PROにも対応したver120924βが公開されましたver120920β版でPROを使う場合は、main.cの644行目の、
hid_report[ 7]==0x00
を
((hid_report[ 7]==0x00) || (hid_report[7]==0x01))
に変更する必要があります。
※クラシックコントローラのID=00 00 a4 20 01 01
※クラシックコントローラPROのID=01 00 a4 20 01 01
になります。
●ペアリング
ロボゼロとSBDBTのペアリングは、WII_REMOTE_CONNECTION_SYNCとMODE_NO_INQUIRYの設定で変更はできます。
- ロボゼロを起動します。1〜2秒待って、
- Wiiリモコンの
と
のボタンを同時押します。
- 3〜4秒たつと点減していた4つのLEDが、順に点灯するようになります。
- これでペアリング完了です。
●動かしてみる
クラシックコントローラーPROを使って、実際に動かしているところを少しだけムービで撮りました。
さて、今回はこんなところでおしまいにします
(過去に書いた関連ブログ)
- Bluetooth通信モジュールとして使える「SBDBT」を買いました
- 手持ちのBluetoothアダプターをSBDBTに挿してみた
- 手持ちのBTモジュールでロボゼロを動かしてみた
- SBDBTのロボゼロ無線コントロール対応ファームがβ公開!
- VS-C2 for Android でロボゼロを動かしてみた
- 拡張低速シリアル(RCB3)信号について
----------------
にほんブログ村
| 固定リンク
「週刊 ロボゼロ」カテゴリの記事
- 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)
この記事へのコメントは終了しました。
コメント