HomeMadeGarbage Loading

シリアルサーボ STS3032 の考察

アバター画像 お父ちゃん  2023.11.14 
ホーム
電子工作
Raspberry Pi
IOT
音楽
Home > 電子工作 > シリアルサーボ STS3032 の考察
すき 1
うんこ 0

これまでFeetech社製 シリアルサーボ STS3032を用いていろいろ製作してきました。
いろいろと私なりに分かったことをまとめます。

 

 

STS3032動作モード

STS3032には4つ動作モード (Operation Mode 0~3) があります。

サーボの動作モードはFeetechのサーボデバッグ用ソフト(秋月の販売ページでダウンロード可能)で変更できます。
”Programming”タブのWork Mode (Address 33)の数字を変更することで動作モードを選択します。

Operation Mode 0

通常のサーボモード

STS3032の回転範囲は360°で、デバッグソフトのスライダもしくはGoal欄に0~4095で位置を指定。

最大スピードは約110rpm。

Operation Mode 1

連続回転モータモード。回転速度を指定する。

デバッグソフトのspeed欄に数値を入れて回転させる (10~9999 [反転:-10~ -9999]  但し実際の最大スピードは7500)。
最大回転速度は約110rpm。

クローズドループ制御ということでキッチリ回転速度が管理されての回転のようだが、要求に対する応答が遅いです。
デバッグソフトでPID定数いじったら改善するかも?しれません。

Operation Mode 2

連続回転モータモード。トルクを指定。

デバッグソフトのTime欄に数値を入れて回転させる (50~1000 [反転:-50~ -1000])。
最大回転速度は約140rpm。

Operation Mode 1に比べ応答性もよいですが、トルクを指定つまり電流値指定で回転させているので負荷によって回転速度は変わります。

 

 
ちなみにSTS3032の回転モード Operation Mode = 1 では回転速度を指定し内部フィードバック制御されているので、負荷がかかると速度を保つために電流が増えます。

 

Operation Mode 3

回転移動量を指定するステップモード。

モードの指定に加えてMin Position Limit (Address 9)とMax Position Limit (Address 11)の値を0にする必要があります。

回転スピードはSpeed欄で指定 (0~7500)。最大回転速度は約110rpm。
回転量はGoalで指定 (最大値±30719 約7.5回転)

参考

 

AudiostockでBGM・効果音を販売中!

Arduino IDE で Operation Mode 2

STS3032はその他のFeetech社製サーボモータと同様にArduinoライブラリSCServo が用意されています (秋月の販売ページでもダウンロード可能)。

ライブラリを用いてサーボ位置やスピードを指定することで各種モードでの動作を楽しむことはできるのですが、SCServoライブラリではSTSサーボのTime設定ができないために Operation Mode = 2 での使用ができません。

そこで、ライブラリにTimeを設定できる関数を追加して動作を楽しみました。

 

以下の関数をSCServoライブラリのSMS_STS.cppに追加しました。

 

WriteTime関数でサーボのIDとTime(-1000~1000)を指定してトルク指定の応答性の良い連続回転モードを楽しみました。

コントローラ

Feetech社製のシリアルサーボは電源Vdd, GND, 信号線の3線式です (PWMサーボと同様に多くのシリアルサーボがこんな感じ)。
シリアル信号 (TX, RX)を1線に変換する必要があり、Feetech社製専用の変換コントローラも販売されてございます。

コントローラ基板をPCにUSB接続して前述のデバッグソフトで制御したり、外部からシリアル通信で制御することが可能です。

 

コントローラを自作することも可能です。秋月の販売ページのFEETECH社デジタルサーボの使用方法 資料に参考回路が記載されています。

私は以下のようにユニバーサル基板で回路を構成してコントローラを作製したりしました。

 

いちいち基板を手作りするのも大変になってきたので最近では専用基板を製作して使用しています。

STS3032で製作したモノ

STS3032を使用して製作したものを紹介させていただきます。

ジャンプする倒立振子

屈伸タイプの倒立振子の足の駆動とホイールにSTS3032を使用しました。

足駆動はサーボモードで使用し、比較的早い動作ができるためジャンプ動作を実現することができました。

ホイール用にはOperation Mode = 2 のモータモードで使用しました。若干まだスピードが足りない印象ですが、まぁまぁな操作性を実現できています。

 

シリアルサーボ STS3032 で屈伸型倒立振子

Wheel-Legged Robot 

前述の屈伸型倒立振子を応用して4脚のWheel-Legged Robot を製作しました。

通常のビークル動作はもちろんのこと、起き上がっての倒立動作も実現しました。
ホビーで起上れるWheel-Legged Robot を製作したのは地球上で私しかいないのではないでしょうか。

すべてハイクオリティ シリアルサーボSTS3032のおかげです。

 

Wheel-Legged Robot ホイレグくん

バク転ロボット犬

前々からバク転するロボット犬を製作したいと思っていたのですが、STS3032を用いて満を持してトライしました。

4脚ロボットは初めて製作したのですが、STS3032が優秀過ぎて3日ほどでバク転を実現できました。

 

ロボット犬つくってバク転させてみた

 

おわりに

ここではシリアルサーボ STS3032について各記事に分散していた内容をまとめてみました。

以前は秋月で3000円ほどで購入できたのですが、円安の影響か5000円弱となっております(どこの販売店も同等の価格のようです)。
気軽に使用できる価格ではなくなってしまいましたが、雑では作れないワンランク上の製作の際の一品として本記事を思い出していただけましたら幸いです。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください