ラジコンサーボのトルク測定
2003年11月30日 (C) 岡田 紀雄
デジタルサーボの場合、入力PWM信号周期に異存なく、トルク保持性が保てることは知られているとおりですが、アナログサーボは、入力PWM周期に依存してトルクが変えられるようです。 逆にいえば、適切なPWM周期を選ばないとせっかくのサーボの能力をフルに発揮できないことを意味してます。
そこで、手持ちのアナログサーボのトルク測定を行ってみよう!ということで、実験をしてみました。
H8/3664F のPWMを使って、単純にPWM周期と角度を変更できるプログラムをつくり、1つのサーボだけをつなげてのシンプルな構成で実験を試みました。
同じような実験は、バーニング宮田さんの Web でも紹介されてますので、特にサーボをこらから購入を考えていらっしゃる方や、サーボ比較に興味がある方は、そちらのほうがよろしいかと思います。 とてもたくさんのサーボを比較されておりまして、参考になります。
H8/3664F のプログラムより
SCI3 への入出力ルーチン、6桁10進数出力ルーチンは削除しました。
見てのとおり、非常に単純なプログラムです。
1: #include "3664f.h" 2: 3: #define _GRA (40000) 4: #define _GRB (4000) 5: 6: static void init_3664( void ) 7: { 8: short xx; 9: 10: IO.PMR1.BIT.TXD = 1; 11: SCI3.SCR3.BYTE = 0; /* clear all flags */ 12: SCI3.SMR.BYTE = 0; /* Ascnc, 8bit, NoParity, (Even), stop1, 1/1 */ 13: SCI3.BRR = 25; /* 19200baud (CPU=16MHz) */ 14: for( xx = 0; xx < 280; xx++ ); /* wait 1 bit time (1/9600 sec) */ 15: SCI3.SCR3.BYTE = 0x30; /* scr=0011 0000 (TE=1,RE=1) */ 16: xx = SCI3.SSR.BYTE; /* Dummy Read */ 17: SCI3.SSR.BYTE = 0x80; /* Clear Error Flag (TDRE=1) */ 18: TW.TIOR0.BIT.IOB = 0; /* GRB のコンペアマッチで1を出力 */ 19: TW.TMRW.BIT.PWMB = 1; /* FTIOB PWM mode */ 20: TW.TCRW.BIT.CCLR = 1; /* TCNT カウンタクリア */ 21: TW.TCRW.BIT.CKS = 3; /* クロックを8分週にセット */ 22: TW.TCRW.BIT.TOA = 0; /* FTIOB PWM init. value = 0 */ 23: TW.TCRW.BIT.TOB = 1; /* FTIOB PWM init. value = 1 */ 24: TW.GRA = _GRA; 25: TW.GRB = _GRB; 26: TW.TMRW.BIT.CTS = 1; /* TW Start */ 27: } 28: void main( void ) 29: { 30: unsigned int gra, grb; 31: 32: init_3664(); 33: gra = _GRA; 34: grb = _GRB; 35: while( 1 ) { 36: int ch; 37: 38: outch( '>' ); 39: ch = inch(); 40: outch( ' ' ); 41: switch( ch ) { 42: case 'u': grb += 8; 43: if( grb > 0x1390 ) grb = 0x1390; 44: break; 45: case 'U': gra += 2000; 46: if( gra > 60000 ) gra = 60000; 47: break; 48: case 'd': grb -= 8; 49: if( grb < 0x0460 ) grb = 0x0460; 50: break; 51: case 'D': gra -= 2000; 52: if( gra < 5000 ) gra = 5000; 53: break; 54: case 'i': grb = _GRB; break; 55: case 'I': gra = _GRA; break; 56: } 57: TW.GRA = gra; 58: TW.GRB = grb; 59: out6d( gra ); 60: outch( ' ' ); 61: out6d( grb ); 62: crlf(); 63: } 64: } |
![]() |
|
トルク測定結果
このプログラムにより測定した結果が、次のグラフです。 トルクについては、10cm長3mm厚のプラスチック板をサーボに取り付け、調理用ハカリにて、荷重を測定しました。 トルク(kg・cm)=アーム長(cm)×測定値(g)÷1000 の換算を行ってます。
![]() |
この結果からすると、R1N で採用した BestTech. のボードではトルクが落ちまくってしまうではないか!と、気が付き、R2N
への移行が思いついたのでした。
現在、ハイパワーギア(+ストロングギア)を搭載した PS-2174FET を脚部に12個用意できたので、あとは制御系、プログラムができれば、歩行以後の計画ができるはず!と、かなりの意欲がでてきました。