Czujnik obiektu#

Wstęp#

Klasa objectdetector służy do pomiaru współczynnika odbicia i wykrywania obiektów za pomocą światła podczerwonego (IR) czujnika obiektów.

Konstruktor klasy#

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

Destruktor klasy#

Niszczy obiekt objectdetector objectdetector i uwalnia powiązane zasoby.

virtual ~objectdetector();

Parametry#

Parametr

Typ

Opis

port

triport::port &

Port 3-żyłowy, do którego podłączony jest czujnik obiektu, zapisany jako Brain.ThreeWirePort.X lub ExpanderName.X, gdzie X to litera portu (na przykład Brain.ThreeWirePort.A lub Expander1.A).

bReverse

bool

Opcjonalna wartość logiczna, która odwraca kierunek czujnika obiektu:

  • false (domyślnie) — Nie odwracaj kierunku
  • true — Odwróć kierunek

Przykłady#

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

Funkcje członkowskie#

Klasa objectdetector zawiera następujące funkcje członkowskie:

  • reflectivity — Zwraca współczynnik odbicia wykryty przez czujnik obiektu.

  • isObjectDetected — Zwraca informację, czy czujnik obiektu wykrył obiekt.

  • setDetectionThreshold — Ustawia zakres wykrywania czujnika obiektu.

  • objectDetected — Rejestruje funkcję, która ma zostać wywołana, gdy czujnik obiektu wykryje obiekt.

  • objectLost — Rejestruje funkcję, która ma zostać wywołana, gdy czujnik obiektu utraci obiekt.

Przed wywołaniem jakiejkolwiek funkcji członkowskiej objectdetector objectdetector należy utworzyć instancję objectdetector objectdetector , jak pokazano poniżej:

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

reflectivity#

Zwraca współczynnik odbicia zmierzony przez czujnik obiektu.

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

Parameters

Parametry

Typ

Opis

units

percentUnits

Jednostka oznaczająca współczynnik odbicia:

  • percent / pct — procent

Return Values

Zwraca wartość int32_t reprezentującą współczynnik odbicia zmierzony przez detektor obiektów jako wartość procentową w zakresie 0–100%.

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

isObjectDetected#

Zwraca informację, czy obiekt jest obecnie wykryty przez detektor obiektów.

Available Functions
bool isObjectDetected();

Parameters

Funkcja ta nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość logiczną wskazującą, czy obiekt został wykryty:

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

setDetectionThreshold#

Ustawia próg wykrywania dla detektora obiektów na określoną wartość.

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

Parameters

Parametry

Typ

Opis

threshold

int32_t

Próg odbicia dla wykrywania obiektów w zakresie 0 - 100.

units

percentUnits

Jednostka oznaczająca nowy próg:

  • percent / pct — procent

Return Values

Ta funkcja nie zwraca wartości.

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

objectDetected#

Rejestruje funkcję wywołania zwrotnego na wypadek wykrycia obiektu.

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja wywołania zwrotnego, która ma zostać wywołana po wykryciu obiektu.

Return Values

Ta funkcja nie zwraca wartości.

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

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

objectLost#

Rejestruje funkcję wywołania zwrotnego na wypadek utraty obiektu.

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja wywołania zwrotnego, która ma zostać wywołana w przypadku utraty obiektu.

Return Values

Ta funkcja nie zwraca wartości.

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

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