เซ็นเซอร์วัตถุ#

การแนะนำ#

เซ็นเซอร์ตรวจจับวัตถุ เป็นเซ็นเซอร์ตรวจจับระยะใกล้แบบอินฟราเรด (IR) ที่ตรวจจับเมื่อมีวัตถุอยู่ใกล้โดยใช้แสงอินฟราเรดสะท้อน

เซ็นเซอร์วัตถุ VEX

หน้านี้ใช้ object_sensor เป็นตัวอย่างชื่อ Object Sensor โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ

ด้านล่างนี้คือรายการวิธีการที่มีให้เลือกใช้:

  • reflectivity – ส่งคืน integer ที่แสดงปริมาณแสงที่สะท้อนจากวัตถุเป็นเปอร์เซ็นต์

  • is_object_detected – ส่งคืนว่าเซ็นเซอร์วัตถุตรวจพบวัตถุหรือไม่

  • set_threshold – กำหนดปริมาณแสงสะท้อนที่จำเป็นก่อนที่จะถือว่าตรวจพบวัตถุ

  • object_detected – ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อใดก็ตามที่เซ็นเซอร์วัตถุตรวจพบวัตถุใหม่

  • object_lost – ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อใดก็ตามที่เซ็นเซอร์วัตถุสูญเสียวัตถุที่ตรวจพบ

  • changed – ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อใดก็ตามที่ค่าของเซ็นเซอร์วัตถุเปลี่ยนแปลง

ตัวสร้าง – กำหนดค่าเริ่มต้นให้กับเซ็นเซอร์วัตถุด้วยตนเอง

  • ObjectDetector – สร้างเซ็นเซอร์วัตถุ

การสะท้อนแสง#

reflectivity ส่งคืน integer ที่แสดงปริมาณแสงที่สะท้อนจากวัตถุเป็นเปอร์เซ็นต์

บันทึก:

  • ค่าการสะท้อนแสง 0% หมายความว่าวัตถุนั้นมืดมาก เซ็นเซอร์จะตรวจจับค่าดิบได้ตั้งแต่ 3000 ขึ้นไป

  • ค่าการสะท้อนแสง 100% หมายความว่าวัตถุนั้นสว่างมาก เซ็นเซอร์จึงมองเห็นค่าดิบเป็น 0

Usage:
object_sensor.reflectivity()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Drive forward when the reflectivity is greater than 50%.
while True:
    if object_sensor.reflectivity() > 50:
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

ตรวจพบวัตถุ#

is_object_detected จะส่งคืนค่าว่าเซ็นเซอร์ตรวจจับวัตถุตรวจพบวัตถุหรือไม่

  • True – เซ็นเซอร์ตรวจจับวัตถุตรวจพบวัตถุ

  • False – เซ็นเซอร์ตรวจจับวัตถุไม่พบวัตถุใดๆ

Usage:
object_sensor.is_object_detected()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Drive forward when the object sensor is detecting an object.
while True:
    if object_sensor.is_object_detected():
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

ตั้งค่าเกณฑ์#

set_threshold กำหนดปริมาณแสงสะท้อนที่ต้องการเป็นเปอร์เซ็นต์ก่อนที่จะถือว่าตรวจพบวัตถุ

Usage:
object_sensor.set_threshold(value)

พารามิเตอร์

คำอธิบาย

value

ปริมาณแสงสะท้อนที่จำเป็นต่อการพิจารณาว่าตรวจพบวัตถุนั้นเป็นจำนวนเต็ม ตั้งแต่ 0 ถึง 100

# Set the reflectivity threshold to 50%.
object_sensor.set_threshold(50)
# Drive forward when the object sensor is detecting an object.
while True:
    if object_sensor.is_object_detected():
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

ตรวจพบวัตถุ#

object_detected ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์ตรวจจับวัตถุตรวจพบวัตถุใหม่

Usage:
object_sensor.object_detected(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

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

arg

ไม่บังคับ ทูเปิล tuple ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม

def my_function():
  brain.screen.print("Object detected.")

# Call my_function whenever object_sensor detects an object
object_sensor.object_detected(my_function)

วัตถุหายไป#

object_lost ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อใดก็ตามที่เซ็นเซอร์ตรวจจับวัตถุไม่สามารถตรวจจับวัตถุได้อีกต่อไป

Usage:
object_sensor.object_lost(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

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

arg

ไม่บังคับ ทูเปิล tuple ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม

def my_function():
  brain.screen.print("Object lost.")

# Call my_function whenever object_sensor loses an object
object_sensor.object_lost(my_function)

เปลี่ยน#

changed ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้ทุกครั้งที่ค่าของเซ็นเซอร์วัตถุเปลี่ยนแปลง

Usage:
object_sensor.changed(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

A previously defined function that executes when the Object Sensor’s value changes.

arg

ไม่บังคับ ทูเปิล tuple ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม

def my_function():
  brain.screen.print("Reflectivity changed.")

# Call my_function whenever object_sensor's value changes
object_sensor.changed(my_function)

ผู้สร้าง#

ตัวสร้างใช้สำหรับสร้างวัตถุ ObjectDetector จำนวน ชิ้นด้วยตนเอง ซึ่งจำเป็นสำหรับการกำหนดค่าเซ็นเซอร์วัตถุ

ObjectDetector#

ObjectDetector สร้างเซ็นเซอร์ตรวจจับวัตถุ

Usage:
ObjectDetector(port, reverse_det)

พารามิเตอร์

คำอธิบาย

port

พอร์ต 3 สายที่เซ็นเซอร์วัตถุเชื่อมต่ออยู่:

  • บน EXP Brain – brain.three_wire_port.x โดยที่ x คือหมายเลขของพอร์ต
  • บน 3-Wire Expander – expander.a โดยที่ expander คือชื่อของอินสแตนซ์ expander

reverse_det

ตัวเลือกเสริม ว่าจะกลับตรรกะการตรวจจับหรือไม่:

  • True – เมื่อวัตถุหายไป ให้ส่งคืนว่าตรวจพบวัตถุ และเมื่อตรวจพบวัตถุ ให้ส่งคืนว่าวัตถุหายไป
  • False (ค่าเริ่มต้น) – เมื่อวัตถุหายไป ให้ส่งคืนว่าวัตถุหายไป และเมื่อตรวจพบวัตถุ ให้ส่งคืนว่าตรวจพบวัตถุ

# Create an Object Sensor in Port A
object_sensor = ObjectDetector(brain.three_wire_port.a)