あれこれ考えてみる(原点を見直してみる...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で簡単にできるように機能を設けましたので、ご興味のある方はお使い下さい。
ということで、今回はここまで
つづく。。。
----------------
にほんブログ村
| 固定リンク
「工作・改造・解析」カテゴリの記事
- Maker Faire Tokyo 2014 に行ってきました(2014.12.14)
- ワイヤーストリッピングゲージ(2014.06.26)
- Arduino関連の本を買いました(2013.09.04)
- Maker Faire Tokyo 2012 12月1-2日開催(2012.11.09)
- 5V対応SBDBTがついに発売開始!(2012.10.26)
この記事へのコメントは終了しました。
コメント