Quang học#
Giới thiệu#
Cảm biến quang học là một loại cảm biến dựa trên ánh sáng, sử dụng ánh sáng phản xạ để phát hiện vật thể, nhận diện màu sắc, đo độ sáng và sắc độ.
Bạn cũng có thể cấu hình độ sáng của đèn bên trong cảm biến. Những công cụ này rất lý tưởng cho các chương trình cần phản ứng với các vật thể có màu sắc, điều kiện ánh sáng hoặc phản hồi từ cảm biến trong thời gian thực.
Trang này sử dụng optical_1 làm ví dụ về tên Cảm biến quang học. Hãy thay thế nó bằng tên do bạn cấu hình nếu cần.
Dưới đây là danh sách tất cả các phương pháp:
Thao tác — Bật hoặc tắt đèn LED của cảm biến quang học.
set_light— Đặt trạng thái bật hoặc tắt của đèn LED.
Bộ điều chỉnh — Điều chỉnh độ sáng đèn LED và cài đặt nhận diện đối tượng.
set_light_power— Đặt độ sáng của đèn LED.object_detect_threshold— Đặt ngưỡng để phát hiện các đối tượng.
Các phương thức lấy dữ liệu — Đọc thông tin về sự hiện diện của đối tượng, màu sắc, độ sáng, sắc độ, RGB và trạng thái cảm biến.
is_near_object— Trả về liệu vật thể được phát hiện có ở gần Cảm biến quang học hay không.color— Trả về màu phù hợp được phát hiện gần nhất.brightness— Trả về độ sáng của một đối tượng được phát hiện.hue— Trả về sắc độ của một đối tượng được phát hiện.rgb— Trả về các giá trị RGB được phát hiện bởi Cảm biến quang học.installed— Trả về trạng thái liệu Cảm biến quang học có được kết nối với Bộ não hay không.
Hàm gọi lại — Thực thi đoạn mã khi phát hiện hoặc mất một đối tượng.
object_detected— Đăng ký một hàm sẽ được gọi khi một đối tượng được phát hiện.object_lost— Đăng ký một hàm sẽ được gọi khi một đối tượng bị mất.
Hàm khởi tạo — Tự tay khởi tạo và cấu hình Cảm biến quang học.
Optical— Tạo ra một cảm biến quang học.
Hành động#
set_light#
set_light thiết lập đèn LED của Cảm biến quang học ở trạng thái bật, tắt hoặc mức độ sáng đã đặt.
Usage:
optical_1.set_light(state)
Thông số |
Sự miêu tả |
|---|---|
|
Trạng thái để thiết lập ánh sáng hoặc phần trăm công suất trong phạm vi từ 0 đến 100. Trạng thái có thể là một trong các trạng thái sau:
|
# 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)
Biến đổi#
set_light_power#
set_light_power thiết lập độ sáng của đèn cảm biến quang học. Nếu đèn LED chưa sáng, phương thức này cũng sẽ bật đèn LED.
Usage:
optical_1.set_light_power(value)
Thông số |
Sự miêu tả |
|---|---|
|
Mức công suất để điều chỉnh độ sáng từ 0 đến 100% (tính theo phần trăm). |
# 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 thiết lập phạm vi mà cảm biến có thể phát hiện vật thể. Phương thức này cũng trả về ngưỡng mới được thiết lập.
Các số càng gần 255 thì phạm vi càng nhỏ, trong khi các số càng gần 0 thì phạm vi càng lớn.
Usage:
optical_1.object_detect_threshold(value)
Thông số |
Sự miêu tả |
|---|---|
|
Một số nằm trong khoảng từ 0 đến 255. Giá trị 0 sẽ trả về giá trị hiện tại. |
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)
Người nhận#
is_near_object#
is_near_object trả về giá trị cho biết Cảm biến quang có ở gần vật thể nào không.
True— Cảm biến ở gần vật thể.False— Cảm biến không ở gần vật thể.
Usage:
optical_1.is_near_object()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# 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 trả về màu sắc được xác định trước do Cảm biến quang học phát hiện từ các màu bên dưới:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Stop the robot if the Optical Sensor
# detects red
while True:
if optical_1.color() == Color.RED:
drivetrain.stop()
else:
drivetrain.turn(RIGHT)
brightness#
Độ sáng brightness trả về độ sáng được cảm biến quang học phát hiện.
Tỷ lệ phần trăm càng cao nghĩa là cảm biến quang học càng thu nhận được nhiều ánh sáng hơn. Tỷ lệ phần trăm càng thấp nghĩa là cảm biến quang học càng thu nhận được ít ánh sáng hơn.
Usage:
optical_1.brightness(readraw)
Thông số |
Sự miêu tả |
|---|---|
|
Tùy chọn. Một giá trị Boolean để đọc dữ liệu độ sáng thô thay vì phần trăm:
|
hue#
hue trả về giá trị màu sắc được cảm biến quang học phát hiện dưới dạng số thực trong phạm vi từ 0 đến 359,99 độ.
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, như hình bên dưới.

Usage:
optical_1.hue()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# 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 trả về các giá trị màu đỏ, xanh lục, xanh lam và độ sáng được cảm biến quang học phát hiện dưới dạng một Tuple.
Usage:
optical_1.rgb(raw)
Thông số |
Sự miêu tả |
|---|---|
|
Tùy chọn. Một giá trị Boolean để xác định xem bạn trả về giá trị thô hay giá trị đã xử lý:
|
# 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 trả về giá trị Boolean cho biết cảm biến quang học có được kết nối với bộ xử lý trung tâm hay không.
True— Cảm biến quang học được kết nối với não bộ.False— Cảm biến quang học không được kết nối với não bộ.
Usage:
optical_1.installed()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Gọi lại#
object_detected#
object_detected đăng ký một hàm gọi lại khi phát hiện thấy một đối tượng.
Usage:
optical_1.object_detected(callback, arg)
Thông số |
Sự miêu tả |
|---|---|
|
Một hàm được định nghĩa trước để thực thi khi một đối tượng được phát hiện. |
|
Tùy chọn. Một bộ chứa các đối số để truyền cho hàm gọi lại. Xem Hàm có tham số để biết thêm thông tin. |
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 đăng ký một hàm gọi lại khi Cảm biến quang học mất dấu vật thể đã phát hiện.
Usage:
optical_1.object_lost(callback, arg)
Thông số |
Sự miêu tả |
|---|---|
|
Một hàm được định nghĩa trước để thực thi khi một đối tượng bị mất. |
|
Tùy chọn. Một bộ chứa các đối số để truyền cho hàm gọi lại. Xem Hàm có tham số để biết thêm thông tin. |
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)
Các hàm tạo#
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ả |
|---|---|
|
Cổng thông minh mà cảm biến quang được kết nối, được viết là PORTx, trong đó x là số thứ tự của cổng. |
# 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())