n_shinichi’s blog

日々の備忘録、見直しせずアップするので誤字とか多し。(すみません、メニュー、リンク、カテゴリー分けがうまくできてません、★記事一覧★で見てください...) NHK魔改造の夜ではDンソーのベテランアドバイザーってことで出ました♪

MENU

シリアルサーボ STS3032 回転モードでは角度の取り方がわからない・・・ので

いろいろ調べてるけど、STS3032の回転モードでの絶対位置角度を

 読みだす方法がわからない。

なので、仕方ないのでとりあえずは、

止まった時にモードを標準のサーボモードに切り替えて角度を読み出し、

動き出した時には演算で角度を計算していくことにした。

 

やり方自体は何も難しくない。

 EEPROMのロックを解除して、モードを書き換えて、またロックする。

 この3行書くだけ 0 が標準サーボモード

                 st3032.unLockEprom(1);
                 st3032.writeByte(1, SMS_STS_MODE, 0);
                 st3032.LockEprom(1);

 これでPosition値が読めるので現在の角度位置を読んで・・・

 動き始める時その前に 3 の回転モードに戻す。

                 st3032.unLockEprom(1); 
                 st3032.writeByte(1, SMS_STS_MODE, 3);          
                 st3032.LockEprom(1);

 

これで気になるのはEEPROMの書き換えなんであまり頻繁にやると

傷むのかな?ってとこ。 説明書にはEEPROMとか出てくるけど実際の

モリーは何なんだろう。。。

それと、ROM書き換えはやっぱり時間が掛かる。ちゃんと測ってないけど

 0.5秒程度?くらいありそう。0.1秒ごとにROMモード書き換え読み出し

 やってみたら0.5秒程度ごとにサーボが一瞬止まる。。。

 

サーボの仕様範囲の負荷でストールさせたりしなければそれで短時間の間は

 十分角度はあまり誤差もなく扱えそうな感じ。

 

STS3032のいいとこはシリアルサーボでよくある

電流、温度、パワー(PWM%)等々の他に、バッテリーの電圧も

測ってくれるところ。 これけっこう便利。

電源、付けっ放しでどんな感じで減ってくのが簡単にモニタ出来ていい。



いろいろモニタしながら動かせるようにしてみたのがこちら。

 

 

保持モードにして回してやろうと力を入れると踏ん張り加減に応じたパワー値が

わかるのも何かと使えそう。

 

 

一旦これで暫定対策ってことで組み込んで動かす方をやってかないと。