Czujnik optyczny#

Wstęp#

Klasa optyczna optical służy do dostępu do danych z czujnika optycznego EXP. Wykorzystuje on światło odbite do wykrywania obiektów, identyfikacji kolorów oraz pomiaru jasności i odcienia.

Konstruktory klas#

optical(
    int32_t index );

Destruktor klasy#

Niszczy obiekt optyczny optical i uwalnia powiązane zasoby.

virtual ~optical();

Parametry#

Parametr

Typ

Opis

index

int32_t

Inteligentny port, do którego podłączony jest czujnik optyczny, zapisany jako PORTx, gdzie x to numer portu (na przykład PORT1).

Przykłady#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

Funkcje członkowskie#

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

  • setLight — Włącza lub wyłącza diodę LED czujnika optycznego.

  • setLightPower — Ustawia poziom mocy światła czujnika optycznego.

  • isNearObject — Zwraca informację, czy czujnik optyczny wykrył obiekt w zasięgu.

  • color — Zwraca kolor wykryty przez czujnik optyczny.

  • brightness — Zwraca ilość światła odbitego od obiektu.

  • hue — Zwraca odcień wykryty przez czujnik optyczny.

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

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

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

/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an optical instance
optical Optical1 = optical(
    PORT1);   // Smart Port 1

setLight#

Włącza lub wyłącza diodę LED czujnika optycznego. Światło może pomóc czujnikowi optycznemu wyraźniej wykrywać obiekty i kolory.

Available Functions
void  setLight(ledState state);

Parameters

Parametr

Typ

Opis

state

ledState

Sets the LED on or off. ledState::on turns the LED on at 100% brightness. ledState::off turns it off.

Return Values

Ta funkcja nie zwraca wartości.

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

Ustawia jasność diody LED czujnika optycznego. Światło może pomóc czujnikowi optycznemu wyraźniej wykrywać obiekty i kolory.

Jeśli światło czujnika optycznego jest wyłączone, ustawienie mocy światła powyżej 0% spowoduje włączenie światła.

Jeżeli światło czujnika optycznego jest włączone, ustawienie mocy światła na 0% spowoduje wyłączenie światła.

Wyższy procent sprawia, że ​​światło jest jaśniejsze. Niższy procent sprawia, że ​​światło jest ciemniejsze.

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Parametr

Typ

Opis

intensity

int32_t

Poziom mocy umożliwiający ustawienie światła od 0 do 100.

units

percentUnits

Jednostka oznaczająca natężenie światła: percent / pct — procent

Return Values

Ta funkcja nie zwraca wartości.

Examples
// Set the light power to 50 percent.
Optical.setLightPower(50, percent);

isNearObject#

Zwraca wartość, jeśli czujnik optyczny wykryje pobliski obiekt.

Available Functions
bool  isNearObject();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Funkcja ta zwraca wartość logiczną wskazującą, czy w pobliżu wykryto obiekt:

  • true – Czujnik optyczny wykrywa obiekt.

  • false – Czujnik optyczny nie wykrył obiektu.

Examples
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
  Brain.Screen.print("near object");
}

color#

Zwraca kolor wykryty przez czujnik optyczny.

Available Functions
vex::color  color();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Kolor wykryty przez czujnik optyczny jako instancja klasy kolorów.

Możliwe kolory:

  • black

  • white

  • red - Wartość odcienia pomiędzy 340° - 20°

  • green - wartość odcienia pomiędzy 80° - 140°

  • blue - wartość odcienia pomiędzy 200° - 240°

  • yellow - wartość odcienia pomiędzy 40° - 60°

  • orange - wartość odcienia pomiędzy 20° - 40°

  • purple - wartość odcienia pomiędzy 240° - 280°

  • cyan - Wartość odcienia pomiędzy 140° - 200°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

Zwraca ilość światła odbitego od obiektu.

Wyższy procent oznacza, że ​​więcej światła odbija się z powrotem do czujnika optycznego. Niższy procent oznacza, że ​​mniej światła odbija się z powrotem.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametr

Typ

Opis

bRaw

bool

Wartość logiczna do odczytu surowych danych o jasności zamiast wartości procentowej. Wartość domyślna to false.

Return Values

Wartość podwójna oznacza jasność wykrytą przez czujnik optyczny jako podwójna wartość w zakresie 0–100% lub wartość podwójna oznacza surowe dane wykryte przez czujnik.

Examples
// Set a variable, brightness, to the value of the brightness
// detected by the Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

Zwraca wartość odcienia wykrytego koloru.

Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw.

Koło kolorów VEX przedstawiające stopnie kolorów wokół okręgu, przy czym czerwony znajduje się przy 0 stopniach i przechodzi w całą tęczę wraz ze wzrostem wartości.

Available Functions
double hue();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Wartość podwójna reprezentująca wartość odcienia wykrytego przez czujnik optyczny w zakresie 0–359,99.

Examples
// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();

objectDetected#

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

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy czujnik optyczny wykryje nowy obiekt.

Return Values

Ta funkcja nie zwraca wartości.

Examples

Zdefiniuj funkcję wywołania zwrotnego (poza int main())

// Called when the Optical Sensor detects an object
void detected() {
  // The Brain will print that the Optical Sensor detected an
  // object to the Brain's screen.
  Brain.Screen.print("object detected");
}

Zarejestruj wywołanie zwrotne wewnątrz int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run when the Optical Sensor detects an object.
  Optical.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)

Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy czujnik optyczny utraci wykryty obiekt.

Return Values

Ta funkcja nie zwraca wartości.

Examples

Zdefiniuj funkcję wywołania zwrotnego (poza int main())

// Called when the Optical Sensor loses an object
void lost() {
  // The Brain will print that the Optical Sensor lost an
  // object to the Brain's screen.
  Brain.Screen.print("object lost");
}

Zarejestruj wywołanie zwrotne wewnątrz int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}