« RZ1Basic v0.49 公開 | トップページ | IF文の中のIF文 »

あれこれ考えてみる(原点を見直してみる...4)

さて、前回のつづきです。

【基本姿勢データ】
内蔵EEPROMの0x0FC0〜0x0FDFの32バイトに基本姿勢のデータの置き場があります。私のMR-C3024の、ここに記録されているデータを見てみたら、

FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

となっていました。もし、ここが基本姿勢(スタンダードポーズ)のデータならば、

644C915D 6464641E 50646464 641E5064
6464644C 915D6464 FFFFFFFF FFFFFFFF

となっているべきですね。実際に、MR-C3024の工場出荷状態では、そうなっていたのかもしれませんが、今となっては、わかりません。ただ、ここを書き換える様なコマンドまたはroboBASICからの操作があるのかというのも謎です。[追記]:忘れていました。INITコマンドで書き換えられますね

テンプレートでは、プログラムの最初に、以下のようなコードが書かれていますが、

-------------
GETMOTORSET
 G24,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0
'== motor power on  =============================

SPEED
 5
MOTOR
 G24
GOSUB
standard_pose
-------------

電源を入れた時に急激なモーターの動きを回避する為、GETMOTORSETを使うことを推奨しています(いたかと思いました)。GETMOTORSETは、「現在のサーボモーターの位置を読み込み、現在の状態を維持させる」コマンドです。つまり「電源を入れた時、どんな格好をしていようと、その格好でいなさい」というコマンドです。このコマンドを使う限り、内蔵EEPROMの0x0FC0〜0x0FDFの基本姿勢の値は意味をなさなくなるんです。むしろFFであることで、GETMOTORSETを使用してなかった場合でも、電源を入れた時の急激な動きが避けようとしているのかもしれません。ただし、GETMOTORSETを使う限り、内蔵EEPROMの0x0FC0〜0x0FDFの基本姿勢を無視している為、GOSUB standard_poseで基本姿勢にしてあげる必要がでてきます。

さて、もし、内蔵EEPROMの0x0FC0〜0x0FDFの値が、

644C915D 6464641E 50646464 641E5064
6464644C 915D6464 FFFFFFFF FFFFFFFF

となっていたなら、以下のように、モーターをオンにするだけで、基本姿勢になります。

-------------
'GETMOTORSET G24,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0 
'== motor power on  =============================
SPEED
 5
MOTOR
 G24
'GOSUB standard_pose
-------------

内蔵EEPROMの0x0FC0〜0x0FDFの値の書換えを、RZ1Basic v0.4.9で簡単にできるように機能を設けましたので、ご興味のある方はお使い下さい。

ということで、今回はここまで

つづく。。。

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

|

« RZ1Basic v0.49 公開 | トップページ | IF文の中のIF文 »

工作・改造・解析」カテゴリの記事

コメント

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

トラックバック


この記事へのトラックバック一覧です: あれこれ考えてみる(原点を見直してみる...4):

« RZ1Basic v0.49 公開 | トップページ | IF文の中のIF文 »