Click Here to

Download Report

Transcript Click Here to

LEGO 講義3
1. Hitechnic 紅外線sensor介紹
2. Hitechnic 顏色sensor介紹
3. Hitechnic 加速度sensor介紹
4. Hitechnic 電子羅盤介紹
5. 期末Project規定
1
Introduction
• 除了LEGO原廠套件所包含的sensor以外,也有
其他公司所出品,支援NXT的多種sensor。
• 以下為Hithchnic公司所生產sensor的簡介,包
含:
–
–
–
–
2
紅外線 sensor
顏色 sensor
加速度 sensor
電子羅盤
1. HITECHNIC 紅外線SENSOR
3
Hitechnic 紅外線sensor
• sensor內部含五顆紅外線感測器,分別以
60度散開。
• 程式寫法可使用超音波的宣告方式。
• 需可發射紅外線之器材當發射源(如紅外線
球,人體不行),否則sensor沒有讀值。
4
2. HITECHNIC 顏色SENSOR
5
Hitechnic 顏色sensor
根據顏色差異傳回不同值。
程式寫法可使用超音波宣告方式。
測試方法:View->Ultrasonic cm
注意sensor距離不可太近或太遠,否則可
能讀不到值。
• 讀值總共1到17,請依實際環境測試為準。
(下圖僅供參考)
•
•
•
•
1
6
2
3
4
5
6
7
8
9
10
3. HITECHNIC 加速度SENSOR
7
Hitechnic 加速度sensor
• 加速度計,測量重力加速度的方向
• 程式寫法可使用超音波宣告方式。
• 水平面往上讀值為1-50,往下為255-205。
• 測試方法:View->Ultrasonic cm
8
4. HITECHNIC 電子羅盤
9
Hitechnic 電子羅盤
• 電子羅盤程式寫法也可使用超音波的宣告
方式。
• 測試方法:View->Ultrasonic
• 讀數乘上2為實際角度,以sensor頭對準,
正北邊讀數0度、東邊讀數45度(x2即90度)
、南邊讀數90度、西邊讀數135度、接近北
邊讀數至179度為止。
• 請注意sensor的方向,否則可能會發現東
西向是相反的,組裝前請先確認sensor方
向正不正確。
10
Multithreading & #define 範例
• 以電子羅盤為範例的程式:
#include "NXCDefs.h"
task main(){
SetSensorLowspeed(IN_1);
int dir;
while(true){
dir = SensorUS(IN_1);
NumOut(0, LCD_LINE1, dir, true);
if(dir>125 && dir<145)
OnFwd(OUT_A,50);
else
Off(OUT_A);
}
11
// 同超音波的宣告方式
// 讀取sensor數值
// 印出dir的值
實驗練習
• 請同學以事先組好的輪型機器人,加上超音波
sensor與光感sensor。做出能在黑線範圍內避障
的機器人,場地會用黑色膠布圍住,內部任意位
置會放置障礙物,機器人功能需保持在黑線範圍
內,並以超音波sensor避開障礙物。
• Bonus:另外裝上touch sensor,以touch
sensor當作程式執行/暫停的切換開關。
12
期末Project規定
13