420 likes | 618 Views
Lego 機器人. 基礎元件與感測器. 硬體元件. NXT 主機 Motor * 3 感測 器:觸碰感測器、聲音感測器、光源感測器、超音波感測器 各式機構零件. NXT 主機. 馬達. 當執行任何需要「動」的指令時,馬達是絕對不可缺少的部分。 馬達裡內建角度感測器 ( 旋轉感測器 ) ,可以用來測量速度和距離 角度感測器所控制的角度可精確到轉動 1 度. 觸碰感測器. 主要判別為壓入 ( 數值為 1) ,及無壓入 ( 數值為 0) 常被使用為程式中的開關鈕 前端有十字孔,方便製作緩衝器,可以用來偵測機器人有沒有撞到障礙物。. 聲音感測器.
E N D
Lego 機器人 基礎元件與感測器
硬體元件 • NXT 主機 • Motor * 3 • 感測器:觸碰感測器、聲音感測器、光源感測器、超音波感測器 • 各式機構零件
馬達 當執行任何需要「動」的指令時,馬達是絕對不可缺少的部分。 馬達裡內建角度感測器(旋轉感測器),可以用來測量速度和距離 角度感測器所控制的角度可精確到轉動1度
觸碰感測器 • 主要判別為壓入(數值為1),及無壓入(數值為0) • 常被使用為程式中的開關鈕 • 前端有十字孔,方便製作緩衝器,可以用來偵測機器人有沒有撞到障礙物。
聲音感測器 • 可以偵測環境中的音量大小 • 在調整分貝模式裡,所收集到的數據近乎人類耳朵所聽見的範圍。 • 將接收到的數值轉換為一個介於0(最安靜)到100(最吵雜)之間的值 • 有些數據人類是沒有辦法聽見的,例如:超聲波、超低音、超高音等。
光源感應器 • 可以分辨光線的強弱 • 將接收到的數值轉換為一個介於0(最暗)到100(最亮)之間的值。 • 光源感應器可以由 • 紅外線發射管的反射光來讀值: • 顏色較暗的物體,回傳值較低; • 顏色較亮的物體,回傳值較高。 • 紅外線發射管也可以關掉,進而達到只讀取環境光的強度。
超音波感應器 • 用來測量距離、發現障礙物、偵測物體的移動 • 其原理是發射超音波(圖中左邊的「眼睛」),再接收超音波(圖中右邊的「眼睛」),依據超音波從發射到接收的時間差異,計算距離物體的遠近。 • 偵測的範圍約在0~250公分之間,精確度是±3公分 • 如果在同一間房間,有一個以上的超音波感應器正在運行,NXT所得的數據會有很大的偏差。
Try Me • Port 1 : 觸碰感測器 Touch • Port 2 : 聲音感測器 Sound • Port 3 : 光源感測器 Light • Port 4 : 超音波感測器 UltraSonic
NXT Program • Forward 5 – Empty – Backward 5 – Empty – Stop • Run • 觀察是否走直線
基本行進控制 – Move 指令參數設定 • Port (連接埠):預設為左輪接 Port C,右輪接 Port B。 • Direction(行進方向):可選擇前進、後退或停止。 • Power:決定電力大小。 • Duration:可設定 • Unlimited(無限執行) • Degrees(指定馬達旋轉角度) • Rotations(指定馬達旋轉圈數) • Seconds(指定選轉秒數) • Steering:控制左右輪轉速差來讓車子轉彎。
基本行進控制 –Move 指令 • 哪些設定會影響行進速度? • 哪些因素會影響行進距離?轉彎角度? • 測量練習
基本行進控制 – Move 指令應用 • 請設計程式來控制自動車,在教室的地面上 • 原地左轉一圈。 • 沿一直徑約60cm 的圓旋轉一圈。 • 走一約 60cm*60cm 的正方形軌跡。
觸碰感應器 Touch Sensor線控車 按一下前進,再按一下煞車,如此重複執行
觸碰感應器 練習– 線控車 • 加速控制: • 觸碰感應器按一下:用 motor power 25 前進 • 觸碰感應器再按一下:用 motor power 50 前進 • 觸碰感應器再按一下:用 motor power 75 前進 • 觸碰感應器再按一下:用 motor power 25 前進 • 如此重複循環 • 油門煞車 • 使用兩個觸碰感測器,一個模擬油門,一個模擬煞車 • 按下油門車子前進 • 按下煞車車子靜止
觸碰感測器– 碰碰車 • 在車子前端安裝一觸碰感測器 • 若碰到障礙物則倒退轉彎 • 經三次碰撞到達終點
聲音感測器 與 參數傳遞聲控車 將聲音感測器的Sound Level 參數 傳遞給 Move 指令作為 Power 數值 音量大小將決定馬達轉速
光源感測器 Light Sensor • 觀測紀錄二 影響光感值之因素 • 距離與光感值 • 顏色與光感值 • 材質與光感值 • 環境光的影響 • 請將觀測結果紀錄於附件檔中
光源感應器—偵測黑線 車子一直往前走 (Unlimited) 直到偵測到黑線為止 請先測量白底與黑線的光感值,自行定義適當之邊界值 馬達轉速是否影響正確性?
光源感應器 – 偵測黑線 迴圈版 • 重複指令會自動重複執行框框中的指令碼,直到終止條件成立。重複指令的終止條件有幾種語法: • Forever (永遠): 無窮迴圈,不斷的重複執行,永不終止。 • Sensor (感測器) : 根據感測器的輸入值決定是否終止。 • Time (時間): 執行指定的秒數後停止。 • Count (次數): 執行指定的次數後停止。 • Logic (邏輯值):當輸入的邏輯值為 True 時停止。
光源感應器 – 偵測黑線 平行版 • 左圖中的程式有兩個分支。 • 第一個分支是Move Unlimited (一直往前走) • 第二個分支是等候光源感測器偵測到黑線就停下來。 • 按住Shift 鍵將兩個分支的程式連起來,這兩段程式就會同時執行,也就是說:一邊前進、一邊偵測光源感測器是否看到黑線,當看到黑線就停下來。
光源感應器 – 偵測黑線 平行版 • 我們可以將上面的程式定義成一個 Block (副程式),方便在主程式中呼叫使用。 • 定義Block 的步驟是: • 先把整段副程式框選起來 • 在功能表列選擇 Edit-Make a New My Block,如下圖 • 設定 Block Name (副程式名稱)
光源感測器重複偵測黑線 • 請修改上一個程式,改為重複偵測黑線 • 每次偵測到黑線暫停兩秒,再繼續前進偵測 • 提示:如何避免車子卡住停在黑線上?
奔向光明 • 請設計一程式,根據光感值決定車速 • 光感值越小車速越小,光感值越大車速越大
超音波感測器 來客統計 本程式宣告一個變數N 每當超音波偵測到有訪客(距離小於 30cm),就將變數N的數值加一 本範例可用於統計來客數做總量管制、或尋找幸運訪客(如第一百位)
超音波感測器 來客統計變數宣告 • 請選擇功能表列的 Edit / Define Variables • 按下Create 鈕,輸入變數名稱(Name) 及資料類型(Datatype) • 宣告完成後可在 Data 工具箱中找到宣告好的變數
超音波感測器 來客統計變數語法 下圖是在變數N寫入(Write) 起始值0的方法。 另外參數的傳遞是用拖曳滑鼠產生連接線的方式表達的,例如在下圖中變數N的值傳送給加法指令的參數A,和參數B (數值為1,在參數區設定)相加後,將相加的結果傳送給變數N (相當於將變數N的值加一)。上圖中的黃色線條代表參數值的傳遞方向。
變數的應用 找路機器人 • 請修改之前的範例程式,讓自動車在經過三條黑線後右轉90度,再經過兩條黑線後停車 • 需使用迴圈及變數 找到黑線退回原點 • 請修改之前的範例程式,讓自動車找到黑線後退回到原來的起點
超音波感應器 – 有禮的門房 偵測到有人則隨機打招呼 “Hello” 或 “Have a nice day”
超音波感測器應用 送往迎來 • 設計一程式,若有物體靠近則說 “Hello”,若有物體遠離則說 “Good Bye” • 提示:需偵測物體距離隨著時間變大或變小 • 提示:可用變數紀錄第一次測量和第二次測量時的障礙物距離
單光感循跡車 光源感測器感測到黑色 驅動右輪向左前方前進 光源感測器感測到白色 驅動左輪向右前方前進
單光感循跡練習 請設計一程式讓車子自動沿著上列軌跡行進 在不脫離軌跡的前提下,如何讓車子以最快速度完成循跡?
單光感循跡避障競賽 • 任務: • 需沿著白紙上用黑色膠帶貼成的軌跡前進,軌跡的大小及形狀未知。 • 在黑色軌跡上被任意放置兩個障礙物,障礙物擺放位置未知。 • 自動車需循黑色軌跡前進,當遇到障礙物時要繞道而行,繞道長度不可超過 2.5 個車身長度。 • 繞過障礙物後須再回到黑色軌跡上繼續循跡前進,直到終點。
單光感循跡避障競賽 • 競賽規則: • 全程不可擦撞障礙物,包括繞道後重新回到軌跡上時亦然。擦撞障礙物者視同任務失敗。 • 在任務成功的前提下,以最快速度回到終點者為優勝。 • 參考影片 • 優勝影片1:http://youtu.be/FAUJtchuhpQ • 優勝影片2:http://youtu.be/vjmcWIxILPI