物體感測器#
介紹#
objectdetector 類別用於測量反射率並透過物體感測器偵測物體。
類別建構函數#
objectdetector(
triport::port &port,
bool bReverse = false );
類別析構函數#
銷毀 objectdetector 物件並釋放相關資源。
virtual ~objectdetector();
參數#
範圍 |
類型 |
描述 |
|---|---|---|
|
|
物體感測器連接的 3 線端口,寫成 |
|
|
可選布林值,用於反轉物體感測器的方向:
|
範例#
// Create an objectdetector instance in Port A
objectdetector ObjectSensorA = objectdetector(Brain.ThreeWirePort.A, true);
成員功能#
objectdetector 類別包含以下成員函數:
reflectivity— 返回物體感測器偵測到的反射率。isObjectDetected— 傳回物件感測器是否偵測到物件。setDetectionThreshold— 設定物件感測器的偵測範圍。objectDetected— 註冊一個當物體感測器偵測到物體時要呼叫的函數。objectLost— 註冊一個當物體感測器遺失物體時要呼叫的函數。
在呼叫任何 objectdetector 函數之前,必須先建立 objectdetector 實例,如下所示:
// Create an objectdetector instance in Port A
objectdetector ObjectSensorA = objectdetector(Brain.ThreeWirePort.A, true);
reflectivity#
返回物體感測器測量的反射率。
Available Functionsint32_t reflectivity(
percentUnits units = percentUnits::pct );
參數 |
類型 |
描述 |
|---|---|---|
|
|
反射率單位:
|
傳回一個 int32_t 表示物體偵測器測量的反射率,以百分比表示,範圍為 0 - 100%。
// Display the detected reflectivity on the Brain's screen
int32_t value = ObjectSensorA.reflectivity();
Brain.Screen.print(value);
isObjectDetected#
傳回物件偵測器目前是否偵測到某個物件。
Available Functionsbool isObjectDetected();
此函數不接受任何參數。
Return Values傳回布林值,指示是否偵測到物件:
-
true— An object is detected. -
false— No object is detected.
setDetectionThreshold#
將目標偵測器的偵測閾值設定為特定值。
Available Functionsvoid setDetectionThreshold(
int32_t threshold,
percentUnits units = percentUnits::pct );
參數 |
類型 |
描述 |
|---|---|---|
|
|
目標偵測的反射率閾值,範圍為 0 - 100。 |
|
|
代表新閾值的單位:
|
此函數不傳回值。
Examples// Set the reflectivity threshold to 50%
ObjectSensorA.setDetectionThreshold(50);
objectDetected#
註冊一個回調函數,用於在偵測到物件時執行該回呼函數。
Available Functionsvoid objectDetected(void (* callback)(void));
範圍 |
類型 |
描述 |
|---|---|---|
|
|
偵測到物件時要呼叫的回調函數。 |
此函數不傳回值。
Examples定義回呼函數(在
int main()之外)// Display a message when an object is detected. void detected() { Brain.Screen.print("object detected"); }在
int main()中註冊回呼函數int main() { // Run detected when the Object Detector detects an object. ObjectSensorA.objectDetected(detected); }
objectLost#
註冊一個物件遺失時的回調函數。
Available Functionsvoid objectLost(void (* callback)(void));
範圍 |
類型 |
描述 |
|---|---|---|
|
|
物件遺失時要呼叫的回調函數。 |
此函數不傳回值。
Examples定義回呼函數(在
int main()之外)// Display a message when an object is lost. void lost() { Brain.Screen.print("object lost"); }在
int main()中註冊回呼函數int main() { // Run lost when the Object Detector loses an object. ObjectSensorA.objectLost(lost); }