シリアル通信で動かすのが億劫で放置していた週刊ロボゼロ3号のRS306MD-DCを触ってみました。
PWMで動かすこともできますが、折角のシリアルサーボなのでシリアルで動かしたいです。
ともかくIDとか通信速度とかの設定をPCからいじってやらないと使い物にならないのでVBでプログラムを書きました。
ROM用のデータを送ってからそれを書き込む命令を送って、1秒以上待つ。再起動。という流れが分かるまで苦労しました。
配布されてるサンプルプログラムはID設定だけで、通信速度設定のはありません。
このサンプルでは書き込みフラグと再起動フラグを同時に立ててまとめて命令送信していますが、これができるのはID設定だけ?で通信速度設定では出来ません。
再起動は1秒以上待ってからする必要があるのです。
ID設定には書き込み後の再起動は必要ではないが通信速度設定には必要、そしてもし書き込み後に再起動するなら1秒以上待たないといけない。
でもややこしいからROM書き込みをやるときには書き込み命令後に1秒待って再起動。
ということでいいのではないかと思います。
う・・・資料をじっくり読んだ人でないと分からない内容な気がします・・・。

IDや通信速度をいじっている間にどういう風に設定したか分からなくなってしまったサーボが出てきました。
IDと通信速度を合わせてやらないと通信できないので、サーボの中身も見られない。
なんというジレンマでしょう・・・。手動で設定を変えながら何回も送信したら反応してくれて、結局解決したんですが、忘れないうちにサーボ設定値初期化の記述も書かないと危ないなぁと思いました。

というか双葉が設定用のプログラム配布してないんですかね?
まぁ見つからなかったから自分で作ったわけですが。
あっても良い物でしょう。

そういえばほんとにサーボが動くか試しにコマンド送ってみたときにこのソフトを使いました。
http://kondo-robot.com/sys/archives/354
ま、実際これでサーボに命令するのはかなり面倒なんですけどね・・・。
でもシンプルで使いやすいと思いました。