彙整

Posts Tagged ‘Servo 資料’

The new Robot Servo RoBoard RS-1270

24 六月, 2011 發表留言

A new robot servo RS-1270 come in my stock. Servos are make in Tai Wan DMP Electronics Inc. The Servo is good for make a human robot.
The Servo Spec:
Coreless servo motor
Digital 4096 with steel gear and 2 ball bearings
Back-horn design
Weight: 70g
Size : 40.4 x 20.1 x 40.3 (mm)
Torque force: 35.0 kg-cm@7.4V / 486.0 oz-in@7.4V
Speed: 0.11 sec/60 degrees
Voltage: 6.0 ~ 7.4 V, suggested 7.4V

20110624-101050.jpg

20110624-101101.jpg

I just test my servo C-mount CA-01, it is can be fix with the RoBoard RS-1270.

The Servo Price : USD$80 ( not include shipping charge )
Need a quotation with shipping charge? Send me a E-mail : bloodkeith@digi-tech.com.hk

中港澳地區的朋友們也可給我電郵訂購啊:bloodkeith@digi-tech.com.hk

十年前的垃圾還有用 , USB to RS232 converter

17 二月, 2010 發表留言

新年前電腦節的時候去左買 notebook , 一般價 $4300 Lenovo G450G , 現時市面上的 notebook 都已經沒有 RS232 的傳輸介面 , 就在新年大掃除時找到十年前買的 USB to RS232 converter , 正好可把這個 converter 放到 notebook 用 , 在 win7 安装這個 converter 的 windows 2000 driver , 再接上 Victor ( MCU.HK ) 出的新 SQ21 及 ProGear GL4315 360度 Servo , 全部測試 OK ,

IMG_1516_resize IMG_1511_resize
IMG_1512_resize IMG_1513_resize

測試 Servo 扭力 ,

5 七月, 2009 2 留言

 

測試程式由台灣的 Nichal 大大提供 :

扭力的大小= 左邊彈簧秤的拉力值(kg) x 到軸心的距離(cm) + 右邊彈簧秤的拉力值(kg) x 到軸心的距離(cm)

SANY0028 首先用 Futaba S3003 做一次測試先 , 因為相信大廠的宮方數字會比較可信 , 官方提供數字是 4.1kg.cm
@ 6v。用兩個吊秤勾在離軸心 2cm 位置 , 吊秤最好能 Hold 在底座 , 不要用手 Hold 住 ,

結果 : 測出 1.285kg 及 0.835kg

1.285kg x 2 cm + 0.835kg x 2 cm = 4.24kg.cm

SANY0031 再用 BlueBird BMS-630MG, 官方提供數字是 14.6kg.cm
@ 6v。

用兩個吊秤勾在離軸心 2cm 位置 ,

結果 : 測出 1.675kg 及 2.440kg

1.675kg x 2 cm + 2.440kg x 2 cm = 8.23kg.cm

SANY0030 最後用 TowerPro MG995 ,

用兩個吊秤勾在離軸心 2cm 位置 ,

結果 : 測出 2.91kg 及 1.2kg


2.91kg x 2 cm + 1.2kg x 2 cm = 8.22kg.cm

 

分類:Servo 標籤:, ,

發現第三代用的 IC

2 七月, 2009 發表留言

上星期終於買左 Servo 啦 , 把 TK02 燒左的第二代 Servo 換到第三代 , 現在全機體都是第三代 Servo 啦 , 在換 Servo 時發覺 TowerPro 沒有把 IC 的字洗去 , 原來第三代就係用呢粒野啦。PIC16F676 SSM9930M AP9930M

SANY0016 SANY0017

TK02 已經重新啦 , 今次試左由直立轉到踎底到 Shift 左 Shift 右 到分腿 , 全程只用左 5 個 Location Store , 全部都是直接由一個動作 A 到 B , 中間無任何插入角度 ,

 

Servo MG995 維修報告

29 十一月, 2007 發表留言

 
Photo1  Photo 2

 


Photo3  Photo 4

正當為 TK01 進行更完美的左右 Shift 及單腳站立 Program 時,發覺機體其中有三隻 Servo 反應特別遲,檢查過 Program 及主板一定無出錯,於是決定再換 Servo,好彩仲有上次在大陸買的後備 MG995,先將其中兩隻及新的做比較 ( Photo 1 – 4 ),發覺齒輪組亁晒油,相信原因係無油另到 Servo 啜啜地了,而且其中一隻 ( Photo 3 ) 更加有膠件爆烈情況出現,下次出去要買番 D 雪油了。


 


