« 『鍵泥棒のメソッド』を観てきました | トップページ | 最近買ったもの(2012/8/1〜31) »

手持ちのBTモジュールでロボゼロを動かしてみた(8):SBDBT編(Wiiリモコン)

先日「SBDBTのロボゼロ無線コントロール対応ファームがβ公開!」で書いたように、WiiリモコンまたはWiiクラシックコントローラでもSBDBTを使ってロボゼロを動かせるように対応してもらいましたpaper
20120922005217

●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リモコン加速度センサのデッドゾーン設定
  • クラッシックコントローラーのアナログデッドゾーン設定

といった設定の変更ができます。

とりあえず、私は、以下の設定でクラシックコントローラで使ってますhappy01

  • 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. ロボゼロを起動します。1〜2秒待って、
  2. Wiiリモコンのonetwoのボタンを同時押します。
  3. 3〜4秒たつと点減していた4つのLEDが、順に点灯するようになります。
  4. これでペアリング完了です。

●動かしてみる

クラシックコントローラーPROを使って、実際に動かしているところを少しだけムービで撮りました。

さて、今回はこんなところでおしまいにしますhappy01paper

(過去に書いた関連ブログ)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

|

« 『鍵泥棒のメソッド』を観てきました | トップページ | 最近買ったもの(2012/8/1〜31) »

無線(SBDBT)」カテゴリの記事

週刊 ロボゼロ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/221673/55707487

この記事へのトラックバック一覧です: 手持ちのBTモジュールでロボゼロを動かしてみた(8):SBDBT編(Wiiリモコン):

« 『鍵泥棒のメソッド』を観てきました | トップページ | 最近買ったもの(2012/8/1〜31) »