Cảm biến quang học#

Giới thiệu#

Cảm biến quang học V5 phát hiện màu sắc, độ sáng và sự hiện diện của các vật thể ở gần bằng cách kết hợp cảm biến màu RGB và cảm biến tiệm cận. Nó cũng có thể sử dụng đèn LED tích hợp để chiếu sáng vật thể nhằm phát hiện chính xác hơn.

Cảm biến quang VEX V5.

Trang này sử dụng optical_sensor làm ví dụ về tên Cảm biến quang học. Hãy thay thế bằng tên do bạn cấu hình nếu cần.

Dưới đây là danh sách các phương pháp có sẵn:

  • set_light – Bật hoặc tắt đèn LED của Cảm biến quang học.

  • set_light_power – Đặt mức công suất ánh sáng của Cảm biến quang học.

  • is_near_object – Trả về liệu Cảm biến quang có phát hiện vật thể trong phạm vi hay không.

  • color – Trả về màu được phát hiện bởi Cảm biến quang học.

  • brightness – Trả về lượng ánh sáng phản xạ từ vật thể.

  • hue – Trả về sắc độ được phát hiện bởi Cảm biến quang học.

  • object_detected – Đăng ký một hàm sẽ được gọi khi Cảm biến quang học phát hiện một vật thể.

  • object_lost – Đăng ký một hàm sẽ được gọi khi Cảm biến quang học mất một vật thể.

Hàm khởi tạo – Khởi tạo thủ công một cảm biến quang học.

  • Optical – Tạo ra một cảm biến quang học.

đặt đèn#

set_light bật hoặc tắt đèn LED của cảm biến quang học. Điều này có thể giúp tăng độ chính xác của cảm biến khi phát hiện màu sắc.

Usage:
optical_sensor.set_light(state)

Thông số

Sự miêu tả

tình trạng

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)

đặt_công_lượng_ánh_sáng#

set_light_power thiết lập độ sáng của đèn LED của cảm biến quang học. Ánh sáng có thể giúp cảm biến quang học phát hiện vật thể và màu sắc rõ ràng hơn.

Nếu đèn của cảm biến quang học đang tắt, việc đặt công suất đèn trên 0% sẽ bật đèn lên.

Nếu đèn của cảm biến quang đang bật, việc đặt công suất đèn ở mức 0% sẽ tắt đèn.

Tỷ lệ phần trăm càng cao thì ánh sáng càng sáng. Tỷ lệ phần trăm càng thấp thì ánh sáng càng mờ.

Usage:
optical_sensor.set_light_power(percent, units)

Thông số

Sự miêu tả

phần trăm

Độ sáng cần thiết lập cho đèn LED là một số nguyên.

đơn vị

Tùy chọn. Đơn vị biểu thị độ sáng: PERCENT

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

là_vật_thể_gần#

is_near_object trả về giá trị Boolean cho biết liệu Cảm biến quang học có phát hiện vật thể trong phạm vi hay không.

  • True – Cảm biến quang học phát hiện vật thể.

  • False – Cảm biến quang học không phát hiện vật thể.

Usage:
optical_sensor.is_near_object()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

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

màu sắc#

color trả về một thể hiện của lớp Color , dựa trên giá trị sắc độ được phát hiện. Những giá trị này có thể được so sánh với các đối tượng Color được xác định trước để tạo ra các câu lệnh điều kiện.

Các màu sắc có thể là:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Giá trị sắc độ từ 340° đến 20°

  • Color.GREEN - Giá trị sắc độ từ 80° - 140°

  • Color.BLUE - Giá trị sắc độ từ 200° - 240°

  • Color.YELLOW - Giá trị sắc độ từ 40° - 60°

  • Color.ORANGE - Giá trị sắc độ từ 20° - 40°

  • Color.PURPLE - Giá trị sắc độ từ 240° - 280°

  • Color.CYAN - Giá trị sắc độ từ 140° - 200°

Lưu ý: Cảm biến quang học đang tìm kiếm các dải màu phù hợp với màu được chỉ định. Để phát hiện các dải màu cụ thể, hãy xem hue.

Usage:
optical_sensor.color()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

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

độ sáng#

brightness trả về lượng ánh sáng phản xạ từ vật thể dưới dạng số thập phân (float) biểu thị phần trăm.

Tỷ lệ phần trăm càng cao nghĩa là càng nhiều ánh sáng được phản xạ trở lại cảm biến quang học. Tỷ lệ phần trăm càng thấp nghĩa là càng ít ánh sáng được phản xạ trở lại.

Usage:
optical_sensor.brightness()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

sắc độ#

hue trả về giá trị sắc độ của màu được phát hiện dưới dạng số thập phân (float) từ 0 đến 359.

Sắc độ là một cách để mô tả màu sắc bằng các con số xung quanh vòng tròn màu.

Vòng tròn màu VEX hiển thị độ đậm nhạt của các màu xung quanh một vòng tròn, với màu đỏ ở 0 độ và chuyển dần qua cầu vồng khi giá trị tăng lên.

Usage: optical_sensor.hue()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

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

đối tượng được phát hiện#

object_detected đăng ký một hàm sẽ được gọi bất cứ khi nào Cảm biến quang học phát hiện một vật thể mới.

Usage:
optical_sensor.object_detected(callback, arg)

Thông số

Sự miêu tả

callback

Một hàm được định nghĩa trước đó sẽ được thực thi khi Cảm biến quang học phát hiện một vật thể mới.

arg

Tùy chọn. Một tuple chứa các đối số để truyền cho hàm gọi lại. Xem Sử dụng hàm có tham số để biết thêm thông tin.

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)

vật thể bị mất#

object_lost đăng ký một hàm sẽ được gọi bất cứ khi nào Cảm biến quang học mất dấu vật thể được phát hiện.

Usage:
optical_sensor.object_lost(callback, arg)

Thông số

Sự miêu tả

callback

Một hàm được định nghĩa trước đó sẽ thực thi khi Cảm biến quang học mất một đối tượng được phát hiện.

arg

Tùy chọn. Một tuple chứa các đối số để truyền cho hàm gọi lại. Xem Sử dụng hàm có tham số để biết thêm thông tin.

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)

Người xây dựng#

Các hàm tạo được sử dụng để tạo thủ công Optical , cần thiết cho việc cấu hình Cảm biến quang học bên ngoài VEXcode.

Optical#

Optical tạo ra một Cảm biến quang học.

Usage:
Optical(smartport)

Tham số

Sự miêu tả

smartport

Cổng thông minh mà cảm biến quang được kết nối, được viết dưới dạng Ports.PORTx , trong đó x là số thứ tự của cổng.

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