Photo 5 
Photo 6

而乾了的油摸落手的感覺好似泥一樣,就好似 Photo 6 右手邊上面的油咁,而好彩上次有三隻燒了 Driver 的 Servo,於是將乾了油的 Driver 換到之前燒了的 Servo 上,點知換好着機之後 Servo 即燒,由此可以更確定 Servo 燒的原因是在於 Motor 或 VR,其中一件零件有問題,另 Servo Driver 燒毁。所以另外隻 Servo 立即換齒輪組,好彩有上次燒了的 Servo 齒輪組無乾油。


 
Photo7 
 
 
Photo8  Photo 9

而第三隻 Servo ( Photo 8 ) 出現的問題更嚴重,除左亁油外,膠面蓋的軸心孔更加出現變形現像,所以第三隻 Servo 除了換齒輪組外,更加要換膠面蓋,好彩有上次燒了的 Servo 齒輪組無乾油及膠面蓋。

 

所以 Servo 懷左唔好掉呀。

 

最後 Photo 9 皇派死 Servo 軍團登場。

 

另外左面的是 Hitachi 新研制的 EMIEW 2 二輪變型二足機械人,詳細資料

 

時間 , 速度 及 角度

20 十一月, 2007 4 留言
今天晚上回家忙完手上的工作後 , 再繼續着手 TK01的速度、角度及角度變化的關連問題 , 得出來的結果令我滿意 , 以下是結果 : 
以踎低起身正在用的角度及速度為例子  以 Timer 量度的時間數據 
Servo  Servo  Location  rotate  Location 
Status  Number  Store  degree  Store 
    站立    踎低 
no change  0  95    95 
decrease  1  89  22  67 
no change  2  97    97 
increase  3  90  16  106 
decrease  4  90  56  34 
decrease  5  136  72  64 
no change  6  80    80 
no change  7  93    92 
no change  14  96    96 
no change  15  98    98 
increase  16  43  72  115 
increase  17  89  56  145 
decrease  18  90  16  74 
no change  19  90    90 
increase  20  91  22  113
TowerPro 
speed 0 用 0.39 秒 行 154度 , 
speed 5 用 1.40 秒 行 154度 , 
speed 4 用 1.76 秒 行 154度 , 
speed 3 用 2.35 秒 行 154度 , 
speed 2 用 3.54 秒 行 154度 , 
speed 1 用 7.10 秒 行 154度 ,

對比以上資料 , 將用 Timer 的資料 ( 角度除時間 ) 或 ( 時間除角度 ), 得出以下結果 :

TowerPro     
speed 0 用 0.39 秒 行 154度 ,  394d/s  0.0025s/d 
speed 5 用 1.40 秒 行 154度 ,  110d/s  0.0090s/d 
speed 4 用 1.76 秒 行 154度 ,  88d/s  0.0114s/d 
speed 3 用 2.35 秒 行 154度 ,  66d/s  0.0152s/d 
speed 2 用 3.54 秒 行 154度 ,  44d/s  0.0229s/d 
speed 1 用 7.10 秒 行 154度 ,  22d/s  0.0461s/d
例如 :  

如果用 speed 1 計算 ,

TowerPro 每秒可前進 21.69…….. 度 ( 角度除時間 ) D/S , 即大概為 22度 ,

而 speed 1 每 0.0461…… 度需要 0.1秒 ( 時間除角度 ) ,

假設現在只知道現在 speed 1 每 0.0461度需要 0.1秒 , 現在要前進 22 度 , 求 22 度總共需要時間 , 算式為 ( 0.0461 x 22 = 1.0142 ) 即大概為 1 秒 , 跟上表計出來結果相若 。

 

但如何知道用在機體需要用什麽速度呢 ?

只要知道每個 Servo 轉動了多小角度便可以了 , 例如 16 , 17 , 18 及 20 號 Servo , 首先 18 號 servo 轉動角度是最小的只有 16 度 , 故此要用最慢的速度 speed 1 , 而 18 號 servo 若轉動完 16 度所需要時間為 0.0461 x 16 = 0.7376 秒 , 所以其他 3 隻 servo 要遷就返 servo 18 的時間 ,

 

例如 servo 20 所轉動角度,

如果用 speed 1 ,

0.0461 x 22 = 1.0142 , 跟 servo 16 時間相差 1.0142 – 0.7376 = 0.2766

