« RZ1Snaplist v0.1.0 公開 | トップページ | RZ1Snaplist v0.1.0 公開(ページ) »

ロボザックのラジコン(11)

なぜ、左スティックの左下が、0x80じゃないのか

なぜ、そんな単純なことに気がつかなかったのかと思うのですが、

ロボザックのラジコンで、プロポのスティックを倒した方向によって、「ロボザックのラジコン(3)」で、示した値が送信されていることを報告しましたが、これら、送信される数値を16進数で表すと、16進数の、一桁目が右スティック、二桁目が左スティックになっていそう(ロボザックのラジコン(7))だけど、

Omnigraffle_proscreensnapz002_2 Omnigraffle_proscreensnapz001_3

そうではありませんでした(ロボザックのラジコン(8))。実際には左スティックの左下が、上図と異なり、0x80でなく、0x09でした。なぜ、0x09なのかわからず、不良品じゃないかとも書きました。

ロボザックのラジコンは、パソコンとMR-C3024とを通信ケーブルで繋いで、プログラムの転送をしたり、ゼロ点設定をしたり、情報を取得したりするのと同じように、受信機とMR-C3024と通信を行っています。
Omnigraffle_proscreensnapz007

上図で、赤字がコマンドで、コマンドごとに値がきまっています。その後に続く青字がデータになります。例えば、B2 05は、SPEED値を5にするという意味になります。

さて、みなさん、ご存知の通り、ロボザックのラジコンの受信機が行っているのは、第一変数に値をセットすることですね。そこで、MR-C3024との通信で、どのようなコマンドを送ると第一変数に値をセットできるかを考えてみましょう

第一変数は、SRAMの0x140番地です。第一変数の書換えの方法は、以下の3種類のやり方があります(以下は第一変数を0x11にします)。

  1. F8 40 01 11F8: SRAM書換える)
  2. FF 11FF: SRAM 0x140番地書換える)
  3. 11(※後述)

ロボザックの受信機が実際に送っているデータは「ロボザックのラジコン(9)」から、単に値が送信しているだけでした。つまり、3番目の方法です。MR-C3024はある値を受け取るとその値をSRAMの0x140にセットする仕組みになっているんです。便利な仕組みですよね

という仕組みはRZ1Basicとか作ってて知ってはいたんですが、なんてことない当たり前なことをすっかり忘れてました基本的に1バイト目は、コントロールコマンドであり、そのコマンド値は、0x80以上の値をコマンドとして使っているんですよねははは

ということで、3番目の方法で扱える値は0〜127(0x7F)の値に限られるってことですねだから、ロボザックのラジコンのデータも、0x80を扱えない為、0x09を用いているんですね

-------------------------------------

  1. ロボザックのラジコン
  2. ロボザックのラジコン(2)
  3. ロボザックのラジコン(3)
  4. ロボザックのラジコン(4)
  5. ロボザックのラジコン(5)
  6. ロボザックのラジコン(6)
  7. ロボザックのラジコン(7)
  8. ロボザックのラジコン(8)
  9. ロボザックのラジコン(9)
  10. ロボザックのラジコン(10)
  11. ロボザックのラジコン(11)
  12. ロボザックのラジコン(12)
  13. ロボザックのラジコン(13)

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

|

« RZ1Snaplist v0.1.0 公開 | トップページ | RZ1Snaplist v0.1.0 公開(ページ) »

週刊 ロボザック」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: ロボザックのラジコン(11):

« RZ1Snaplist v0.1.0 公開 | トップページ | RZ1Snaplist v0.1.0 公開(ページ) »