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 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

Xác định hàm gọi lại (bên ngoài int main())

// Display a message when an object is detected.
void detected() {
  Brain.Screen.print("object detected");
}

Đăng ký hàm gọi lại bên trong int main()

int main() {
  // 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

Xác định hàm gọi lại (bên ngoài int main())

// Display a message when an object is lost.
void lost() {
  Brain.Screen.print("object lost");
}

Đăng ký hàm gọi lại bên trong int main()

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