ออปติคอล#
การแนะนำ#
เซ็นเซอร์แสงเป็นเซ็นเซอร์ที่ใช้แสงสะท้อนในการตรวจจับวัตถุ ระบุสี และวัดความสว่างและเฉดสี
นอกจากนี้ คุณยังสามารถปรับความสว่างของไฟภายในเซ็นเซอร์ได้อีกด้วย เครื่องมือเหล่านี้เหมาะสำหรับโปรแกรมที่ต้องการตอบสนองต่อวัตถุที่มีสี สภาพแสง หรือข้อมูลจากเซ็นเซอร์แบบเรียลไทม์
หน้านี้ใช้ optical_1 เป็นตัวอย่างชื่อเซ็นเซอร์แสง โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
ด้านล่างนี้คือรายการวิธีการทั้งหมด:
การดำเนินการ — เปิดหรือปิดไฟ LED ของเซ็นเซอร์แสง
set_light— ตั้งค่าสถานะเปิดหรือปิดของ LED
ตัวปรับแต่ง — ปรับความสว่างของไฟ LED และการตั้งค่าการตรวจจับวัตถุ
set_light_power— ตั้งค่าความสว่างของ LEDobject_detect_threshold— ตั้งค่าเกณฑ์สำหรับการตรวจจับวัตถุ
ตัวอ่านค่า — อ่านข้อมูลเกี่ยวกับการมีอยู่ของวัตถุ สี ความสว่าง เฉดสี RGB และสถานะของเซ็นเซอร์
is_near_object— ส่งคืนว่าวัตถุที่ตรวจพบอยู่ใกล้เซ็นเซอร์แสงหรือไม่color— ส่งคืนการจับคู่สีที่ตรวจพบที่ใกล้เคียงที่สุดbrightness— ส่งคืนความสว่างของวัตถุที่ตรวจพบhue— ส่งคืนค่าสีของวัตถุที่ตรวจพบrgb— ส่งคืนค่า RGB ที่ตรวจพบโดยเซ็นเซอร์แสงinstalled— ส่งคืนว่าเซ็นเซอร์แสงเชื่อมต่อกับสมองหรือไม่
ฟังก์ชันเรียกกลับ — เรียกใช้โค้ดเมื่อตรวจพบหรือสูญเสียวัตถุ
object_detected— ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อตรวจพบวัตถุobject_lost— ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อวัตถุสูญหาย
ตัวสร้าง — กำหนดค่าและตั้งค่าเซ็นเซอร์แสงด้วยตนเอง
Optical— สร้างเซ็นเซอร์ออปติคอล
การกระทำ#
set_light#
set_light ตั้งค่าไฟ LED ของเซ็นเซอร์แสงให้เปิด ปิด หรือปรับความสว่างตามที่กำหนด
Usage:
optical_1.set_light(state)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
สถานะสำหรับตั้งค่าแสงหรือเปอร์เซ็นต์ของกำลังไฟในช่วง 0 ถึง 100 สถานะสามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
|
# 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)
ตัวกลายพันธุ์#
set_light_power#
set_light_power ตั้งค่าความสว่างของไฟจากเซ็นเซอร์แสง หากไฟ LED ยังไม่เปิด วิธีนี้จะเปิดไฟ LED ด้วย
Usage:
optical_1.set_light_power(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ปรับระดับความสว่างของแสงได้ตั้งแต่ 0 ถึง 100 เปอร์เซ็นต์ |
# 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 กำหนดช่วงที่เซ็นเซอร์สามารถตรวจจับวัตถุได้ เมธอดนี้ยังส่งคืนค่าเกณฑ์ที่ตั้งใหม่ด้วย
ตัวเลขที่ใกล้เคียงกับ 255 แสดงถึงช่วงที่แคบกว่า ในขณะที่ตัวเลขที่ใกล้เคียงกับ 0 แสดงถึงช่วงที่กว้างกว่า
Usage:
optical_1.object_detect_threshold(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลขในช่วง 0 - 255 ค่า 0 จะแสดงค่าปัจจุบัน |
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)
ผู้รับ#
is_near_object#
is_near_object จะส่งคืนค่าว่าเซ็นเซอร์แสงอยู่ใกล้กับวัตถุหรือไม่
True— เซ็นเซอร์อยู่ใกล้กับวัตถุFalse— เซ็นเซอร์ไม่ได้อยู่ใกล้กับวัตถุ
Usage:
optical_1.is_near_object()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# 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 จะส่งคืนสีที่กำหนดไว้ล่วงหน้าซึ่งตรวจจับได้โดยเซ็นเซอร์แสงจากสีด้านล่าง:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# 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
เปอร์เซ็นต์ที่สูงขึ้นหมายความว่าเซ็นเซอร์แสงตรวจจับแสงได้มากขึ้น เปอร์เซ็นต์ที่ต่ำลงหมายความว่าเซ็นเซอร์แสงตรวจจับแสงได้น้อยลง
Usage:
optical_1.brightness(readraw)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม ค่าบูลีนเพื่ออ่านข้อมูลความสว่างดิบแทนที่จะเป็นเปอร์เซ็นต์:
|
hue#
hue จะส่งคืนค่าเฉดสีที่ตรวจพบโดยเซ็นเซอร์แสงในรูปแบบทศนิยมในช่วง 0 ถึง 359.99 องศา
เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี ดังแสดงในภาพด้านล่าง

Usage:
optical_1.hue()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# 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 จะส่งคืนค่าสีแดง สีเขียว สีน้ำเงิน และความสว่างที่ตรวจจับได้โดยเซ็นเซอร์แสงในรูปแบบทูเปิล
Usage:
optical_1.rgb(raw)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม ค่าบูลีนเพื่อกำหนดว่าจะส่งคืนค่าดิบหรือค่าที่ประมวลผลแล้ว:
|
# 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 จะส่งคืนค่าบูลีนที่ระบุว่าเซ็นเซอร์แสงเชื่อมต่อกับสมองหรือไม่
True— เซ็นเซอร์แสงเชื่อมต่อกับสมองFalse— เซ็นเซอร์แสงไม่ได้เชื่อมต่อกับสมอง
Usage:
optical_1.installed()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
การเรียกกลับ#
object_detected#
object_detected ลงทะเบียนฟังก์ชันเรียกกลับสำหรับเมื่อตรวจพบวัตถุ
Usage:
optical_1.object_detected(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A function that is previously defined to execute when an object is detected. |
|
ตัวเลือกเสริม ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
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 ลงทะเบียนฟังก์ชันเรียกกลับสำหรับกรณีที่เซ็นเซอร์แสงตรวจไม่พบวัตถุ
Usage:
optical_1.object_lost(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A function that is previously defined to execute when an object is lost. |
|
ตัวเลือกเสริม ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
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)
ผู้สร้าง#
ตัวสร้าง (Constructor) ใช้สำหรับสร้างอ็อบเจ็กต์ Optical ด้วยตนเอง ซึ่งจำเป็นสำหรับการกำหนดค่า Optical Sensor นอก VEXcode
Optical#
Optical สร้างเซ็นเซอร์แสง
Usage:
Optical(smartport)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์แสง จะเขียนแทนด้วย PORTx โดยที่ x คือหมายเลขของพอร์ต |
# 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())