如果用 speed 2,

0.0229 x 22 = 0.5038 , 跟 servo 16 時間相差 0.7376 – 0.5038 = 0.2338

所以 servo 20 應以 speed 2 為準 ,

 

如此再計出其餘 servo 的轉動時間 , 就正正跟我現在程式內的速度一樣 , 當然以上只是很間單的加減乘除數 , 並非精密數學 , 但如果都係用同一個 servo controller 的可作參考用途 , 因為不同的 servo controller 或 servo 應會產生不同的速度的。

 

另一方面 , 在 Program 時 , 找了很久也找不到 Loop 以下如何 reset servo 的速度 ,

P.S. Dr. Victor 請看看有沒有錯的地方 , Thanks again . 你幾時得閑幫我補習 Program 呢 ?

 

#define Head 0

main()
{
int i;

sys(0, 1); // select COM port 1
setcomm(9600);
delay(2000);

for(i=0; i<=0; i++) set_servo_speed(i, 0);
for(i=1; i<=1; i++) set_servo_speed(i, 2);
for(i=2; i<=2; i++) set_servo_speed(i, 0);
for(i=3; i<=3; i++) set_servo_speed(i, 1);
for(i=4; i<=4; i++) set_servo_speed(i, 4);
for(i=5; i<=5; i++) set_servo_speed(i, 5);
for(i=6; i<=6; i++) set_servo_speed(i, 0);
for(i=7; i<=7; i++) set_servo_speed(i, 0);
for(i=14; i<=14; i++) set_servo_speed(i, 0);
for(i=15; i<=15; i++) set_servo_speed(i, 0);
for(i=16; i<=16; i++) set_servo_speed(i, 5);
for(i=17; i<=17; i++) set_servo_speed(i, 4);
for(i=18; i<=18; i++) set_servo_speed(i, 1);
for(i=19; i<=19; i++) set_servo_speed(i, 0);
for(i=20; i<=20; i++) set_servo_speed(i, 2);

// Store data to mem locs
stand_still(); writec(232, 252, 0); writec(232, 0, 0); delay(1000); // Loc 0
sit_full(); writec(232, 252, 0); writec(232, 10, 0); delay(1000); // Loc 10

// retrieve data from mem locs
loop {
writec(232, 250, 0); set_servo_speed(0, 1); delay(2000);         <——– 這一句有沒有錯
writec(232, 253, 0); writec(232, 0, 0); delay(1000); toggle(5); // Loc 0
writec(232, 253, 0); writec(232, 10, 0); delay(1000); toggle(5);toggle(3); // Loc 10
writec(232, Head, 50); writec(232, 39, 50); delay(1000); // Servo 0
writec(232, Head, 50); writec(232, 151, 50); delay(1000); // Servo 0
writec(232, 250, 0); set_servo_speed(0, 5);                            <——– 這一句有沒有錯
writec(232, 14, 50); writec(232, 73, 50); delay(1000); // Servo 14
writec(232, 14, 50); writec(232, 111, 50); delay(1000); // Servo 14
writec(232, Head, 50); writec(232, 39, 50); delay(1000); // Servo 0
writec(232, Head, 50); writec(232, 151, 50); delay(1000); // Servo 0
writec(232, 253, 0); writec(232, 0, 0); delay(3000); toggle(5); // Loc 0
writec(232, 7, 50); writec(232, 135, 50); delay(1000); // Servo 7
writec(232, 7, 50); writec(232, 92, 50); delay(1000); // Servo 7
writec(232, 7, 50); writec(232, 48, 50); delay(1000); // Servo 7
writec(232, 7, 50); writec(232, 92, 50); delay(3000); // Servo 7
toggle(3);
}
}

