Czujnik optyczny#

Wstęp#

Czujnik optyczny V5 wykrywa kolor, jasność i obecność pobliskich obiektów za pomocą połączenia czujnika koloru RGB i czujnika zbliżeniowego. Może również wykorzystać wbudowaną diodę LED do oświetlenia obiektów, co zapewnia dokładniejsze wykrywanie.

Czujnik optyczny VEX V5.

Ta strona używa optical_sensor jako przykładowej nazwy czujnika optycznego. W razie potrzeby zastąp ją własną, skonfigurowaną nazwą.

Poniżej znajduje się lista dostępnych metod:

  • set_light – Włącza lub wyłącza diodę LED czujnika optycznego.

  • set_light_power – Ustawia poziom mocy światła czujnika optycznego.

  • is_near_object – 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.

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

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

Konstruktor – Ręczna inicjalizacja czujnika optycznego.

  • Optical – Tworzy czujnik optyczny.

ustaw_światło#

set_light włącza lub wyłącza diodę LED czujnika optycznego. Może to pomóc zwiększyć dokładność czujnika podczas wykrywania kolorów.

Usage:
optical_sensor.set_light(state)

Parametry

Opis

państwo

Sets the LED on or off. LEDStateType.ON turns the light on at 100% brightness. LEDStateType.OFF turns it off.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

ustaw_moc_światła#

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

Usage:
optical_sensor.set_light_power(percent, units)

Parametry

Opis

procent

Jasność, jaką należy ustawić na diodzie LED, wyrażona jako liczba całkowita.

jednostki

Opcjonalnie. Jednostka reprezentująca jasność: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

jest_w_pobliżu_obiektu#

is_near_object zwraca wartość logiczną wskazującą, czy czujnik optyczny wykrył obiekt w zasięgu.

  • True – Czujnik optyczny wykrywa obiekt.

  • False – Czujnik optyczny nie wykrył obiektu.

Usage:
optical_sensor.is_near_object()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

kolor#

color zwraca wystąpienie klasy Color na podstawie wykrytej wartości odcienia. Można je porównać z predefiniowanymi obiektami Color , aby utworzyć instrukcje warunkowe.

Możliwe kolory:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Wartość odcienia pomiędzy 340° - 20°

  • Color.GREEN - Wartość odcienia pomiędzy 80° - 140°

  • Color.BLUE - Wartość odcienia pomiędzy 200° - 240°

  • Color.YELLOW - Wartość odcienia pomiędzy 40° - 60°

  • Color.ORANGE - Wartość odcienia pomiędzy 20° - 40°

  • Color.PURPLE - Wartość odcienia pomiędzy 240° - 280°

  • Color.CYAN - Wartość odcienia pomiędzy 140° - 200°

Uwaga: Czujnik optyczny wyszukuje zakresy odcieni odpowiadające określonemu kolorowi. Aby wykryć konkretne zakresy odcieni, zobacz hue.

Usage:
optical_sensor.color()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

jasność#

brightness zwraca ilość światła odbitego od obiektu jako liczbę dziesiętną (float) reprezentującą procent.

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.

Usage:
optical_sensor.brightness()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

odcień#

hue zwraca wartość odcienia wykrytego koloru jako liczbę dziesiętną (float) od 0 do 359.

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.

Usage: optical_sensor.hue()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

wykryto_obiekt#

object_detected rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy czujnik optyczny wykryje nowy obiekt.

Usage:
optical_sensor.object_detected(callback, arg)

Parametry

Opis

callback

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

arg

Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Używanie funkcji z parametrami.

def my_function():
  brain.screen.print("Optical Sensor detected an object")

# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)

obiekt_utracony#

object_lost rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy czujnik optyczny utraci wykryty obiekt.

Usage:
optical_sensor.object_lost(callback, arg)

Parametry

Opis

callback

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

arg

Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Używanie funkcji z parametrami.

def my_function():
  brain.screen.print("Optical Sensor lost an object")

# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)

Konstruktor#

Konstruktory służą do ręcznego tworzenia obiektów optycznych Optical , które są niezbędne do konfiguracji czujnika optycznego poza VEXcode.

Optical#

Optical tworzy czujnik optyczny.

Usage:
Optical(smartport)

Parametr

Opis

smartport

Inteligentny port, do którego podłączony jest czujnik optyczny, zapisany jako Ports.PORTx , gdzie x jest numerem portu.

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)