Optyczny#
Wstęp#
Czujnik optyczny to czujnik wykorzystujący światło odbite do wykrywania obiektów, rozpoznawania kolorów oraz pomiaru jasności i odcienia.
Można również skonfigurować jasność wewnętrznego oświetlenia czujnika. Te narzędzia są idealne dla programów, które muszą reagować na kolorowe obiekty, warunki oświetleniowe lub sygnały z czujnika w czasie rzeczywistym.
Ta strona używa optical_1 jako przykładowej nazwy czujnika optycznego. W razie potrzeby zastąp ją własną, skonfigurowaną nazwą.
Poniżej znajduje się lista wszystkich metod:
Działania — włączanie lub wyłączanie diody LED czujnika optycznego.
set_light— Ustawia stan włączenia lub wyłączenia diody LED.
Mutatory — regulacja jasności diody LED i ustawień wykrywania obiektów.
set_light_power— Ustawia jasność diody LED.object_detect_threshold— Ustawia próg wykrywania obiektów.
Gettery — odczytują obecność obiektu, kolor, jasność, odcień, RGB i stan czujnika.
is_near_object— Zwraca informację, czy wykryty obiekt znajduje się w pobliżu czujnika optycznego.color— Zwraca najbliższy wykryty kolor.brightness— Zwraca jasność wykrytego obiektu.hue— Zwraca odcień wykrytego obiektu.rgb— Zwraca wartości RGB wykryte przez czujnik optyczny.zainstalowano
installed— Zwraca informację, czy czujnik optyczny jest podłączony do mózgu.
Wywołanie zwrotne — uruchom kod w przypadku wykrycia lub utraty obiektu.
object_detected— Rejestruje funkcję, która ma zostać wywołana po wykryciu obiektu.object_lost— Rejestruje funkcję, która ma zostać wywołana w przypadku utraty obiektu.
Konstruktory — ręczna inicjalizacja i konfiguracja czujnika optycznego.
Optical— Tworzy czujnik optyczny.
Akcje#
set_light#
set_light włącza, wyłącza lub ustawia poziom jasności diody LED czujnika optycznego.
Usage:
optical_1.set_light(state)
Parametry |
Opis |
|---|---|
|
Stan ustawienia światła lub procentowej mocy w zakresie od 0 do 100. Stan może być jednym z następujących:
|
# Turn the LED on and off forever
while True:
optical_1.set_light(LedStateType.ON)
wait(0.5, SECONDS)
optical_1.set_light(LedStateType.OFF)
wait(0.5, SECONDS)
# Turn the LED on and off forever
while True:
optical_1.set_light(100)
wait(0.5, SECONDS)
optical_1.set_light(0)
wait(0.5, SECONDS)
Mutatory#
set_light_power#
set_light_power ustawia jasność światła czujnika optycznego. Jeśli dioda LED nie jest jeszcze włączona, ta metoda również ją włączy.
Usage:
optical_1.set_light_power(value)
Parametry |
Opis |
|---|---|
|
Poziom mocy umożliwiający ustawienie jasności światła od 0 do 100 procent. |
# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)
object_detect_threshold#
object_detect_threshold ustawia zakres, w którym czujnik może wykrywać obiekty. Ta metoda zwraca również nowo ustawiony próg.
Liczby bliższe 255 oznaczają mniejszy zakres, natomiast liczby bliższe 0 oznaczają większy zakres.
Usage:
optical_1.object_detect_threshold(value)
Parametry |
Opis |
|---|---|
|
Liczba z zakresu 0–255. Wartość 0 zwróci po prostu bieżącą wartość. |
def detected():
# The Brain will print that an object was detected on
# the Brain's screen.
brain.screen.print("object detected")
brain.screen.next_row()
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
# Detect an object closer to the sensor.
brain.screen.print("Detected closer")
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0
def detected():
global stage
if stage == 0:
brain.screen.print("Get closer...")
brain.screen.next_row()
stage = 1
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
global stage
if stage == 1:
brain.screen.print("Too close!")
brain.screen.next_row()
stage = 2
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)
Getters#
is_near_object#
is_near_object zwraca informację, czy czujnik optyczny znajduje się w pobliżu obiektu.
True— Czujnik znajduje się blisko obiektu.False— Czujnik nie znajduje się w pobliżu obiektu.
Usage:
optical_1.is_near_object()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Stop driving when Optical Sensor is
# near an object
while True:
if optical_1.is_near_object():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
color#
color zwraca predefiniowany kolor wykryty przez czujnik optyczny spośród poniższych kolorów:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Stop the robot if the Optical Sensor
# detects red
while True:
if optical_1.color() == Color.RED:
drivetrain.stop()
else:
drivetrain.turn(RIGHT)
brightness#
brightness zwraca jasność wykrytą przez czujnik optyczny.
Wyższy procent oznacza, że czujnik optyczny wykrywa więcej światła. Niższy procent oznacza, że czujnik optyczny wykrywa mniej światła.
Usage:
optical_1.brightness(readraw)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Wartość logiczna do odczytu surowych danych o jasności zamiast wartości procentowej:
|
hue#
hue zwraca wartość odcienia wykrytego przez czujnik optyczny jako liczbę zmiennoprzecinkową w zakresie od 0 do 359,99 stopni.
Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw, jak pokazano poniżej.

Usage:
optical_1.hue()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Check the hue of a detected object
# to determine if it is pink
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
if 290 < optical_1.hue() < 350:
brain.screen.print("Pink!")
wait(0.1,SECONDS)
else:
brain.screen.print("Not pink.")
wait(0.1,SECONDS)
rgb#
rgb zwraca wartości koloru czerwonego, zielonego, niebieskiego i jasności wykryte przez czujnik optyczny jako krotkę.
Usage:
optical_1.rgb(raw)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Wartość logiczna określająca, czy zwracane są wartości surowe, czy przetworzone:
|
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print(optical_1.rgb())
wait(0.1, SECONDS)
installed#
installed zwraca wartość logiczną wskazującą, czy czujnik optyczny jest podłączony do mózgu.
True— Czujnik optyczny jest połączony z mózgiem.False— Czujnik optyczny nie jest połączony z mózgiem.
Usage:
optical_1.installed()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Oddzwonienie#
object_detected#
object_detected rejestruje funkcję wywołania zwrotnego na wypadek wykrycia obiektu.
Usage:
optical_1.object_detected(callback, arg)
Parametry |
Opis |
|---|---|
|
Funkcja, która została wcześniej zdefiniowana do wykonania po wykryciu obiektu. |
|
Opcjonalnie. Krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Funkcjach z parametrami. |
def detected():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object detected")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)
object_lost#
object_lost rejestruje funkcję wywołania zwrotnego na wypadek, gdyby czujnik optyczny zgubił wykryty obiekt.
Usage:
optical_1.object_lost(callback, arg)
Parametry |
Opis |
|---|---|
|
Funkcja, która została wcześniej zdefiniowana do wykonania w przypadku utraty obiektu. |
|
Opcjonalnie. Krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Funkcjach z parametrami. |
def lost():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object lost")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the Optical
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)
Konstruktorzy#
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 |
|---|---|
|
Inteligentny port, do którego podłączony jest czujnik optyczny, zapisany jako PORTx, gdzie x jest numerem portu. |
# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)
# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())