Czujnik optyczny#
Wstęp#
Klasa optyczna optical służy do dostępu do danych z Czujnika optycznego. Wykorzystuje ona światło odbite do wykrywania obiektów, identyfikacji kolorów oraz pomiaru jasności i odcienia.
Konstruktor klasy#
optical Optical = optical(index);
Destruktor klasy#
Niszczy obiekt optyczny optical i uwalnia powiązane zasoby.
virtual ~optical();
Parametry#
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Inteligentny port, do którego podłączony jest czujnik optyczny, zapisany jako |
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 object in Port 1
optical Optical1 = optical(PORT1);
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 Functionsvoid setLight(ledState state);
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Włącza lub wyłącza diodę LED. |
Ta funkcja nie zwraca wartości.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Ustawia jasność światła czujnika optycznego. Światło może pomóc czujnikowi optycznemu wyraźniej wykrywać obiekty i kolory.
Wyższy procent sprawia, że światło jest jaśniejsze. Niższy procent sprawia, że światło jest ciemniejsze.
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.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Poziom mocy umożliwiający ustawienie światła od 0 do 100. |
|
|
Jednostka oznaczająca natężenie światła: |
Ta funkcja nie zwraca wartości.
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
Zwraca informację, czy czujnik optyczny wykrył obiekt w zasięgu.
Available Functionsbool isNearObject();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesFunkcja ta zwraca wartość logiczną wskazującą, czy w pobliżu wykryto obiekt:
true— W pobliżu wykryto obiekt.false— Obiekt nie został wykryty.
// 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 na podstawie wykrytej wartości odcienia.
Available Functionsvex::color color();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesKolor wykryty przez czujnik optyczny jako instancja klasy kolorów.
Możliwe kolory:
blue– wartość odcienia pomiędzy 196° a 229°blue_green– Wartość odcienia pomiędzy 140° a 195°blue_violet– Wartość odcienia pomiędzy 230° a 239°green– wartość odcienia pomiędzy 84° a 139°orange– wartość odcienia pomiędzy 21° a 30°red– wartość odcienia pomiędzy 350° a 14°red_orange– Wartość odcienia pomiędzy 15° a 20°red_violet– Wartość odcienia pomiędzy 281° a 350°violet– wartość odcienia pomiędzy 240° a 280°yellow– wartość odcienia pomiędzy 54° a 74°yellow_green– Wartość odcienia pomiędzy 75° a 83°yellow_orange– Wartość odcienia pomiędzy 31° a 53°
// 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 informację o tym, ile światła zostało odbite z powrotem do czujnika optycznego.
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 Functionsdouble brightness(bool bRaw = false);
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wartość logiczna do odczytu surowych danych o jasności zamiast wartości procentowej. Wartość domyślna to |
Liczba double oznacza jasność wykrytą przez czujnik optyczny w zakresie 0–100% lub liczba double 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 odcień wykryty przez czujnik optyczny.
Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw.

double hue();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesWartość podwójna reprezentująca wartość odcienia wykrytego przez czujnik optyczny w zakresie 0–359,00.
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 Functionsvoid objectDetected(void (* callback)(void));
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy czujnik optyczny wykryje nowy obiekt. |
Ta funkcja nie zwraca wartości.
ExamplesZdefiniuj 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 Functionsvoid objectLost(void (* callback)(void));
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy czujnik optyczny utraci wykryty obiekt. |
Ta funkcja nie zwraca wartości.
ExamplesZdefiniuj 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); }