メイカーズ塾に差し入れして頂いたのは、近藤科学のKHRシリーズの二足歩行ロボット。差し入れ頂いた方のご子息が、かつて学習したと言うこと。ロボットの関節の動きはサーボモータで制御されているので、サーボモータがたくさん差し入れられたという次第。
手元にお借りしているのは、KRS788HVという型番が付いたモータ。さっそく、サーボモータの仕様を調べてみようとインターネットをググってみた。しかし、制御のための詳細な仕様がいくら探しても見つからない。う~~~む、困った。
仕方ないので、実際にデータを入れてみて、どんな動きをするか確認して、仕様を推定してみよう。
Arduinoのプログラムはこんな感じ。
半固定抵抗の値を読んで、それをサーボへの制御信号としてPWMに出力するというもの。現在のPWM値をPCのモニタに表示することで、PWM値とサーボの動作が検証できる。これで、ばっちり。。。。と安易に考えていたら、そうは問屋が卸さない。
PWMを0から徐々に大きくしていくと、最初は反時計回りに少し回る。その後、しばらく泊まっていて、値が33になると、ホームポジションにリターンする。更にPWMを大きくしていくと、88から時計回りに回り始め、255で160°くらいまで回る。しかし、180°まではどうしても回らない。おかしいなぁ。このサーボは160°までしか回らない仕様か?
次に、ダメ元でArduinoのサーボライブラリを使ってみた。これは、市販されている一般的なサーボモータに合せて初期値が設定されているが、基本はここのサーボのしように合わせて初期値を上書きするもの。とりあえず、しようが不明なので、初期値のまま動かしてみよう。プログラムはこんな感じ。
ところが、これまでの苦労はウソのように、仕様不明のサーボモータは0°から180°までスルスルとスムーズに動くではないか。何じゃ、このあまのじゃくは。。。。イラッ
塾生の前で偉そうなことをぶっている立場とあっては、こういう事象に知らんぷりして、さも当たり前のように正しく動くプログラムを提示すればよいと言うこそくな手段でごまかすことはできかねる。
さあて、どんな動作をしているのか、調べてみなければなるまい。
サーボの世界は、予想外に深いのかもしれない。