シリアルサーボモータ SCS0009 で倒立振子製作
前回はサーボモータLX-224の連続回転モードを用いて倒立振子を製作しました。
LX-224ではちょっとトルクが大きすぎてオーバースペックのため、別のモータで再挑戦しました。
目次
シリアルサーボモータ SCS0009
サーボで連続回転できるものを探していたところ、耳寄りな情報が!
Yes.
Operation mode 2 of SCS0009 is 360 degrees continuous motor mode— Abby (Feetech Servo) (@Abbyhong3) April 11, 2023
SCS0009って連続回転モードあったんか!
SCS0009はミニぷぱ2のサンプルで馴染みのあるサーボでした。
早速、連続回転モードを楽しみました。
サーボモータ SCS0009
ほんとうに連続回転できた。
生活が潤う https://t.co/ggC3HuXA3R pic.twitter.com/8vq9kQCRxt— HomeMadeGarbage (@H0meMadeGarbage) April 14, 2023
秋月で配布されているライブラリのPWMサンプルコードで本当に回転しました!
いままで全然気づかなかった。。
サーボモードとモータモードの共存も可能でした。便利!
サーボモータ SCS0009
同じUARTラインでサーボモードとモータモードの共存制御もできる。
これはご飯何杯でもいただけるやつだ pic.twitter.com/udbOPIlMMt— HomeMadeGarbage (@H0meMadeGarbage) April 14, 2023
SCS0009のフィードバック
SCS0009は1線で送受信する1Wire通信となっており、専用ボードにはUART-1Wire変換回路が搭載されております。
連続回転モードで回転位置と速度を受信してみたところ、周期的におかしな値が返ってきました。
フィードバック動作
SCS0009って可動範囲300°のサーボだから
連続回転で位置とスピードのフィードバック値みると300°以上の範囲でおかしな値が返ってくるわ。。。ってことでモータモードでフィードバック使用することはないかなっと pic.twitter.com/zoOqfcrJTX
— HomeMadeGarbage (@H0meMadeGarbage) April 14, 2023
SCS0009の可動範囲が300°のため300°以上では正しい値を返せないため考えられます。
そこでSCS0009をモータモードで倒立振子に利用する際はフィードバック値を受信する必要がないため、
コントローラの送信のみ直結での使用を考えました。
送信だけなら直結でいいよね。
ただもしフィードバックで正確な回転速度を得られるなら UART-1Wire変換もまじめに考えないといけない。オフィシャルの赤い基板使ってもいいけど。。 pic.twitter.com/aSGE7vxZ7u
— HomeMadeGarbage (@H0meMadeGarbage) April 14, 2023
しかし、SCS0009を受信で使用すると処理が遅くなることが判明しました。
送信後にサーボIDと絡めたACKを返しているようでコードを解析してACK無視などで回避も考えましたが、今後フィードバック値も利用する可能性もゼロではないのでここでは専用基板を介してSCS0009を制御することにしました。
倒立振子製作
前回同様コントローラにATOMS3を採用して倒立振子を組みます。
夢中になって朝までかけて製作
出来た
スムーズに動作しないようなら
ふて寝する pic.twitter.com/U24Pdky7NX— HomeMadeGarbage (@H0meMadeGarbage) April 15, 2023
しかし倒立せず。。 ふて寝
寝るわ。。 pic.twitter.com/Q79Z7sdjYu
— HomeMadeGarbage (@H0meMadeGarbage) April 15, 2023
起床後ミスに気付いて無事に倒立。
立った
角度算出式を間違えてた
睡眠大事 pic.twitter.com/ZBHm0za8nv— HomeMadeGarbage (@H0meMadeGarbage) April 16, 2023
参考
完成
サーボモータSCS0009で倒立振子の基本動作を確認できました。
専用基板がちょっと大きくて邪魔なので、UART-1Wire変換回路小さく作成して省略したいですね。
それに加えて次回はバッテリも内蔵して縦横無尽に動かしたいです。