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