set_servo_speed(svr, spd)
{
writec(232, 250, 0);
writec(232, svr, 0);
writec(232, spd, 0);
}
stand_still()
{

writec(232, Head, 50); writec(232, 95, 50); // Servo 0
writec(232, 1, 50); writec(232, 89, 50); // Servo 1
writec(232, 2, 50); writec(232, 97, 50); // Servo 2
writec(232, 3, 25); writec(232, 90, 50); // Servo 3
writec(232, 4, 50); writec(232, 90, 50); // Servo 4
writec(232, 5, 50); writec(232, 136, 50); // Servo 5
writec(232, 6, 50); writec(232, 80, 50); // Servo 6
writec(232, 7, 50); writec(232, 92, 50); // Servo 7
writec(232, 14, 50); writec(232, 96, 50); // Servo 14
writec(232, 15, 50); writec(232, 98, 50); // Servo 15
writec(232, 16, 50); writec(232, 43, 50); // Servo 16
writec(232, 17, 50); writec(232, 89, 50); // Servo 17
writec(232, 18, 50); writec(232, 90, 50); // Servo 18
writec(232, 19, 50); writec(232, 90, 50); // Servo 19
writec(232, 20, 50); writec(232, 91, 50); // Servo 20
}
sit_full()
{

writec(232, Head, 50); writec(232, 95, 50); // Servo 0
writec(232, 1, 50); writec(232, 67, 50); // Servo 1
writec(232, 2, 50); writec(232, 97, 50); // Servo 2
writec(232, 3, 50); writec(232, 106, 50); // Servo 3
writec(232, 4, 50); writec(232, 34, 50); // Servo 4
writec(232, 5, 50); writec(232, 64, 50); // Servo 5
writec(232, 6, 50); writec(232, 80, 50); // Servo 6
writec(232, 7, 50); writec(232, 92, 50); // Servo 7
writec(232, 14, 50); writec(232, 96, 50); // Servo 14
writec(232, 15, 50); writec(232, 98, 50); // Servo 15
writec(232, 16, 50); writec(232, 115, 50); // Servo 16
writec(232, 17, 50); writec(232, 145, 50); // Servo 17
writec(232, 18, 50); writec(232, 74, 50); // Servo 18
writec(232, 19, 50); writec(232, 90, 50); // Servo 19
writec(232, 20, 50); writec(232, 113, 50); // Servo 20
}

速度的影響,重量

18 十一月, 2007 發表留言
前雨次講到量度了 TK01 Servo 的速度 , 現在就用回踎底的動作証明量度了度速後 , 是否可以剩係比兩個角度加速度完成動作 ,
答案係得的 , 以下是片段 ,
雖然動作跟之前的是一樣 , 但現在所用的 program 比之前細 , 因為在站立及踎底之間己經冇任何間隔 ,
亦即是用起點到終點都沒有其他角度插入中間位置 , 但係要留意一點 , 就是 loading 的問題 , 量度 servo 的時侯 ,
是因為沒有 loading ( 重量 ) 的 , 但在加入機體之後 loading ( 重量 ) 會改變速度 , 例如由站立到踎底的時候 ,
大腿位置的 servo 會加快 , 但由踎底到站立的時候 , 大腿位置的 servo 會減慢 , 因為有地心吸力啊 ,
所以唔好以為量好速度後就咁 set 左速度一定得 , 仲要留意實際有 loading ( 重量 ) 時的速度 ,
最後以下片段是黑夜版踎底及起身的動作 ,

片段2 高解像儲存

Servo Speed Test

31 十月, 2007 2 留言

上次講到現在正進行 Servo 速度的量度 , 得出以下結果 ,以 23度至 177度計算 , 共行 154度 ,

speed 0 用 0.7 秒 行 154度 ,

speed 5 用 1.6 秒 行 154度 ,

speed 4 用 2.2 秒 行 154度 ,

speed 3 用 3.0 秒 行 154度 ,

speed 2 用 4.0 秒 行 154度 ,

speed 1 用 7.4 秒 行 154度 ,

但係因為上次是用手提電話內的計時器進行量度 ( 影片一 ) ,

所以應該是唔準的 ,而今次買了一個時間制回來進行測試 ( 影片二 )  , 得出以下結果 :

 

TowerPro MG995 , 由 23度至 177度 , 共 154度

speed 0 用 0.39 秒 行 154度 ,

speed 5 用 1.40 秒 行 154度 ,

speed 4 用 1.76 秒 行 154度 ,

speed 3 用 2.35 秒 行 154度 ,

speed 2 用 3.54 秒 行 154度 ,

speed 1 用 7.10 秒 行 154度 ,

 

Futaba S3003 , 由 6度至 158度 , 共 152度

speed 0 用 0.38 秒 行 152度 ,

speed 5 用 1.39 秒 行 152度 ,

speed 4 用 1.74 秒 行 152度 ,

speed 3 用 2.30 秒 行 152度 ,

speed 2 用 3.47 秒 行 152度 ,

speed 1 用 6.95 秒 行 152度 ,

 

BlueBird BMS-630MG , 由 14度至 144度 , 共 130度

speed 0 用 0.50 秒 行 130度 ,

