Cảm biến vật thể#

Giới thiệu#

Lớp objectdetector được sử dụng để đo độ phản xạ và phát hiện vật thể bằng ánh sáng hồng ngoại (IR) của Cảm biến Vật thể.

Hàm tạo lớp#

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

Lớp Destructor#

Hủy đối tượng objectdetector và giải phóng các tài nguyên liên quan.

virtual ~objectdetector();

Thông số#

Tham số

Kiểu

Sự miêu tả

port

triport::port &

Cổng 3 dây mà Cảm biến vật thể được kết nối, được viết là Brain.ThreeWirePort.X hoặc ExpanderName.X, trong đó X là ký tự của cổng (ví dụ: Brain.ThreeWirePort.A hoặc Expander1.A).

bReverse

bool

Một biến boolean tùy chọn để đảo chiều cảm biến vật thể:

  • false (mặc định) — Không đảo chiều
  • true — Đảo chiều

Ví dụ#

// Create an objectdetector instance in Port A
objectdetector ObjectSensorA = objectdetector(Brain.ThreeWirePort.A, true);

Chức năng thành viên#

Lớp objectdetector bao gồm các hàm thành viên sau:

  • reflectivity — Trả về độ phản xạ được phát hiện bởi Cảm biến Đối tượng.

  • isObjectDetected — Trả về liệu Cảm biến Đối tượng có phát hiện đối tượng hay không.

  • setDetectionThreshold — Đặt phạm vi phát hiện của Cảm biến Đối tượng.

  • objectDetected — Đăng ký một hàm sẽ được gọi khi Cảm biến Đối tượng phát hiện một đối tượng.

  • objectLost — Đăng ký một hàm sẽ được gọi khi Cảm biến Đối tượng mất một đối tượng.

Trước khi gọi bất kỳ hàm thành viên objectdetector , cần phải tạo một thể hiện objectdetector objectdetector hiển thị bên dưới:

// Create an objectdetector instance in Port A
objectdetector ObjectSensorA = objectdetector(Brain.ThreeWirePort.A, true);

reflectivity#

Trả về giá trị độ phản xạ được đo bởi Cảm biến vật thể.

Available Functions
int32_t reflectivity( 
  percentUnits units = percentUnits::pct );

Parameters

Thông số

Kiểu

Sự miêu tả

units

percentUnits

Đơn vị biểu thị độ phản xạ:

  • percent phần pct — phần trăm

Return Values

Trả về một giá trị int32_t biểu thị độ phản xạ được đo bởi Bộ dò vật thể dưới dạng phần trăm trong khoảng 0 - 100%.

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

isObjectDetected#

Trả về trạng thái cho biết liệu có đối tượng nào hiện đang được phát hiện bởi Bộ phát hiện đối tượng hay không.

Available Functions
bool isObjectDetected();

Parameters

Hàm này không nhận tham số nào.

Return Values

Trả về giá trị Boolean cho biết liệu có phát hiện thấy đối tượng hay không:

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

setDetectionThreshold#

Thiết lập ngưỡng phát hiện cho Bộ phát hiện đối tượng thành một giá trị cụ thể.

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

Parameters

Thông số

Kiểu

Sự miêu tả

threshold

int32_t

Ngưỡng phản xạ để phát hiện vật thể, trong khoảng 0 - 100.

units

percentUnits

Đơn vị biểu thị ngưỡng mới:

  • percent phần pct — phần trăm

Return Values

Hàm này không trả về giá trị nào.

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

objectDetected#

Đăng ký một hàm gọi lại khi phát hiện thấy một đối tượng.

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

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Hàm gọi lại sẽ được thực thi khi phát hiện thấy một đối tượng.

Return Values

Hàm này không trả về giá trị nào.

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

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

objectLost#

Đăng ký một hàm gọi lại khi một đối tượng bị mất.

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

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Hàm gọi lại sẽ được thực thi khi một đối tượng bị mất.

Return Values

Hàm này không trả về giá trị nào.

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

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