サーボモーターを動かすときのタイマカウンタの使い方について、頭を整理しています。「脳を鍛える」って感じ。
今のところの理解では、同じポート(今回はPORT C)で8個のモーターを動かす場合、
- 1個のサーボモーターについてのパルス周期20msecを短くする
RCB-1のコマンドリファレンスでパルスの繰り返し周期8〜20msec程度とあるので、KONDO製RED Versionは8msecでも動くと思われる。これを活用したい。 - 設定値1あたりの角度量を1.6°よりも細かくする
ROBO-ONEの足裏規格を意識すると、バランスを取るのにもっと細かい角度設定が必要という気がする。
ことが、3つあるタイマカウンタ(8bitが2つ、16bitが1つ)でできるけど、同時には実現できない・・・ということかなー。
■以下、メモ:
- は、最大のパルス幅が2.4msecなので、2つのタイマカウンタだけ利用の場合は、サーボモーター8個を2.5msecずつずらして1個が20msec周期、というのが限界。
余談ですが、この方法を最初に考えた人は、すごいな。
もう1個のタイマカウンタを加えれば、同じタイミングで2個のサーボモーターを動かせる(それぞれのパルス幅の設定ができる)ので、サーボモーター4個で2.5msecずつずらして1個が10msec周期が2つという形にできる・・・はず。
ただし、もうサーボモーターは増やせない。 - は、パルス周期は2.5msec単位で数えればよいとなれば8bitカウンタで可能になるので、パルス幅を16bitカウンタで作ればできる・・・はず。
ただし、同じタイミングで2個のサーボモーターは動かせなくなる(設定値1あたりの角度量が2種類で良ければ可能だろうけど)。
設定値1あたりの角度量がヒザだけ2倍というのは、ありかもしれない・・・。
1.と2.のどちらをとるか、どういうロボット作るか考えないと、決められませんね。
コメントする