2015/08/29


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

2015/8/22, 第十課, 用超音波感應器玩鬼抓人



第一段, 超音波感應器的特性


兩兄弟已經學過聲音與觸踫兩種感應器. 本週要學的第三種~ 超音波感應器.


不等兩兄弟思考, 老師拋問題出來~ 聲音感應器和超音波感應器有什麼不同? 聲音感應器的觸發行為是由音波的震動而產生, 和觸踫感應器類似. 而超音波感應器, 則是用來偵測距離. 看兩兄弟的眼神有點迷惑.. 老師舉例解釋: 蝙蝠. (兩兄弟平常有看一點 Discovery, 一點就通.) 蝙蝠是眼盲的, 飛行時, 是靠聲波回音來感測距離. 



了解超音波感應器的原理後, 接下來解釋超音波感應器的屬性就容易多了.





在 Mindstorm 的介面上, 超音波感應器的屬性欄裡面,

會有一朵花和一座山: 這兩個圖示在攝影器材上很常見, 花代表近距離, 山代表遠距離.
* 距離的設定, 則是有大於/小於的選項, 與一個可以填入距離值的數字格.
* 單位 cm/inch. cm 代表公分, inch 代表英吋. 1英吋等於 2.54 公分. 

//— 這些萊恩大兵覺得是常識的東西, 對兩兄弟來說, 可沒那麼當然. 得從頭一步一步教起.. —//

老師提醒幾個一般設定超音波感應器時, 常會犯的錯誤.


(1) 弄錯單位. 把 cm 設成 inch (或 inch 設成 cm). 使得感測距離和預期差太多.

(2) 超過或低於超音波感應器的有效距離. 
應用超音波感應器時, 設定太短的距離 (<10cm) 或太長的距離 (>180cm), Mindstorm 都會丟出錯誤訊息.

那麼, 今天課程要做什麼東西呢? 老師公佈題目~ 鬼抓人. 就是一堆小孩, 指定一個當鬼, 其他人則跑給鬼追, 不能被抓到的遊戲. 
所以要來做台一感應到人就會躲開的車.

第二段, 鬼抓人的程式怎麼寫?


//— 這邊萊恩大兵覺得老師的教學方法還不錯. 用引導的方式, 慢慢地訓練兩兄弟的分析與邏輯能力. —//


老師不畫黑板, 直接和兩兄弟聊起來:


(i) NXT 平常的時候, 就一直往前跑 (所以要用 Move 程式格, 一次轉幾圈/幾秒/多少角度? 數值不要設太大, 以免車子衝太快, 來不及反應. 而且要放進 Loop 程式格無限執行)

(ii) NXT 感測到有人或障礙物時, 就是遇到鬼了 (所以要用超音波感應器, 偵測小於某短距離), 趕快轉個方向躲開 (要用 Move 程式格, 兩輪轉速不同, 造成轉向)

(iii) NXT 躲開鬼之後, 繼續往前跑 (所以要用 Move 程式格, 一次轉幾圈/幾秒/多少角度? 而且要放進 Loop 程式格無限執行)

聊完程式邏輯也差不多清楚了. 
兩兄弟上機寫程式, 不一會兒就把程式寫完. 










Willie 程式擷圖, 很直覺的達成目的.


Kenny 的程式擷圖, 有嚐試解決車子躲避鬼時, 每次都轉向固定的角度/方位的問題.

//— 細心的 Kenny 注意到一個問題: 車子躲鬼逃避時, 轉向的角度都是固定的. 他有花了些心思, 嚐試去處理這個問題. 雖然用的方法不對.. —//

第三段, 實作超音波感應車


動手實作前, 老師只提醒~ 超音波感應器一定要安裝好, 避免它一直偵測到地面, 造成誤判. 
雖然兩兄弟已有很多實作的經驗, 這次在製作超音波感應車之前, 仍然遇到車體結構不穩, 馬達搖搖晃晃的問題. 讓老師花了不少時間幫忙調整. 

Willie 的作品

Willie 這次的作品有點特別, 是將 NXT 立起來, 再將馬達裝在兩側的不對稱設計, 是很難得的突破.









改版, 安裝上萬向輪




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

張貼留言