ロボゼロの無線接続端子の拡張低速シリアル(RCB3)信号について
半年ほど前に書いたブログ
に書いた。
「RCBの制御信号がわかれば、お好みのタイプの無線(Bluetooth, zegbee, Wi-Fi, VS-C1+Arduinoなど)でロボゼロをコントロールできる」
に関してです
以前のブログに書いた
そして、みすみロボット研究所さんのブログに
RCB関連のことが書いてありますが、なかなかやれてなかったんですが、先日やっと、解析して、理解して、実際に動きを確認できましたので、簡単に書いておくことにします
●拡張低速低速シリアル(RCB-3)の信号
- 通信速度:2400bps
- パリティ:なし
- ストップビット:1
- 5V TTL を反転させたもの
ボタンと信号との対応(表記は16進数)
- 1バイト目:0x80固定
- 2−3バイト目:ボタン類
- 4−7バイト目:アナログスティック
- 8バイト目:チェックサム
↑: 80 00 01 40 40 40 40 01
↓: 80 00 02 40 40 40 40 02
→: 80 00 04 40 40 40 40 04
←: 80 00 08 40 40 40 40 08
△: 80 00 10 40 40 40 40 10
×: 80 00 20 40 40 40 40 20
◯: 80 00 40 40 40 40 40 40
□: 80 01 00 40 40 40 40 01
L1: 80 02 00 40 40 40 40 02
L2: 80 04 00 40 40 40 40 04
R1: 80 08 00 40 40 40 40 08
R2: 80 10 00 40 40 40 40 10
(Start): 80 00 03 40 40 40 40 03
(Select): 80 00 0C 40 40 40 40 0C
左アナログ左右: 80 00 00 XX 40 40 40 XX
左アナログ上下: 80 00 00 40 XX 40 40 XX
右アナログ左右: 80 00 00 40 40 XX 40 XX
右アナログ上下: 80 00 00 40 40 40 XX XX
●解説
- 1,2,4,8とは
定石なんですけど、1,2,4,8は、ビットで言えば1,2,3,4ビット目が1ってことなのね。だから、足しても問題ないってことです。複数ボタンを押した場合はそれらの値を足しても重ならないってことですね。例えば、「↑」+「→」は5ってことね。
- スタート、セレクト
↑と↓のボタンが同時に押せないので、3という数値(80 00 03 ...)はあり得ないので割り当てることも可能。同様に0Cに関しても同じ意味。
- ロボゼロのメモリーとの関係
2バイト目から7バイト目までの値が、メモリーのV120からV125に入るということね。下の図と合わせて考えてみて下さい。
- アナログスティックは
ニュートラルが0x40(64)で、0〜0x7F(127)の範囲
- チェックサムは下位7ビット
2バイト目から7バイト目までの合計の下位7ビット(最上位ビットは除外:1バイト目は0x80固定なので、足す必要がない)
- 3回送信する必要があるらしい?
VS-C1やKRC for Androidは、ボタンを押してなくても、常にデータを送り続けていますが、VS-C2 for Androidは、ボタンを押している時だけ送信されます。3回(同じ)データを受信すると認識されるという話もある。
ってな感じでしょうか
分かって頂けましたでしょうか?ね?
----------------
にほんブログ村
| 固定リンク
「週刊 ロボゼロ」カテゴリの記事
- 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)
この記事へのコメントは終了しました。
コメント