speed 5 用 1.31 秒 行 130度 ,

speed 4 用 1.60 秒 行 130度 ,

speed 3 用 2.07 秒 行 130度 ,

speed 2 用 3.07 秒 行 130度 ,

speed 1 用 6.01 秒 行 130度 ,

 

SANY0007
影片一  影片二 

ATV 時事追擊

28 十月, 2007 2 留言
早前由 KBS 電視台的訪問 , 原本一心諗住要到下年先有得睇 ,
但原來 27/Oct/07 ATV 時事追擊節目內有一段小插曲有我們的片段 ,
原因是時事追擊有訪問 香港機械人網 http://www.hkrobot.net 的網主 Rex 的詳細報道 ,
有興趣的朋友可到此取得影片 , MPG File .
另外目前正在量度 Servo controller 的 Speed 1-5 的速度 , 暫時所得數值如下 :
以 23度至 177度計算 , 共行 154度 ,
speed 0 共用 0.7秒 行 154度 ,
speed 5 共用 1秒6 行 154度 ,
speed 4 共用 2秒2 行 154度 ,
speed 3 共用 3秒 行 154度 ,
speed 2 共用 4秒 行 154度 ,
speed 1 共用 7秒4 行 154度 ,
可能未量得好準 , 但計過相差不遠 , 過兩天有時間會再量準 D .

servo speed selector

