ブログパーツUL5

SERVOコマンドは変数が使える!

 今までMOVEコマンドを使っていたので、サーボ動作に変数は使えないと思っていました。しかし、コマンド説明書をよく調べたら、SERVOコマンドは変数が使えることがわかりました。

 そこで、手で物を掴むモーションを試行錯誤しておりますが、なかなか思うようにうまくいきませんが、サンプルモーションを作っていました。

 一旦、物を掴んだ時のサーボの回転角を覚えておき、物を外してその覚えた回転角にもう一度セットするように動作します。なお、手のサーボの回転角の範囲は60から140と狭いので、サーボが壊れないようにリミットを設定しておきました。回転角の変化がないか過電流を検知して、if文を抜け出るようにしたいのですが、まだ完成しておらず今後の検討課題です。

追伸:物と握り直す時のモーションを少し変更しました。なぜ握り直すかは間違って指などを挟んだ時にすぐ放すようにすることと、サーボモータに過電流が流れないように握る力を緩くすることで、サーボに過電流が流れず熱くなることがありません。

'================================================
left_hand:

'-- SETTING & MOTOR LIMIT --
DIM A as BYTE
DIM B as BYTE
'$limit 9,60,140

SPEED 7
MOVE G6B,160, 30, 80, 60, 100, 100
WAIT

FOR i=1 TO 20
A = i*4+60
SERVO 9,A
DELAY 20
B=MOTORIN(9)
B=B-2
NEXT i

MOVE G6B,160, 30, 80, 80, 100 ,
DELAY 2000
SERVO 9,B
DELAY 1000
MOVE G6B,100, 30, 80, ,

RETURN
'================================================
0

    コメント
    miconoです。

    v2.5のころだったと思うので、変更になった部分もあるかもしれませんが、以前、引数に何が使えるかまとめたので、参考にしてみて下さい。

    http://micono.cocolog-nifty.com/blog/2008/02/robobasicdim_co_b5db.html

    ちなみに、変数可のものは、定数も、数値も可、定数可なものは、数値も可です。
    • micono
    • 2008/11/03 6:36 PM
    miconoさん、いつも情報有難う御座います。

     《コマンドと変数/定数/数値》の一覧表は便利ですね。今後、利用させてもらいます。

     モーションを作る時には、SPEEDコマンドとかMOVEコマンドなどを多用するので、MOVEコマンドなども変数が使えると嬉しいのですが。今まで、SPEEDコマンドやDELAYコマンドは変数を利用していましたが、SERVOコマンドで変数が使えることがわかり、これは利用価値がありそうです。

     変数を利用しないサーボは、MOVEコマンドで変数を使いサーボをSERVOコマンドと組み合わせれば、MOVEコマンドのカバーができそうです。
    • takuo
    • 2008/11/03 8:02 PM
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
    << September 2020 >>