광학 센서#

소개#

V5 광학 센서는 RGB 컬러 센서와 근접 센서를 결합하여 색상, 밝기 및 주변 물체의 존재 여부를 감지합니다. 또한 내장 LED를 사용하여 물체를 비춰 더욱 정확한 감지를 할 수 있습니다.

VEX V5 광학 센서.

이 페이지에서는 광학 센서 이름의 예시로 optical_sensor 사용합니다. 필요에 따라 구성된 이름으로 교체하십시오.

다음은 사용 가능한 방법 목록입니다.

  • set_light – 광학 센서의 LED를 켜거나 끕니다.

  • set_light_power – 광학 센서의 광 전력 레벨을 설정합니다.

  • is_near_object – 광학 센서가 범위 내에 있는 물체를 감지했는지 여부를 반환합니다.

  • color – 광학 센서에 의해 감지된 색상을 반환합니다.

  • brightness – 물체에서 반사된 빛의 양을 반환합니다.

  • hue – 광학 센서에 의해 감지된 색조를 반환합니다.

  • object_detected – 광학 센서가 객체를 감지할 때 호출될 함수를 등록합니다.

  • object_lost – 광학 센서가 객체를 잃어버렸을 때 호출될 함수를 등록합니다.

생성자 – 광학 센서를 수동으로 초기화합니다.

  • Optical – 광학 센서를 생성합니다.

조명을 켜다#

set_light 은 광학 센서의 LED를 켜거나 끕니다. 이는 센서가 색상을 감지할 때 정확도를 높이는 데 도움이 될 수 있습니다.

Usage:
optical_sensor.set_light(state)

매개변수

설명

상태

LED를 켜거나 끕니다. LEDStateType.ON 100% 밝기로 조명을 끕니다. LEDStateType.OFF 조명을 끕니다.

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

조명 전력 설정#

set_light_power 광학 센서 LED의 밝기를 설정합니다. 빛은 광학 센서가 물체와 색상을 더욱 선명하게 감지하는 데 도움을 줄 수 있습니다.

광학 센서의 표시등이 꺼져 있는 경우, 조명 전력을 0% 이상으로 설정하면 표시등이 켜집니다.

광학 센서의 표시등이 켜져 있는 경우, 조명 전력을 0%로 설정하면 표시등이 꺼집니다.

백분율이 높을수록 빛이 더 밝아지고, 백분율이 낮을수록 빛이 더 어두워집니다.

Usage:
optical_sensor.set_light_power(percent, units)

매개변수

설명

퍼센트

LED의 밝기를 정수로 설정하세요.

단위

선택 사항입니다. 밝기를 나타내는 단위: PERCENT

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

is_near_object#

is_near_object 은 광학 센서가 범위 내에서 물체를 감지했는지 여부를 나타내는 부울 값을 반환합니다.

  • True – 광학 센서가 물체를 감지합니다.

  • False – 광학 센서가 물체를 감지하지 못했습니다.

Usage:
optical_sensor.is_near_object()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

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

색상#

color 감지된 색조 값을 기반으로 Color 클래스의 인스턴스를 반환합니다. 이를 미리 정의된 Color 객체와 비교하여 조건문을 생성할 수 있습니다.

가능한 색상은 다음과 같습니다.

  • Color.BLACK

  • Color.WHITE

  • Color.RED - 340° ~ 20° 사이의 색조 값

  • Color.GREEN - 80°~140° 사이의 색조 값

  • Color.BLUE - 200°~240° 사이의 색조 값

  • Color.YELLOW - 40°~60° 사이의 색조 값

  • Color.ORANGE - 20°~40° 사이의 색조 값

  • Color.PURPLE - 240°~280° 사이의 색조 값

  • Color.CYAN - 140°~200° 사이의 색조 값

참고: 광학 센서는 지정된 색상과 일치하는 색조 범위를 찾습니다. 특정 색조 범위를 감지하려면 hue를 참조하십시오.

Usage:
optical_sensor.color()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

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

명도#

brightness 객체에서 반사된 빛의 양을 백분율을 나타내는 소수(float)로 반환합니다.

반사율이 높을수록 광학 센서로 반사되는 빛의 양이 많아지고, 반사율이 낮을수록 반사되는 빛의 양이 적어집니다.

Usage:
optical_sensor.brightness()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

색조#

hue 감지된 색상의 색조 값을 0에서 359까지의 십진수(float)로 반환합니다.

색조는 색상환을 중심으로 숫자를 사용하여 색을 설명하는 방법입니다.

VEX 컬러 휠은 원형으로 색상의 단계를 보여주며, 빨간색이 0도이고 값이 증가함에 따라 무지개를 거쳐 변화합니다.

Usage: optical_sensor.hue()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

# 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!")

객체가 감지되었습니다#

object_detected 은 광학 센서가 새로운 물체를 감지할 때마다 호출될 함수를 등록합니다.

Usage:
optical_sensor.object_detected(callback, arg)

매개변수

설명

callback

광학 센서가 새 객체를 감지할 때 실행되는 이전에 정의된 함수입니다.

arg

선택 사항입니다. 콜백 함수에 전달할 인수를 포함하는 튜플입니다. 자세한 내용은 매개변수가 있는 함수 사용을 참조하세요.

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)

객체 손실#

object_lost 은 광학 센서가 감지된 물체를 놓칠 때마다 호출될 함수를 등록합니다.

Usage:
optical_sensor.object_lost(callback, arg)

매개변수

설명

callback

광학 센서가 감지된 객체를 놓쳤을 때 실행되는 이전에 정의된 함수.

arg

선택 사항입니다. 콜백 함수에 전달할 인수를 포함하는 튜플입니다. 자세한 내용은 매개변수가 있는 함수 사용을 참조하세요.

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)

건설자#

생성자는 VEXcode 외부에서 광학 센서를 구성하는 데 필요한 Optical 객체를 수동으로 생성하는 데 사용됩니다.

Optical#

Optical 광학 센서를 생성합니다.

Usage:
Optical(smartport)

매개변수

설명

smartport

광학 센서가 연결된 스마트 포트는 Ports.PORTx 형식으로 표기되며, 여기서 x는 포트 번호입니다.

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