彙整

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 高解像儲存

%d 位部落客按了讚: