Lego 機器人基礎元件與感測器 1

Download Report

Transcript Lego 機器人基礎元件與感測器 1

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