เซ็นเซอร์แสง#

การแนะนำ#

เซ็นเซอร์ออปติคอล 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)

พารามิเตอร์

คำอธิบาย

สถานะ

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)

ตั้งค่าพลังงานแสง#

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 ส่งคืนค่าบูลีนที่ระบุว่าเซ็นเซอร์แสงตรวจพบวัตถุที่อยู่ในระยะหรือไม่

  • 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 ส่งคืนค่าเฉดสีของสีที่ตรวจพบเป็นค่าทศนิยม (float) ตั้งแต่ 0 ถึง 359

เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

วงล้อสี 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

A previously defined function that executes when the Optical Sensor detects a new object.

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

A previously defined function that executes when the Optical Sensor loses a detected object.

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)

ผู้สร้าง#

ตัวสร้าง (Constructor) ใช้สำหรับสร้างอ็อบเจ็กต์ Optical ด้วยตนเอง ซึ่งจำเป็นสำหรับการกำหนดค่า Optical Sensor นอก VEXcode

Optical#

Optical สร้างเซ็นเซอร์แสง

Usage:
Optical(smartport)

พารามิเตอร์

คำอธิบาย

smartport

พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์แสง จะเขียนในรูปแบบ Ports.PORTx โดยที่ x คือหมายเลขของพอร์ต

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