ラジコンサーボのトルク測定
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個用意できたので、あとは制御系、プログラムができれば、歩行以後の計画ができるはず!と、かなりの意欲がでてきました。