เซ็นเซอร์วัตถุ#

การแนะนำ#

คลาส objectdetector objectdetector การสะท้อนแสงและตรวจจับวัตถุด้วยแสงอินฟราเรด (IR) ของเซ็นเซอร์วัตถุ

คอนสตรัคเตอร์คลาส#

objectdetector( 
  triport::port &port, 
  bool           bReverse = false );

ตัวทำลายคลาส#

ทำลายอ็อบเจ็กต์ objectdetector จำนวน ตัว และปล่อยทรัพยากรที่เกี่ยวข้อง

virtual ~objectdetector();

พารามิเตอร์#

พารามิเตอร์

พิมพ์

คำอธิบาย

port

triport::port &

พอร์ต 3 สายที่เชื่อมต่อกับเซ็นเซอร์วัตถุ เขียนเป็น Brain.ThreeWirePort.X หรือ ExpanderName.Xโดยที่ X คือตัวอักษรของพอร์ต (ตัวอย่างเช่น Brain.ThreeWirePort.A หรือ Expander1.A)

bReverse

bool

ค่าบูลีนเสริมสำหรับกลับทิศทางของเซ็นเซอร์วัตถุ:

  • false (ค่าเริ่มต้น) — ไม่กลับทิศทาง
  • true — กลับทิศทาง

ตัวอย่าง#

// 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 Functions
int32_t reflectivity( 
  percentUnits units = percentUnits::pct );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

percentUnits

หน่วยที่ใช้แสดงค่าการสะท้อนแสง:

  • percent pct 1/2 เปอร์เซ็นต์

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงถึงค่าการสะท้อนแสงที่วัดได้จากตัวตรวจจับวัตถุเป็นเปอร์เซ็นต์ในช่วง 0 - 100%

Examples
// Display the detected reflectivity on the Brain's screen
int32_t value = ObjectSensorA.reflectivity();
Brain.Screen.print(value);

isObjectDetected#

ส่งคืนค่าว่าขณะนี้ตัวตรวจจับวัตถุตรวจพบวัตถุนั้นอยู่หรือไม่

Available Functions
bool isObjectDetected();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าตรวจพบวัตถุหรือไม่:

  • true — An object is detected.
  • false — No object is detected.

setDetectionThreshold#

ตั้งค่าเกณฑ์การตรวจจับสำหรับตัวตรวจจับวัตถุเป็นค่าเฉพาะ

Available Functions
void setDetectionThreshold( 
  int32_t      threshold, 
  percentUnits units = percentUnits::pct );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

threshold

int32_t

ค่าความสะท้อนแสงที่ใช้ในการตรวจจับวัตถุ อยู่ในช่วง 0 - 100

units

percentUnits

หน่วยที่แสดงถึงเกณฑ์ใหม่:

  • percent pct 1/2 เปอร์เซ็นต์

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Examples
// Set the reflectivity threshold to 50%
ObjectSensorA.setDetectionThreshold(50);

objectDetected#

ลงทะเบียนฟังก์ชันเรียกกลับ (callback function) สำหรับกรณีที่ตรวจพบวัตถุ

Available Functions
void objectDetected(void (* callback)(void));

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันเรียกกลับที่จะถูกเรียกเมื่อตรวจพบวัตถุ

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Examples
void detected() {
  Brain.Screen.print("object detected");
}

// Run detected when the Object Detector detects an object
ObjectSensorA.objectDetected(detected);

objectLost#

ลงทะเบียนฟังก์ชันเรียกกลับสำหรับกรณีที่วัตถุสูญหาย

Available Functions
void objectLost(void (* callback)(void));

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันเรียกกลับที่จะถูกเรียกเมื่อวัตถุสูญหาย

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Examples
void lost() {
  Brain.Screen.print("object lost");
}

// Run lost when the Object Detector loses an object
ObjectSensorA.objectLost(lost);