2015/10/20


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

2015/9/26, 第十五課, 絕處逢生車, 感應器與程式格進階應用

上週課程, 兩兄弟實作踫踫車來整合複數個(觸踫)感應器, 也深刻體會 Switch 程式格的簡易與強大威力. 本週再接再厲, 老師又出了個好題目來讓兩兄弟練習.





第一段, 觸踫感應器與 Switch 程式格的進階應用.

題目就是~ 絕地逢生車.  

這題目還真玄妙. 兩兄弟完全無法猜出到底是要做什麼. 老師解釋:
* 絕地, 意指非常惡劣, 嚴苛, 困難的環境. 例如: 沙漠, 冰原, 懸崖 等.
* 逢生, 就是求生存, 找尋出路的意思.

兩個詞合起來就是一台能克服困難險境, 求得生存立足安全之地的車子.

看兩兄弟的表情似懂非懂, 老師繼續說明..

惡劣的環境.. 先不要太難, 就訂為高低落差很大的場地, 例如桌面與地板. 那要克服什麼困難呢? 目標就是~ 讓車子能在桌面自動跑, 卻不會摔落到地板上.

老師丟問題給兩兄弟:

[Q] 要用什麼方法, 哪些裝置, 才能達成這個功能呢?

雖然 Kenny 第一猜即中答案, 老師還是帶兩兄弟逐個檢討各種感應器適不適用.



* 聲音感應器.. 不適用. 
* 光源感應器.. 不適用.
* 超音波感應器能偵測距離, 似乎可用. 可是, 超音波感應器有距離限制, 太近或太遠均不適用.

所以還是觸踫感應器比較適合.

[Q] 要怎麼感測高低落差呢?

基本想法是讓觸踫感應器安裝在車頭, 觸踫感應器貼著地板, 壓住探測的彈簧. 當遇到深坑或懸崖, 感應器彈簧鬆開, 則車子就要改變路徑避開䧟阱了. 

想法有了, 老師進一步帶領兩兄弟分析程式的演算法.

觸踫感應器有壓下與彈起兩種狀態, 所以就是要用 Switch 程式格了.



* 在壓下的狀態時,  代表是在平地, 車子就一直往前走 (Move 程式格, 方向? 出力多少? 作用多久?).
* 彈起來時, 代表偵測到深坑或懸崖, 車子得停下來 (Move 程式格, 急剎), 轉往安全路徑.

問題來了.. 什麼叫做安全路徑? 

老師分析給兩兄弟聽: 車子已偵測到前方有高低落差, 當然就不能再往前進了. 那該左轉走還是右轉走好呢? 答案都不是. 唯一安全的, 是車子剛剛走過的路.. 所以要讓車子後退幾步, 然後才能稍稍轉個方向, 再繼續往前探測.  (在程式碼方面, 則要用 Move 程式格, 動作則是後退, 轉向以及再前進)

//— 萊恩大兵覺得這段安全路徑的分析, 才是這堂課最精采之處. 只是兩兄弟的智識程度, 還不及理解這妙處. —//


第二段, 製作特殊機構來擺置觸踫感應器



這台絕地逢生車的觸踫感應器可不是隨便安裝的. 老師提醒了幾個要點:

* 觸踫感應器要安裝在車頭前方. (要不然走的方向與探測方向不同, 不就沒意義了嗎..)

* 觸踫感應器要裝離車身稍微裝遠一點, 愈早發現險境愈好. (要將感應器裝遠一點, 得設計一個伸長的結構. 可能會遇到結構軟趴趴, 強度不夠支撐的問題.)

* 需調整程式/馬達的轉速, 以免車子衝太快, 即便有探測到險境, 車子還是衝落山. 但也不能讓車子慢到像烏龜在爬.


第三段, 測試, 修改與調整


Willie 的作品

哥哥今天要拚一下. 車子不用輪胎, 而是改用履帶. 這是很不同以往的突破, 要給他拍拍手. 前方探測器加兩個輪胎主要是為了加重, 以免探測器踫不到地板.
















從動圖可以看出一個問題:
(一) 車子感應到險境後退後, 又會多退一次. 而且還退挺長一段距離, 差點要摔下桌了. 





Kenny 的作品

在測試的時候, Kenny 的車感應器懸空時, 車頭會稍微掉下去. 可是車的後退力道不夠大, 結果就卡在懸崖邊. 真是尷尬.














從動圖可以看出一個問題:
(一) 它摔下桌了, 好慘啊. 本來 Kenny 這台車表現還不錯的, 該退都有退. 沒想到正式拍攝時, 卻突然來摔這一下.



兩兄弟的作品合照





[萊恩大兵的其它文章]

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 意見:

張貼留言