23 十月, 2007 7 留言
經過幾日測試都想不到如何可以用 program 計出改變了的角度 ,
現在以下 program 紅色一段文字 , 是一個程式 , 可除着 servo 改變角度而自動 set 出 servo 的速度 ,
己証實是可行 , 但因為 deg_a 及 deg_b 是沒有 store 入 location 內的 , 所以現正設法如何可將 ,
location 內的角度名為 deg_a 及 deg_b , 如果成功 , 以後可以不用人手計角度 ,
希望做到程式 function :
deg_a 減 deg_b ,
如果減後角度大於 150 度 , set speed 5
如果減後角度大於 130 度 , set speed 4
如果減後角度大於 100 度 , set speed 3
如果減後角度大於 80 度 , set speed 2
如果減後角度大於 60 度 , set speed 1
否則 set speed 0
但這組 deg_a 及 deg_b 一定要代表了 location store 其中 servo 的角度 , 唔知點寫 ???
P.S. Dr. Victor 明唔明我想點寫 ? 以下是成功了一半的 program , 但現在唔知點寫 deg_a 及 deg_b 入 location ,
請問做唔做到 ??
測試程式如下 :
// updown with speed control
// Action: Standup than Sit to Standup
// by BloodKeith 20 Oct 2007
#define HEAD 0
#define NECK 14
#define L_ONE 1
#define L_TWO 2
#define L_THREE 3
#define L_FOUR 4
#define L_FIVE 5
#define L_SIX 6
#define WAIST 7
#define R_ONE 20
#define R_TWO 19
#define R_THREE 18
#define R_FOUR 17
#define R_FIVE 16
#define R_SIX 15
main()
{
int   i , deg_a , deg_b , t_deg;

sys(0, 1);     // select COM port 1
setcomm(9600);
delay(2000);

deg_a=20 ;                                 //servo head start degree
deg_b=160 ;                                //servo end degree
t_deg=deg_a-deg_b;                         //start degree – end degree
if( t_deg > -90 ) set_servo_speed(i, 1);   //if sum > -90 degree , set speed to 1
if( t_deg <-80 ) set_servo_speed(i, 1);    //if sum <-80 degree , set speed to 1
if( t_deg == -86 ) set_servo_speed(i, 1);  //if sum = -86 degree , set speed to 1
else set_servo_speed(i, 5);                //set servo speed 5

for(i=L_ONE; i<=L_ONE; i++) set_servo_speed(i, 5);
for(i=L_TWO; i<=L_TWO; i++) set_servo_speed(i, 5);
for(i=L_THREE; i<=L_THREE; i++) set_servo_speed(i, 5);
for(i=L_FOUR; i<=L_FOUR; i++) set_servo_speed(i, 5);
for(i=L_FIVE; i<=L_FIVE; i++) set_servo_speed(i, 5);
for(i=L_SIX; i<=L_SIX; i++) set_servo_speed(i, 5);
for(i=WAIST; i<=WAIST; i++) set_servo_speed(i, 0);
for(i=NECK; i<=NECK; i++) set_servo_speed(i, 0);
for(i=R_SIX; i<=R_SIX; i++) set_servo_speed(i, 5);
for(i=R_FIVE; i<=R_FIVE; i++) set_servo_speed(i, 5);
for(i=R_FOUR; i<=R_FOUR; i++) set_servo_speed(i, 5);
for(i=R_THREE; i<=R_THREE; i++) set_servo_speed(i, 5);
for(i=R_TWO; i<=R_TWO; i++) set_servo_speed(i, 5);
for(i=R_ONE; i<=R_ONE; i++) set_servo_speed(i, 5);

// Store data to mem locs
stand_still(); writec(232, 252, 0); writec(232, 0, 0); delay(1000); // Loc 0
up_Step_nine(); writec(232, 252, 0); writec(232, 19, 0); delay(1000); // Loc 19
// retrieve data from mem locs
loop {
writec(232, 253, 0); writec(232, 0, 0); delay(250); toggle(5); // Loc 0
writec(232, HEAD,  50); writec(232, deg_a, 50); delay(1000); // Servo 0
writec(232, HEAD,  50); writec(232, deg_b, 50); delay(1000); // Servo 0
writec(232, NECK,  50); writec(232, 73, 50); delay(1000); // Servo 0
writec(232, NECK,  50); writec(232, 111, 50); delay(1000); // Servo 0
writec(232, 253, 0); writec(232, 19, 0); delay(500); toggle(3);toggle(5); // Loc 19
writec(232, WAIST,  50); writec(232, 116, 50); delay(1000); // Servo 7
writec(232, WAIST,  50); writec(232, 93, 50); delay(1000); // Servo 7
writec(232, WAIST,  50); writec(232, 80, 50); delay(1000); // Servo 7
writec(232, WAIST,  50); writec(232, 93, 50); delay(3000); // Servo 7
toggle(3);
}
}
set_servo_speed(svr, spd)
{
writec(232, 250, 0);
writec(232, svr, 0);
writec(232, spd, 0);
}
stand_still()
{
writec(232, HEAD,  50); writec(232, 95, 50); // Servo 0
writec(232, L_ONE,  50); writec(232, 89, 50); // Servo 1
writec(232, L_TWO,  50); writec(232, 97, 50); // Servo 2
writec(232, L_THREE,  25); writec(232, 90, 50); // Servo 3
writec(232, L_FOUR,  50); writec(232, 90, 50); // Servo 4
writec(232, L_FIVE,  50); writec(232, 138, 50); // Servo 5
writec(232, L_SIX,  50); writec(232, 80, 50); // Servo 6
writec(232, WAIST,  50); writec(232, 93, 50); // Servo 7
writec(232, NECK, 50); writec(232, 96, 50); // Servo 14
writec(232, R_SIX, 50); writec(232, 98, 50); // Servo 15
writec(232, R_FIVE, 50); writec(232, 41, 50); // Servo 16
writec(232, R_FOUR, 50); writec(232, 89, 50); // Servo 17
writec(232, R_THREE, 50); writec(232, 90, 50); // Servo 18
writec(232, R_TWO, 50); writec(232, 90, 50); // Servo 19
writec(232, R_ONE, 50); writec(232, 91, 50); // Servo 20
}
up_Step_nine()
{
writec(232, HEAD,  50); writec(232, 95, 50); // Servo 0
writec(232, L_ONE,  50); writec(232, 68, 50); // Servo 1
writec(232, L_TWO,  50); writec(232, 97, 50); // Servo 2
writec(232, L_THREE,  50); writec(232, 106, 50); // Servo 3
writec(232, L_FOUR,  50); writec(232, 43, 50); // Servo 4
writec(232, L_FIVE,  50); writec(232, 78, 50); // Servo 5
writec(232, L_SIX,  50); writec(232, 80, 50); // Servo 6
writec(232, WAIST,  50); writec(232, 93, 50); // Servo 7
writec(232, NECK, 50); writec(232, 96, 50); // Servo 14
writec(232, R_SIX, 50); writec(232, 98, 50); // Servo 15
writec(232, R_FIVE, 50); writec(232, 101, 50); // Servo 16
writec(232, R_FOUR, 50); writec(232, 136, 50); // Servo 17
writec(232, R_THREE, 50); writec(232, 74, 50); // Servo 18
writec(232, R_TWO, 50); writec(232, 90, 50); // Servo 19
writec(232, R_ONE, 50); writec(232, 112, 50); // Servo 20
}
%d 位部落客按了讚: