Archive

Archive for 十一月, 2007

動作修正

十一月 30, 2007 2 comments
經過左昨天換 Servo 及重新修正動作後 Shift Function 已經比之前更完美,
點解呢,因為修正之後無之前踎得咁低,同在 Shift 左右的時候加入扭腰動作,
令重心偏移無咁失重,同動作睇出來垂直好多,無之前好似肚痛咁,及最主要
已經換左有問題的 Servo,令反應好左好多,要塭日析開晒 D Servo 加油了。
睇唔清楚? 唔緊要,今次特別用 Video Editor 做左分割畫面,以下片段左面是新動作,
右面是做了慢鏡的舊動作,可以清楚見到右腳膝頭對上隻 Servo 特別反應慢,因為之
前比 D 乾油啜住左,

 ( 影片高解像儲存 )

下次 Program 單腳站立先。

 

Servo MG995 維修報告

十一月 29, 2007 Leave a comment

 
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 二輪變型二足機械人,詳細資料

 

動作串連

十一月 23, 2007 2 comments
TK01 上次做好左一個動作 , 當然亦會繼續做更多動作啦 ,
今次是踎低左之後加入 Shift Right 及 Shift Left 最後企番起身 ,
今次唔講咁多啦 , 自己睇片啦 ( 影片一儲存 ) ( 影片二儲存 )

時間 , 速度 及 角度

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

片段2 高解像儲存

香港、超級銷售天堂

十一月 14, 2007 2 comments

香港、超級銷售天堂


話說早兩天進得測試的時侯 ,TK01 突然半邊身體乏力
,經過醫師診斷,發覺患上胃病,消化不良,大家可看到胃部左邊鋰電有輕微發脹,醫師覺得個胃用左咁耐都係時候啦,所以決定換胃。

就在放工去買明天裝機要用的零件時,發覺今期的無線電製作以二足機械人做封面,咁諗住有教做二足,立刻買左一本,但係睇下睇下,原本封面係廣告來的,內容跟本連腳趾都無一隻,真係即時
" 頂 " 一聲叫出來,呢個真係一個谷書的好手法,又有廣告收,又去到書。


買完開工野,走去模型街買番個胃,跟住跟手睇下有無舵螺儀,個老闆令左隻 $1700
蚊的比我睇,我心諗:老闆唔好玩啦,幾粒電子零件駛唔駛咁貴呀?

點知個老闆好似睇穿我個心一樣,話有 digital servo 跟,好呀反正無諗住買睇下先,咁問老闆

我:digital servo 係咪裹面行 optical ,唔行 VR 架?

佢:應該唔係啦,不個 signal 準好多。

我:咁個 signal 係咪都係 PWM 來架?

佢:嘩,你重專業過我。 ……..

 

當時再一次諗,原來香港 D sales 真係咁知自己賣緊乜架,最後睇左個舵螺儀的 manual
發覺最小角度得 +- 10 度,唔啱洗,閃。

析開了的鋰電池


電池裹的軟片組



最後在好奇之下將個舊胃析開,發覺裹面你一塊塊好薄的軟片,原來我地平時用的鋰電池,內裹應該就係咁,咁就百幾二百了,

最近幫客安裝的日版 Sony 52" flat panel
SXRD TV,比港版靚好多倍,而且個客問屋 D 裝修又靚,不妨參考下。


Categories: 未分類

Transformers 變形金剛

十一月 1, 2007 Leave a comment

終於等到啦 , 變形金剛今天 DVD 上市 , 分別應有四個版本(未計其他地方版本) ,

香港行版分別有普通雙碟版 , 玩具雙碟版及鐵盒雙碟版 , 以及 HD-DVD 版 ,

好可惜冇 Blu-ray 版 , 如果唔係一定選 Blu-ray , 故此 TK01 暫停一天開發 ,

不便之處 , 敬請原諒 .

TR 

Categories: 未分類
Follow

Get every new post delivered to your Inbox.