ちょっとTea Time!? 6本脚ロボット(HEXAPOD)にチャレンジしてみよう! 2025.2.12

ことのはじめ
 テニスマシンを作成&改造したときに、ボールの移動やローラの角度変更などにラジコン用のサーボモータをつかいました。
そのとき感激したのが、サーボモータの値段です。トルクが150kgfcmとなると、3000円くらいしますが(それでも3000円!)
20kgfcm程度のものなら800円前後、普通の12kgfcm程度のものなら500円以下で買えてしまいます。
 中学生の頃に初めてラジコン(車)を始めたときは、サーボモータなんか非力なものでも4000〜5000円くらいしたから、
隔世の感があります。ちなみに、最初に買ったサーボモータはFUTABAのモノでしたが、トルクは2〜3kgfcm程度だっと
思います。なぜ、最近のサーボは廉価品でもトルクがでているかといえば、モータが進歩したというのもあるでしょうが、
駆動回路の進歩が大きいでしょう。なんせ50年近く前のサーボの電子部品なんか、勿論IC化されているとは思えませんし、
モータの駆動回路も内部抵抗の大きなバイポーラトランジスタでやっていたと思います。それに対して、今のサーボは
低ON抵抗のMOSFETが使われたワンチップICです。性能もコストも雲泥の差になるのでしょう。

 そういうこともあり、なぜか安そうなサーボをみかけては、ちょこちょこと買ってしまっていました。
昔は手がでなかったけど、大人になって経済的に余裕もできて思わず大人買い〜ってやつですね(笑。


ラジコンサーボがゴロゴロ。

最初は買ったサーボの有効活用として、4本脚の犬型ロボットでも作ろうかと思っていました。
フレームはガラスエポキシ板(FR4)あたりをつかって、CNCで切り出そうと考えましたが、
FR4の材料って意外と高いです。5mm厚で300x300mmの板が3000円くらいします。
これを何枚か用意してとなると、かなりの出費になりそうです。


サーボモータでこんなロボットでもつくってみようかなあ〜。


材料として考えていたFR4って意外と高いなあ〜。

6本脚の市販ロボットキットにしよう!
 そのため,思わず日和ってしまって市販のロボットフレームを使うことにしました.,
ちょうど、6本脚ロボットのキットがあったので選択です。
 なせ4本脚ではなく6本脚にしたかといえば、6本脚の方がサーボを沢山消費できますし、
なにより動作が安定しますのでロボット初心者にはうってつけです。というのも、6本脚だと
3本の脚を交互につかって移動するので、脚をあげたときも他の3本脚で支えるので
転倒せずに済みます。

で、さっそく注文です。


これを買ってみることにしました.9000円弱でした.


組み立てるととこんな形になるようです。



注文していた部品が届きました。


中身はこれだけ。取説などは一切なしです。頼りは写真だけ。

組み立て開始!

組み立てるにしても、説明書などありませんから、完成写真が頼りです.

関節部分などをよくみて、組み立てていきましょう.


組み立て前に、採寸です。座標計算のためには各リンクの位置が正確にわからなければなりません。

組み立ては楽しい〜 2025.2.13

どんどん組み立てていきましょう。

まずはベースの板と脚の付け根の部分のサーボホルダーをとりつけです。


脚の根本はサーボホルダを2つを連結しますが、そのためのボルトとナットがキットに入っています。
でも、そのナットがちょっと厚いような〜。まあ、組んじゃえ!


ちょとナットが出っ張っているような気がするのだけどなあ〜。大丈夫かな?

不安は的中

サーボを入れてみましたが、はやりナットが僅かに厚いためにサーボに当たってしまいます。
そのため、サーボの固定用のネジ(M4)が入りません。面倒なので、M4ではなくてM3ネジで無理やり
留めてやるかなあ〜?キットの中にはすこし短めのネジも入っているのですが、そちらをつかうべきだったの
かな?でも、当たるのはナットなんだけどなあ〜。
 ひょっとして購入したサーボが少し大きいものだったのかしら?

ナットの厚みがあってサーボに当たっています。これではサーボの固定ネジははいりません。


長さの違うネジが入っています。左の短いものを使えということかな?
でも当たるのはナットなんだけどなあ〜。


たまたま
 そういえば、M3については間違えて3種のナットを買ったことがあることを思い出しました。
ネジを短いものにして、ナットもこれに変更しましょう。しかし、このナットが届いたときは、
「あ、間違えた」と思いましたが、こんなところで役に立つとはたまたまです。



左側が3種のナット。すこし厚みが薄いです。


これで、無事に脚の根本のサーボがとりつきました。

しかし、組みあがっていくと結構な重量があります。
足元は20kgfcmのトルクがあるサーボとはいえ、きびきびとうごくのかなあ?

この先に進むために、まずは

脚先や上蓋(?)を取りつける前に、まずやらないといけないことがあります。
それは、サーボをすべて中点位置にもどす必要があります。届いたサーボはすこし
動かしてみたりしたものがあり、中点位置がズレている可能性があります。それに、
新品のサーボも中点位置にあるかどうかも怪しいです。

ということで、簡単なパルス発生器をつくってサーボの位置を調整です。
20ms毎で1.5ms幅のパルスをつくるだけです。サーボモータはパルス幅で位置が変わります。
私が購入したのは180度の回転角度があるもので、パルス幅が0.5msのときに0度、2.5msの
ときに180度になります。あ、間違えて回転角度270度のものなんか買ってないだろうなあ〜?
この時にでも調べてみましょう。別に270度でも大丈夫だけど、それが混じるとあとあと制御が
面倒そうです。

サーボの中点確認 2025.2.14

PICに簡単なプログラムを書いて、サーボの中点確認を行いました。

簡単にサーボのチェックと中点の確認を行いました。

ちなみに、サーボの中身を見てみると

サーボを1個、ネジを外して中をみてみました。廉価な400円ちょっとのサーボです。


ネジ4本を緩めると、裏ブタがはずれてモータと基板が見えます。


基板の半田面の様子です。


奥には黄色のポテンショがみえます。これでサーボ軸の回転角度を調べています。

 
基板には3つの8pinの素子があるようです。おそらく2つがNMOSとPMOSが入ったドライバでのフルブリッジ構造、そして
残りの1つがマイコンでしょう。


ギアはプラ製ではなくて金属製でした。


残念ながら軸受けはベアリングではなく、プラスチックです。まあ400円ちょっとのサーボだから
仕方ありませ。


最後の組み立て

サーボの中点確認もできたことなので、最後の組み立てです。
組みあがったら結構大きいです。制御系はまだなので、とりあえず邪魔になるので、
脚を折りたたんで押し入れにでも突っ込んで沖おきましょう。


まずは”ふともも”を取り付けです。できるだけ水平になるように取り付けました。


次は上蓋を取り付けです。


最後に爪先をとりつけて組み立て終了です。結構おおきいです。こんなのがうにょうにょ動いたら気持ち悪そうです。


とりあえず小さくなるようにして、押し入れにでも入れておきましょう。

制御系はどうするか?

最終的な形としては、制御系にはRaspberry Pi PICOとラジコンの受信機を搭載して、
リモート操作できるようにと考えています。PICOはCONTROLLER UNIT基板にのせて
スイッチやグラフィックパネルも実装しておけば、色々と調整にも役立ちそうです。
で、そう考えた時に問題になるのがI/Oの数です。CONTROLLER UNIT基板では
自由に使えるI/Oは12本です。それに対して、制御すべきサーボは全部で18個。
どうやって少ないI/O数で18個のサーボを動かすかな。
 ここでの課題はサーボ軸はパルス幅で角度設定を行いますが、0.5〜2.5msでの
短い時間を少なくとも1000分割程度はできるようにしたいところです。1000も要らない?
という感もありますが、実際のサーボの動作範囲って±20度程度でしょうから、±90度
の時間範囲で1000分割できても、±20度なら分解能はおよそ200程度です。このくらいは
最低欲しい感じです。
 で、以下のような回路を考えてみました。これならI/O数3個で最大24個のサーボが
コントロールできます。


これなら少ないI/Oで多くのサーボが制御できますが−−.

0.5〜2.5msの間を1000分解するためには、上記の回路を2us毎に
データを入れ替えることができないといけません。PICOの動作が
125MHzですから、クロック数にして250クロックです。大丈夫だろうか?
実際にプログラムを組んで、どのくらいの速度がでるか試してみましょう。

だめだあ〜
18サーボを動かすとして、とても分解能1000には届かないようです。
分解能で600が限界です。となると常用域±20度程度だと、分解能は
133かあ〜。まあ、この程度あればいいかなあ〜、
と思わず妥協してしまいそうです。
 他にいい方法ないかなあ〜?

データラインを2系統にしたらどうだろう?
 これならギリギリ、分解能1000はいけそうです。でも、ロジックICの無駄が多くなるなあ〜。
2段目なんて1/8しか使わないものなあ〜。この構成で24サーボを動かした場合の分解能は、
ざっと750でした。

データを2系統に分けると早くないそうですが、無駄が多いです。

ついでならデータラインを3系統にしたらどうだろう?
 あ、2系統より  逆に悪くなりました。ギリギリ、分解能1000に足りません。分解能980です。
でも、これならまだ許せるかなあ〜。この場合PICOのI/O数は5本必要になります。
ちなみに、この構成で24サーボ動かす場合の分解能を調べてみると、ざっと770です。
まだ、許せるかなあ〜。

データを3系統にするのが、バランス的にいいかなあ〜。

さらに憂鬱

サーボの位置情報から1000分割したパルス幅情報に変換する時間を調べるために、
模擬的にプログラムを書いてみました。その結果、計算時間に約3.6msかかります。
サーボを動かすパルス幅が最大2.5msあることと合わせると、単にサーボを動かすだけで
6.1msかかります.これが50Hz毎、すなわち20ms毎に繰り替えられるわけですから、
ここだけでCPUの占有率は6.1/20=30%にもなります。結構、とられるなあ〜。
でも、70%は計算に使えるわけだし、まだましかなあ〜。
 世間一般ではどんな制御CPUをつかっているのだろう?

を!ちょっとした発見

色々とプログラムを弄っていて、わかったことですが、変数の置き場所によって
かなりアクセス時間がかわるようです。
先のプログラムで配列をサブルーチンの中で宣言、すなわちスタックエリアに
変数を配置した場合は実行時間は3.6ms、そして変数を外部宣言した場合は
実行時間が2.1msとかなり短くなりました。が、なんでも外部宣言したほうが早いかと
いうとそうではなく、小さい配列の場合はサブルーチン内の宣言の方が早くなり、
配列が1000にもなるような大きなものだと、外部宣言の方が早いようです。
このあたりは、トライアンドエラーになるかもだなあ〜。

とりあえず

データ3系統として制御回路を組んでいきましょう!この段階で、ラジコンの受信機との
連携も考えておきましょう!受信機からの信号は当然のことながらPWM信号ですが、
その信号を受けとってPICOに受け渡す方法ですが、下記の様な案です。
受信機からのPWM信号は一旦PICで受けて、サーボ軸回転角度の情報に変換。
その情報をシリアルSRAMに書き込んで、PICOに受け渡します。当然のことながら、
SRAMアクセスについてはPICOとの排他制御が必要になりますが、PICOからの
読み出しの間隔は一定時間以上という条件をつけておけば、PICOからの
アクセスがなくなった後に、PICで書き込めような順番を取り決めておけば、信号の
衝突はないでしょう。


制御系の全体ブロック図


SRAMはこれがいいでしょう。部品箱に1個ありました。


SPIモードで簡単につかります。


こんな回路で組んでいきましょう!

懐かしい〜! 2025.2.16

自立走行するにはバッテリーを内蔵させる必要があります。
そういえば、ラジコンをやっていたときのバッテリーがどこかにあるはずです。
で、捜索開始!
 バッテリーは見つかりませんでしたが、かなり古いサーボが見つかりました。
野外の保管箱に入っていましたが、箱の中だっだので結構綺麗な状態でした。
折角なので、中をバラシしてみてみました。


30年くらい前のサーボかなあ?


廉価版なのでギアはプラスチックです。


結構半田付けが多そうです。


結構な部品で構成されています。制御ICはM5179ってあったので三菱製だと思うけど、
データシートがみつかりませんでした。



ポテンショの足に絶縁チューブがあるのは高品質ですね。


結局のところバッテリーは見つからなかったので、新規に購入です。
サーボ用の6Vバッテリーと制御用の4.8Vのバッテリを入手です。
これらは小型なのでロボットの腹の中に格納することができます。


バッテリーを新規に購入です。

サーボのインターフェイス基板作成! 2025.2.18

夜の夜長に、作成開始です。IC類は10個もありませんが、蛇の目基板での作成は
久しぶりということもあって、結構時間がかかりました。
で、完成してから配線チェックをして、ICを挿そうとしたときに問題発覚!

14PinのDIPが挿入できない!

実装密度を上げるために、DIPのICのソケットは一部は隙間なく並べたのですが、
14PinDIPは出来ないのを忘れていました。端っこのモールドを削るかな?
削るのは大した手間ではありませんが、モールドの端からなにやら金属光沢が見えます。
おそらくICのリードの金型での打ち抜き後の連結部なので、削っても問題ないはずですが、
下手に応力をかけてモールドに隙間とかできるとあとあと面倒です。
ということで、ICに下駄をはかせることにしました。


ICを取り付けようとして、問題発覚!


14Pin-DIPはソケットを連結しちゃだめだったですね。
端を削ったら入るかな?



パッケージの端には金属部分が見えます。こりゃ、削っちゃだめかな?


真ん中のICは下駄をはかせて、ソケットに取り付けです。


とりあえず完成です。PICはまだ出番はないので未実装です。



久しぶりに、蛇の目基板で配線を行いました。

【備忘録】製作資料
あとあとのことを考えて備忘録を残しておきます。

回路図です。すこし変更しました。


ソフト作成に必要な、ピン接続表も整理しておきます。

PICO PIC SRAM LOGIC,etc
GPIO-11 74164-IC1(A,B)
GPIO-10 74164-IC2(A,B)
GPIO-9 74164-IC3(A,B)
GPIO-8 74164-CK
GPIO-7 74574-CK
GPIO-3 B0 #CS
GPIO-2 B3
GPIO-1 B1 SO
GPIO-0 B5 SCK
GPIO-4 B2 SI
C7 SDA(OLED)
C6 SCL(SCL)
A0-A5 R/C RECEIVER


基板のコネクタやピン配置です。

まずはコントローラユニットと接続

コントローラにスイッチやTFTを搭載です。TFTは320x240のものを使います。
8x8ドットフォントだと40x30文字が表示できますので、18個のサーボ情報を表示するのに十分です。
ちょっと小さくて目に厳しいかなあ〜。そのときは16X16に切り替えましょう。そうすれば20X15になりますが、
横2列で表示すればいいでしょう。

連結にはバス接続用の基板を使いました。なにかと便利です。



CPUには秋月電子のRP2040を使いました。これも、何個か貯めこんでしまっているので、ここで消費です。


そろそろ座標計算なんかも 2025.2.19

サーボを動かす準備もできつつあるので、そろそろ姿勢制御のための座標計算なんかもはじめましょう。
脚を動かして、任意の位置に接地させるために必要なサーボの回転角度を求めます。

要は下記のような感じです、脚の起点となるO位置から(L、−Z)の位置に接地させるための
サーボの回転角B+Dならびに角度Aを求めます。



最初はサーボ角度をきめた場合の位置の方程式を書いておいて、それの逆両列を
もとめるような方法を考えていました。しかし三角形の内角の計算方法があれば直接的に
もとめられるので、ネットで探して引用することにしました。
 ちなみ、この数学って高校生くらいで習うのだろうか?全然記憶がありません。


三角形の内角を計算する方法です。i引用: https://keisan.casio.jp/exec/system/1209543011

上式から、具体的に下記のような計算となります。

a = sqrt( Z*Z + (L-L1)*(L-L1) )
s = ( a + b + c ) * 0.5
S = sqrt(s*(s-a)*(s-b)*(s-c))
D = asin((L-L1)/a)

i)a>bの場合
  h = 2*S/a
 B+D = asin(h/c)+D
 A  =  180 - C - B = 180 - asin(h/c) - asin(h/b)

