Czujnik optyczny#
Wstęp#
Klasa optyczna optical służy do dostępu do danych z czujnika optycznego V5. Wykorzystuje on ś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:
// 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 |
|---|---|---|
|
|
Sets the LED on or off. |
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 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 wartość, jeśli czujnik optyczny wykryje pobliski obiekt.
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– Czujnik optyczny wykrywa obiekt.false– Czujnik optyczny nie wykrył obiektu.
// 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 Functionsvex::color color();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesKolor wykryty przez czujnik optyczny jako instancja klasy kolorów.
Możliwe kolory:
blackwhitered- 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°
// 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 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 |
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.

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,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 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())// Display a message when the Optical Sensor detects an object. void detected() { Brain.Screen.print("object detected"); }Zarejestruj wywołanie zwrotne wewnątrz
int main()int main() { // Run detected 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())// Display a message when the Optical Sensor loses an object. void lost() { Brain.Screen.print("object lost"); }Zarejestruj wywołanie zwrotne wewnątrz
int main()int main() { // Run lost when the Optical Sensor loses an object. Optical.objectLost(lost); }