感應器(sensor)應用

一、感應器(sensor):或稱感測器

可程式化的控制主機(NXT控制器):
註:NXT 控制器的4個感應器輸入埠(1、2、3、4)簡介如下:

(一)觸感應器(或稱『感測器』):Touch Sensor偵測按壓或放開。例如碰碰車。

 觸動感測器:性能上與 RCX 觸動感測器一樣,但 NXT 觸動感測器前端帶有十字孔,方便我們製作緩衝器。
註:直接以內建程式測試:
(1)控制器開機後選擇『View→Touch』,將觸碰感測器接到對應的port(1~4) 。
(2)用手按壓,螢幕上會顯示讀數,1表示按住,0表示放開,可做撰寫程式時參考。

【程式設計1(檔名:nxc_sensor_1-1.nxc)


【程式設計2(檔名:nxc_sensor_1-2.nxc)


【程式設計3(檔名:nxc_sensor_1-3.nxc)


(二)聲音感應器(或稱『聲音感測器)Sound Sensor偵測音量大小,0-100分貝(db)。

 1.能測量普通聲音(dB)和用 A 計權測量的分貝(dBA)。
 2.能識別聲音模式。
 3.能進行音調的識別,頻率越高聲音的音調越高度。
註:直接以內建程式測試:
(1)控制器開機後選擇『View→Sound dB,將聲感sensor接到對應的port(1~4) 。
(2)將sensor靠近欲判斷之聲源,螢幕上會顯示讀數,可做撰寫程式時參考。
(3)程式讀取到的單位為百分比,不需加%。

【程式設計1(檔名:nxc_sensor_2-1.nxc)

【程式設計2(檔名:nxc_sensor_2-2.nxc)


(三)光感應器(或稱『光電感測器)Light Sensor 測顏色或光線所呈現的明暗度;光源亮度為0-100%(數值越大時越亮)。

 1.可以讀取周圍環境光的強度。
 2.可以從紅外發射管的反射光來讀值。
 3.可以識別顏色,靈敏度更高。
 4.紅外發光管是可以關掉的,從而達到唯讀取環境光的強度。
註:直接以內建程式測試:
(1)控制器開機後選擇『View→Reflected light』,將光感sensor接到對應的port(1~4),選擇後會亮紅光。
(2)若sensor靠近欲判斷之處,螢幕上會顯示讀數,可做撰寫程式時參考。
(3)程式讀取到的單位為百分比,不需加%。

【程式設計1(檔名:nxc_sensor_3-1.nxc)


【程式設計2(檔名:nxc_sensor_3-2.nxc)


(四)超音波感應器Ultrasonic Sensors偵測測量距離0-255cm,若距離受測物過遠或過近都會顯示「??????」錯誤訊息。

 1.能測量距離,範圍在0-255cm 之間,檢測誤差+/-3cm,檢測角度150度。
 2.能識別物體,透過檢測距離能識別物體運動。
註:直接以內建程式測試:
(1)控制器開機後選擇『View→Ultrasonic cm』,將超音波sensor接到對應的port(1~4) 。
(2)
(2)螢幕上會顯示超音波讀數,sensor藉由超音波反射測量距離。單位可選擇公分或英吋,範圍約0~255 cm。


【程式設計(檔名:nxc_sensor_4.nxc)


(五)顏色感應器Color Sensor 

【程式設計(檔名:nxc_ColorFull.nxc)


二、Multithreading & #define 應用

  • 利用#define定義函數的方法,是在每一行後面加上「\」,最後面的大括號「}」後面不用加「\」。
  • 利用函數Precedes(task1_name, task2_name, …, taskN_name); 可達到類似平行處理的效果。
【程式設計(檔名:nxc_multithreading.nxc)



延伸思考:機器人一開始是靜止,拍一下手掌便直行走,再拍一下暫停動作,再拍一下又繼續行走。