ii)b>aの場合
  h = 2 * S / b
 B+D = 180 - C - A +D = 180 - asin(h/a) - asin(h/c) + D
 A = asin(h/c)


一応、EXCELで計算して妥当性を確認です。

次は平面での位置計算

まずは脚の接地位置をQとした場合の、脚の長さLと角度Θの計算です。
これは前進あるいは後進する場合に必要です。もちろん斜めに移動するときも
つかいます。

まずはこんな平面の位置関係です。

L1 = sqrt((QX1-X1)*((QX1-X1)+(QY1-Y1)*((QY1-Y1))

Θ1 = asin((QY1-Y1)/L1)

ほかの脚も同様の計算です。Θ1が90度に近くなると計算が不安定になりますが、
そこまで曲げることはないかな。

姿勢が回転しても同様の計算です。これはその場で方向転換する場合の計算です。
ロボットがΦだけ回転する場合を考えると

ロボットが回転する場合です。

これはX1,Y1を座標回転させた値である'X1,'Y1に変更するだけです。

'X1=cos(Φ)*X1 - sin(Φ)*Y1
'Y1=sin(Φ)*X1 + cos(Φ)*Y1

これだけあれば、脚を所定の位置に動かすことはできるでしょう。

脚を動かして進むには

いろいいろと虫の歩行に関するYouTubeをみて勉強です。
こんな感じかな〜?

静止姿勢から歩行の場合。太線は接地している脚、細線は浮いた脚


歩行中の姿勢から静止する場合。


仮想モデルでプログラム作成 2025.3.2

現物を動かしならプログラムを作成したいところですが、机の上にロボットを置くにはチト大きい。
またロボットのマイコンに繋ぐためのUSB-Cケーブルも短いものしかありませんので、机の下に
置くこともできません。ということもあり、小さい画面ですが、ロボットの脚の動きがわかるような
グラフィックを作成して、それを見ながらプログラムの作成です。
 最初は座標や角度などの数値でおいかけようかと思いましたが、全然イメージできないこともあり、
すこし面倒ですが、描画プログラムを作成です。


小さい画面ですが、アニメ―ションのようにして確認できるので、動作がよくわかります。
なんかシラミみたいだなあ〜。

そろそろ操作系との連動も考えよう 
2025.3.3

ラジコンとの連動をそろそろ考えていきます。
手元の10chのラジコンがありますんが、アナログ的に動かせるのは6chだけなので、
それらをロボットの動作に割り当てます。


6chのラジコンとの連動はまずはこんな感じかな〜

ちょっと悩むのは、移動速度をどうやって変えるかです。
一つは脚を動かす速度は同じだけど、歩幅を変えるパターン。
もう一つは歩幅は同じだけど、脚を動かす速度を変えるパターンです。
本当は両者を組みあせたいところだけど、まずは前者、すなわち歩幅は固定で
脚を動かす速度は変更するパターンでいきましょう。
移動時歩幅は送信機側でも調整できるようにしますが、これはどちらかといえばデバッグ用です。
というのも、歩幅を大きくすると脚同士が衝突する場合がでてくるので、どのあたりが限界かを
調べるための調査つまみみたいなものです。

あ、そろそろQVGAの表示も、ポッドの進行方向とあわせて変更しておきましょう。
でないと、仮想モデルと実物の脚の対応が直観的にわかりにくいです。

モデルの表示も進行方向と一致するように変更です。

実物にとりかかりましょう 2025.3.5

ソフトは仮想モデルでだいぶ煮詰まってきました。とういことで、そろそろ実物を動かしにかかります。
まずは、サーボの動作方向を確認です。左右の脚で方向が異なるので注意が必要です。

サーボの動作方向を確認です。

キャリブレーションの位置設定

サーボと脚のとりつけは物によってすこしズレている場合もあるので、最初に位置の校正が必要です。
どの位置で校正するかについては、見て分かりやすいようにして設定です。
前脚と後脚は斜め45度に広がって配置しますが、校正の場合は真横の位置で行います。
こうすれば3本の脚がすべて平行になることで確認できます。そして太ももは真っすぐ横です。
こうすれば横からみて3本すべて重なって見えます。あとは爪は真っすぐ下です。
平たいところにおいて、すべての爪先が接地している状態にすれば校正完了とします。

サーボ位置のキャリブレーションは分かりやすいところで行います。


サーボの校正時の画面です。

そろそろ全体を組み立て 2025.3.5

ソフトも基本的なところは出来あがったので、そろそろ全体を組み立てです。
あとは実機上でのデバッグです。


全体を組み立て中です.サーボケーブルは束ねないと絶対引きちぎっちゃうだろうなあ〜。

ちょっと気になる 

まだ試運転もしていないですが、気になるところはでてきました。脚先の爪を動かすサーボは
あまり力がかからないだろうと、トルクが比較的低い廉価品をつかっています。どうもそのサーボの
剛性があまり高くなさそうです。具体的には軸がすこしガタつきます。多分動作には支障はないレベルとは
思いますが、自分のガタに起因してか、すこし触るとサーボがすこし動いたりします。
動作させてみて、問題があるようだったら高トルク品と交換しましょう。

この部分がすこしガタつきます。

原因は、以前にこのタイプを分解したときに、すこし違和感があった部分があったので
再確認です。20kgfcmの高トルクサーボと比較をしておきました。

高トルク品(20kgfcm)
(すこし高いです。それでも
700円くらいです)
廉価品(13kgfcm)
(400円くらい)
外観

サイズは同じです。
制御基板

すくなくともパターンは同じモノのようです。
出力軸

高トルク品はベアアリングになっています。

軸受けはベアリングです。となりの軸受けも真鍮です。

軸受けはプラスチック。となりの軸受けはケースのくぼみです。
ギア部分(上部)

面白いことに、高トルク品は過ぎる回転防止のストッパがありません。360度回転タイプにもつかえるようにしているのでしょう。

過回転防止のストッパがありません。ポテンショをはずせば360度サーボになりそうです。ギア材質は真鍮でしょう。

過回転防止のストッパがついています。
ギザ材質は亜鉛合金な感じです。
ギア部分(側面)

廉価品は出力軸の凹凸部分が軸受けのプラスチックで保持されているますので、ガタがでるようです。

平滑部部分がベアリングに接触しているのでガタは小さいです。

この部分が軸受けに接触しているのでガタが大きい様子です。

試運転!

といきたいところですが、夜も遅くなったし動かすと五月蠅いだろうから、また後日です。
しばらく出張続きになるので、来週以降かなあ〜。

ちょっと時間できたので試運転!です。 2025.3.9


クリックすると動画になります。

ちょっと修正すべき動作はいくつかりそうですが、ほぼ期待していた動作にはしているようです。
ただ、連続して動かしていると段々車高が低くなって腹ばいになっていきます。
かなりの電圧降下が生じているようです。

電源ラインが超貧弱!

一体、どのくらいの電圧降下が生じているかを調べるために、
サーボ電源の電圧をモニターです。その結果は下記のようになりました。


サーボ電源電圧を調べてみました。

1.サーバがOFFであれば電源電圧は6.6V程度(6Vバッテリー)
2.起動時には一斉にすべてのサーボが動き出すため、2.5V程度まで低下する。
3.動作をさせると段々に電圧が下がっていく。3Vを下回るレベル。
4.停止時(但しサーボはON)のときにも5V程度しか維持できない。

そりゃ、サーボの電圧が下がればトルクも減るだろうし、自分自身の重量も支えられず
腹ばいになっていくのでしょう。
 ここまで電圧が低下するのはバッテリーの内部抵抗というよりかは、電源ラインの細さや
コネクター部分の容量不足(接触抵抗)が大きいでしょう。もっと太い電線をつかって、
コネクタも大型のものに変更する必要がありそうです。それと、やっぱりバッテリーももう少し
電圧が高いものにしておいた方がよいかもです。

ちなみに、バッテリーより先の配線の抵抗を同様の結線で測定したら、およそ0.3オームでした。
ということは10A流れると3Vの電圧降下が生じますね。これはおおきい!

しかし、ここまで電圧が低下するのはちょっと意外でした。でも、ここまで電圧が下がっても、
結構動きますから、7V程度の電圧がキープできればかなりきびきびと動くことが期待できそうです。

まずは手持ちのバッテリーで対策 2025.3.11

新規のバッテリーを調達する前に、まずは手持ちのもので対策していきましょう。
まずはバッテリーからの配線を短くして、直に半田付けです。

サーボの電源は6Vのバッテリーです。出力線がすこし細いです。


途中で切断して、一応芯線の太さを確認です。


直接的にサーボ電源の配線をコネクタに半田付けです。

だいぶ改善しました。
動作させてみましたが、1Vほど電圧降下が改善した感じです。
バッテリー内の配線自体も太くすればもっと良くなりそうですが、
そこまでするなら、新しいバッテリーを調達したほうがいいかもです。

電圧降下が1Vほど改善されました。

バッテリ増強! 2025.3.13

駆動バッテリーを6Vから7.2Vのものに変更です。
ただ、RC受信機の動作電圧が4V〜6.5Vということもあり、
受信機用のバッテリはとりはずして、この7.2Vバッテリから5Vの電圧レギュレータ
(LDO)を通して供給することにしました。これで、7.2Vバッテリー1個でサーボ電源と
マイコンとRC受信機の電源をまかなうことができました。

さすがに7.2Vに電圧があがったのと、電源線も太くなったので、
よりきびきび動くようになりました。

電圧も測定したいところですが、測定電圧がちょっと高くなったこともあり
分圧抵抗を変更していないこともから、未測定です。

AMAZONでバッテリーを購入です。予備用も準備です。
これできびきびと動くようになりました。

どうしようか?結構大きな問題かなあ〜

このHEXAPODですが、ちょっとの間でも動かすと、かならずといっていいほど
フランジをサーボに固定しているネジが緩みます。再度、締め忘れずに動かしていると、
ネジが抜けて脚がとれてしまいます。

このネジは、フランジをサーボ軸に押し込むんで固定することが役割で、直接的に
サーボの回転トルクを伝達するわけではありません。サーボの強大なトルクをつたえる
ためにサーボ軸には溝が加工してあり、同様にフランジ側にも溝があります。それらが
篏合することで、サーボの強大なトルクをつたえます。
 しかしながら、その篏合にはかならず、わずかですが隙間がありガタがあります(でないと、
嵌らない)。そのガタが発生する方向は左右のどちらにもあるので、ネジを緩めてしまいます。
その力はサーボの回転トルクになりますから、いくら強くネジを締め込んでもだめです。
ねじ回しと同じくらいのトルクですからね。
 ゆるみ止めにスプリングワッシャを入れてみましたが、全然ダメです。振動などによる
ゆるみ止めを行うような対策は、全然役に立ちそうにありません。

強力ボンド(ネジ固定ボンド)で留めたら大丈夫かなあ〜。
でも、ボンドもねじ回しで外せるくらいの強度です(中には永久固定ボンドもありますが、
それは使うのにちょっと躊躇します)。ネジが外れることは抑制できるだろうけど、
ネジが緩むこと自体が防止できるかは心配です。


フランジをサーボに締め込むネジが必ずといいほど緩みます。


サーボの軸には大きなトルクを伝達するために、溝が切ってあります。
でも、わずかながら隙間があり、それがネジのゆるみに繋がります。

さてさて、どうしよう?

爪先のサーボモータを入れ替えよう! 2025.3.17

爪先の動作につかっているサーボのガタが気になるので、ベアリングタイプのハイトルクの
ものに交換することにしました。1個750円くらいでした。

ベアリング軸受けのハイトルクサーボを調達です。


爪先だけを取り替えます。これはもともと取りついていたサーボです。すこし軸にガタがあります。


サーボを入れ替えました。M4のネジを24本の取り外し、取り付けは結構面倒でした。

動かしてみよう! あれ?なんかおかしい?

サーボモータを交換したので、さっそく動かしてみます。
で、気が焦ったのかラジコンの送信機のスイッチを入れる前に、本体の稼働スイッチをONに!
すると、変な脚の形でストールです。あわてて、CPUのリセットを押してサーボを落ち着かせます。

その後、送信機のスイッチをいれて再度稼働させます。
なんとなく、いい感じで動いている!!!と思いきや、なんか変。
なんか脚を引きずって歩いているような感じです。
で、本体を浮かして脚の動きを確認してみると、太ももを動かすサーボが2個不調です。

1個は全然動きません。電源ONの状態で脚が簡単に手で動きます。
もう1個は太ももは下には動くけれど上には動かない感じです。
こりゃおかしい!

原因を調べてみましょう!
原因がわかるかどうかわかりませんが、不調のサーボの2個を分解してみることにしました。


ギア軸が傾いています。かなりの負荷がかかった模様です。


基板の半導体類はとくに外傷とかはなさそうです。あとで分かったことですが、
このモータは断線していました。どうやらMOSFETが焼損するまえにモータが焼けたようです。



もう1個の制御基板はMOSFETが焼けていました。こちらはモータままだ生きているようです。


原因はMOSFETの焼損

サーボがストールしたときに大電流が流れて、MOSFETが飛んだのでしょう。
しかし、サーボってストールしても大丈夫なんじゃなかったのかな?
それとも中華性の安物に、そんなことを期待してはいけないのかな?
いづれにしても、原因は分かったような気がします。


ポテンショを外したら、MOSFETの型番がわかりました。

使っているMOSFETは
どうやらDUAL MOSFETで一つがFDS4953(Pc-Pch)、もう1つがFDS9926(Nch-Nch)です。
これでモータをフルブリッジで動かしているのですね。これらを交換すれば良さそうですが、
Pch-PchのMOSFETなんて手持ちにないぞ〜。

サーボの中に使っているMOSFETの1個です。


サーボの中に使っているMOSFETのもう1個です。

そういえば、廉価版と制御基板は同じだったなあ〜

思い出しました。制御基板が同じだったら、MOSFETの容量等はちがうかもしれませんが、
入れ替えることができるかもしれません。で、早速分解してみたら、なんと使っているMOSFETも
同じものでした。こりゃ、交換してみましょう!

廉価版のサーボと制御基板は同じです。これの制御基板が
使えるかな?



なんとなくモータも一緒に見えてきましたが−−−、これごと交換できるかも!


ギアの枚数が違います。となるとモジュールもちがうだろうからモータごと入れ替えることは出来ないでしょう。

制御基板のみの入れ替え!

モータは廉価版の流用は無理そうなので、モータとポテンショを取り外して制御基板の交換にかかります。

制御基板からモータを取り外して、モータを入れ替えます。


まずはポテンショを固定してから、モータと制御基板を取り付けです。そして半田付け。


もとの形にもどりました。

修理失敗!

さっそくサーボテスターに接続して動作確認です。最初に動いたときは、やった〜!
と思いましたが、しばらくすると停まってしまいました。軸をすこしニッパで動かすと、
再度動き出しますが、数秒でまた停まってしまいました。
 ひょっとしてモータもなんらかの損傷をうけたのかもしれません。あるいは、モータの制御回路との
相性があってなくて、なんらかのフェールセーフがかかっているのかな?
いづにしても、単純な基板交換だけでは修理失敗でした。


サーボテスターで動作確認です。しばらく動いていましたが、1分ほどで停まってしまいました。

ソフトを改良しなくっちゃ!

いづれにしても、今回のサーボの不調の原因はサーボがスタックするような、事態に陥った
ことです。そのような指令を送らないように、ソフトウエアの改良が必要です。
でないと、また惨事が発生しそうです。

でも、だいぶHEXAPODも飽きてきたなあ〜。

当所の目的の「動かす」ということは出来たので、それでいいのだけど、このままにしておいたら
壊れたまま置いておいたら完全にゴミになっちゃうし、やはり動かせる状態にはしておいたほうがいいだろうなあ〜。

ああ、どうしよう?

折角なので  2025.3.18

分解したサーボの制御基板の回路図を追ってみることにしました。
回路は極めてシンプルでした。MOSFETでのブリッジ回路でDCモータの正転、逆転の駆動を行っています。
N-chのMOSFETはマイコンで直接駆動できますが、P-chはOFF時の電圧が確保できないので、
NPNのドライバを入れて駆動しています。
 こうやってみると、何も保護回路とかありませんから、サーボがストールしたらモータが焼けるか、
MOSFETが焼けるのだろうなあ〜。


邪魔なので部品類は取り外しました。



こちら側は取り外すまでもないかな。


サーボの制御基板はこんな回路図です。

ちなみに取り外したマイコン(たぶんPICだと思う)の出力を観察です。
サーボの平衡点近くでは、モータの駆動はPWM制御(周期21kHz程度)が行われています。
単なるON/OFF制御だったらハンチングしますからね。で、平衡点からすこしはずれると完全なOn/OFF
状態になるようです。

取り外したマイコンを単独で動かしてみましょう。


モータ駆動はPWMで行われています。

また飛んだあ〜 

壊れたサーボを旧サーボに入れ替えて、再度動かします。
普通に動かしていたんだけど、なぜか1本の脚の動きがおかしくなってきた。
それと、嫌な臭いも.
またサーボが1個動かなくなってしまいました。

P-chのMOSFETが焼けています。

なんでだろう?サーボが壊れるようになったのは電圧を6Vから7.2Vに上げてからです。
一応サーボの動作電圧は4.8V-7.4Vになっているけど、.安全をみると6Vくらいで
動かさないといけないのかなあ〜。
だんだん心が折れてきました。

ちなみに、HEXAPODの全備重量を測定したら2.6kg。これを3本脚で支えるので、
右1、左2としたら右に重量の1/2がかかります。脚の長さはおよそ150mmくらいなので、
一番きついのは太もものサーボで、かかるトルクは約19.5kgfcmであり、サーボの
定格20kgfcmとほぼ同じです。ほぼフル出力で動いていることになるので、
サーボとしてはきついのかなあ〜。

ネジの緩み止め 2025.3.20

とりあえず、壊れたサーボは交換しつつ動かしているが、ネジの緩みは解消していません。
これが、今一番イライラするところ。なんせ、ネジを全部締めた状態で、10秒でも動かしたら
あちこちでネジが緩んでグラグラになっている状況です。
 ということで、ネジの緩み止め材を購入です。なぜ、いままで躊躇していたかといえば、
これって結構高いんですよね。10mlで1000円くらいします。でも、これで今までイライラが
解消するなら安いものです。
 ということで清水の舞台から飛び降りるつもりで購入です(って、大袈裟だなあ〜!


ネジの緩み止めをつかってみることにしました。

購入したのは中強度のものです。これは、一応は取り外すことを前提にした接着材らしいです。
この上のものに、高強度というこもがあり、取り外し不可のものがありますが、流石にそこまでは
ないかなあ〜という感じです。

しかし、この製品ですがよく似たものが色々とあります。一応メーカ品を選択したけど、
類似品の性能ってどうなんだろう?しかし、商標権など大丈夫なんだろうか?


これなんか1/5くらいの値段で買えてしまいますが、性能はどうなんだろう?

まずは、ネジに塗ってとりつけてみました。10分ほどで硬貨がはじまって、完全硬化には1日かかるようなので、
明日にでも動かして様子をみてみましょう。

(つづく)