2015/05/17


本篇的主角是萊恩大兵的兩個兒子 Willie 和 Kenny. 萊恩大兵為他們兩個安排了 LEGO NXT 機器人的家教.

2015/5/9, 第四課 (1.5hr), 雙馬達驅動車

第一段, 車輪轉彎的原理


老師公佈主題~ 雙馬達驅動車. 兩兄弟已經做過很多次很多種車子了, 這個雙馬達驅動車和以前做的車有什麼不同? 以前的左右車輪是同軸心, 不能轉彎. 今回的雙馬達驅動車, 左右兩個輪子是分離軸心. 當兩邊輪子轉速不同時, 就會造成轉向.



//-- 要怎麼控制兩個馬達的轉速, 精準地產生速差呢? NXT Mindstorms 已把底層的麻煩事處理掉了. 兩兄弟只需要在 Move 程式格 Steering 屬性中, 調整滑桿的位置, 就可以設定輪胎左彎(或右彎)的效果出來. --//




第二段, 目標讓車子繞桌子跑一圈

老師給出目標~ 讓車子繞桌子跑一圈.

要怎麼做呢? 首先記住, 一個程式格只能做一件事.

所以, 要讓車子繞桌子跑一圈, 車子得: [1] 跑長邊直線 [2] 左轉 [3] 跑短邊直線 [4] 左轉 [5] 跑長邊直線 [6] 左轉 [7] 跑短邊直線.

//-- 老師在這邊順道教了兩兄弟複製與貼上 (Ctrl+C, Ctrl+V) --//



跑直線~ 要拉個 Move 程式格, 決定馬達轉動方向, 估算馬達出力多少, 要轉多久(或多少圈), 才能剛好跑完.

轉彎~ 也是 Move 程式格, 除了轉動方向, 出力與作用時間, 還要設定 Steering 的左(右)轉.


再來啦, 就是不斷的測試 -> 修正 -> 測試 -> 修正, 直到結果正確達成任務.



第三段, 一直測試一直修正

兩兄弟經驗豐富, 老師就不示範做雙馬達驅動車, 兩兄弟直接動手.



雙馬達驅動車, 要由前輪驅動, 軸距短一點, 轉彎效果比較明顯. 不用四個輪子都做出來, 做兩個前輪即可, 車子會比較好轉彎.

哥哥 Willie 動作比較快, 早早就把車做出來, 搶著先去寫程式. 弟弟 Kenny 在做車體的時候, 沒比對 NXT 的孔位, 就直接憑空組裝輪子, 被老師噹了一下.



哥哥 Willie 做的雙馬達驅動車(第一版)





測試的時候發現, 哥哥的馬達裝反. 下左轉指令, 實際動作卻是右轉. 本來是想硬著頭皮改指令參數硬撐過去, 測試幾次覺得太難調整了. 狠下決心打掉重練..


哥哥 Willie 做的雙馬達驅動車(第二版)





弟弟 Kenny 做的雙馬達驅動車





Willie 興沖沖地下載好程式, 抱著車要繞桌子做測試了. 被老師攔下來~ 再叮嚀一次, 寫程式或測試時要注意什麼事?



(1) 每個 Move 程式格的馬達切換屬性要設為急停.
//-- 程式格之間切換的乾淨一點, 測試結果比較好掌控 --//

(2) 每個 Move 程式格的馬達出力要一致. 
//-- Kenny 就遇到出力設定不一致, 使得測試結果不如預期的狀況 --//

(3) 每次繞桌子的起點要固定. 
//-- 測試就是要控制變數, 才會知道每次參數的作用 --//

(4) 要在白板記下每一程式格的參數值.

* Willie 的版本. 

解釋一下. 他是用馬達轉動圈數做控制. 
  [1] 的長邊直線是往前轉 7.8 圈.
  [2] 的轉彎是左轉, 馬達轉 0.55 圈.
  [3] 的短邊直線是往前轉 6.1 圈. 
  [4] 的轉彎是左轉, 馬達轉 0.55 圈.
  [5] 的長邊直線是往前轉 10 圈.
  [6] 的轉彎是左轉, 馬達轉 0.53 圈.
  [7] 的短邊直線是往前轉 6.1 圈.




* Kenny 的版本.

解釋一下. 他是用馬達轉動秒數做控制. 
  [1] 的長邊直線是往前轉 4 秒.
  [2] 的轉彎是左轉, 馬達轉 0.75 秒.
  [3] 的短邊直線是往前轉 4.2 秒. 
  [4] 的轉彎是左轉, 馬達轉 0.66 秒.
  [5] 的長邊直線是往前轉 6 秒.
  [6] 的轉彎是左轉, 馬達轉 0.68 秒.
  [7] 的短邊直線是往前轉 5 秒.




//-- 兩兄弟的車跑對稱的長邊或短邊, 參數值卻不一樣. 萊恩大兵認為可能的原因有:
(1) 兩兄弟筆記抄錯.
(2) 他們車的結構不穩又拖著地走, 執行的結果很容易產生誤差. 
--//


[萊恩大兵的其它文章]

LEGO NXT 機器人 學習記錄

學習記錄, LEGO NXT 機器人, (1) 聲控自走車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (2) 簡易程式控制車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (3) 第一隻程式與荷蘭風車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (4) 雙馬達驅動車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (5) 萬向輪與三輪車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (6) 模仿動作的學習機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (7) 拉小提琴的音樂機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (8) 和聲音啟動車玩一二三木頭人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (9) 用觸踫感應器做賽馬比賽 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (10) 用超音波感應器玩鬼抓人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (11) 用光源感應器讓車車折返跑 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (12) 用光源感應器做直線遊園車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (13) 用光源感應器做迴轉遊園車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (14) 踫踫車, 感應器與程式格進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (15) 絕地逢生車, 感應器與程式格進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (16) 自動車庫門, 迴圈程式格進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (17) 摩天輪, 減速齒輪組進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (18) 直線競速車, 加速齒輪組進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (19) 倒車入庫 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (20) 伸縮毛毛蟲 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (21) 學習手臂 (LEGO, NXT)

0 意見:

張貼留言