Skip to main content
พอร์ทัลครู

การใช้เซนเซอร์วิชั่น - Python

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือสำหรับครู - วัตถุประสงค์ของส่วนนี้

การใช้เซนเซอร์วิชั่นอย่างมีประสิทธิผลต้องอาศัยการที่นักเรียนสามารถกำหนดค่าและปรับแต่งได้ตามสภาพแวดล้อมในขณะนั้น ในการทำกิจกรรมต่อไปนี้ นักเรียนจะได้เรียนรู้วิธีทำทั้งสองอย่าง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเขียนโปรแกรมเซ็นเซอร์วิชั่นด้วย VEXcode V5 โปรดไปที่ข้อมูลวิธีใช้ ใน VEXcode V5 สำหรับ Pythonหรือดูส่วน V5 ของไลบรารี VEX.

ต่อไปนี้เป็นโครงร่างของสิ่งที่นักเรียนของคุณจะทำในกิจกรรมนี้:

  • เปิดโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์)

  • กำหนดค่าเซนเซอร์วิชั่น

  • รันโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์)

  • อภิปรายและสะท้อนความคิด

  • ปรับแต่งเซนเซอร์วิชั่น

ไอคอนเคล็ดลับสำหรับครู เคล็ดลับสำหรับครู

หากนี่เป็นครั้งแรกที่นักเรียนใช้ VEXcode V5 พวกเขาสามารถเข้าถึงบทความที่เป็นประโยชน์มากมายในไลบรารี VEXได้ 

ไอคอนเคล็ดลับสำหรับครู เคล็ดลับสำหรับครู - การใช้การกรอกอัตโนมัติ

การกรอกข้อความอัตโนมัติเป็นคุณลักษณะใน VEXcode V5 ที่ทำนายส่วนที่เหลือของคำสั่งที่คุณกำลังพิมพ์ เนื่องจากนักเรียนกำลังทำงานใน VEXcode V5 โปรดสนับสนุนให้พวกเขาใช้คุณลักษณะการกรอกอัตโนมัติเพื่อช่วยในเรื่องไวยากรณ์ Python คุณอาจสังเกตเห็นฟังก์ชั่นการกรอกอัตโนมัติขณะที่คุณเริ่มพิมพ์คำสั่ง ใช้ปุ่ม “ขึ้น” และ “ลง” เพื่อเลือกชื่อที่คุณต้องการ จากนั้นกด “Tab” หรือ (Enter/Return) บนแป้นพิมพ์ของคุณเพื่อเลือก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้การกรอก โปรดดูบทความนี้VEXcode V5 พร้อมส่วน Drivetrain ของคำสั่งที่พิมพ์ไว้ทางซ้าย และทางขวาจะแสดงรายการตัวเลือกการกรอกอัตโนมัติแบบเลื่อนได้สำหรับคำสั่งนั้น

รับฮาร์ดแวร์ที่จำเป็น สมุดบันทึกวิศวกรรมของคุณ และเปิด VEXcode V5

วัสดุที่ต้องใช้:
ปริมาณ วัสดุที่ต้องใช้
1

ชุดเริ่มต้นห้องเรียน VEX V5

1

VEXcode V5 (เวอร์ชันล่าสุด, Windows, macOS)

1

สมุดบันทึกวิศวกรรม

1

การกำหนดค่าเซ็นเซอร์วิชั่น (ไลบรารี VEX)

1

การปรับแต่งเซนเซอร์วิชั่น (ไลบรารี VEX)

1

โครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์)

กิจกรรมนี้จะให้เครื่องมือแก่คุณเพื่อใช้เซ็นเซอร์วิชั่น

คุณสามารถใช้ข้อมูล Help ใน VEXcode V5 เพื่อเรียนรู้เกี่ยวกับคำสั่งต่างๆ

VEXcode V5 จะแสดงโดยมีกล่องเครื่องมือเปิดอยู่ทางด้านซ้ายสุด และคำสั่งวิธีใช้สำหรับไดรฟ์เปิดอยู่ทางด้านขวาสุด ความช่วยเหลือจะแสดงคำจำกัดความของคำสั่งและข้อมูลเกี่ยวกับวิธีการใช้งาน

ขั้นตอนที่ 1: เปิดโครงการตัวอย่าง

VEXcode V5 มีโครงการตัวอย่างที่แตกต่างกันมากมาย คุณจะใช้หนึ่งในนั้นในการสำรวจนี้

เปิดโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) โดยทำตามขั้นตอนต่อไปนี้:

  • เปิดเมนูไฟล์
  • เลือก เปิดตัวอย่าง.

แถบเครื่องมือ VEXcode V5 พร้อมเมนูไฟล์ที่เปิดอยู่และเปิดตัวอย่างที่เน้นด้วยกล่องสีแดง เปิดตัวอย่างเป็นรายการเมนูที่สี่ภายใต้ โปรเจ็กต์บล็อกใหม่ โปรเจ็กต์ข้อความใหม่ และ เปิด

  • ใช้แถบตัวกรองที่ด้านบนของแอปพลิเคชันและเลือก "การตรวจจับ"

ตัวอย่างหน้าต่างการเลือกโครงการใน VEXcode V5 จะแสดงฟิลเตอร์ Sensing ที่เลือกไว้ที่ด้านบน โดยเน้นด้วยกล่องสีแดง ด้านล่างนี้เป็นตัวอย่างไอคอนโครงการบางส่วน

เลือกและเปิดโครงการตัวอย่าง Detecting Objects (Vision)

ไอคอนตัวอย่างโครงการเขียนว่า การตรวจจับวัตถุวิสัยทัศน์ ที่ด้านล่าง และแสดงไอคอนหุ่นยนต์พร้อมเซ็นเซอร์ทางด้านซ้ายและภาพร่างที่ระบุการตรวจจับทางด้านขวา

บันทึกโครงการของคุณเป็นการตรวจจับวัตถุ

  • ตรวจสอบให้แน่ใจว่าชื่อโครงการ ตรวจจับวัตถุ อยู่ในหน้าต่างตรงกลางแถบเครื่องมือแล้ว

ไอคอนเคล็ดลับสำหรับครู เคล็ดลับสำหรับครู

  • ตรวจสอบให้แน่ใจว่านักเรียนได้เลือก เปิดตัวอย่าง จากเมนูไฟล์

  • ตรวจสอบให้แน่ใจว่านักเรียนได้เลือกโครงการตัวอย่าง การตรวจจับวัตถุ (วิสัยทัศน์) คุณสามารถชี้ให้ผู้เรียนทราบว่ามีตัวเลือกหลายตัวให้เลือกในหน้า ตัวอย่างเปิด

  • คุณสามารถขอให้เด็กนักเรียนเพิ่มอักษรย่อของตนเองหรือชื่อกลุ่มลงในชื่อโครงการได้ สิ่งนี้จะช่วยแยกแยะโปรแกรมต่างๆ ออกจากกัน หากคุณขอให้นักเรียนส่งโปรแกรมเหล่านั้น

  • เนื่องจาก VEXcode V5 มีระบบบันทึกอัตโนมัติ จึงไม่จำเป็นต้องบันทึกโครงการอีกครั้งหลังจากบันทึกครั้งแรก

  • หากนักเรียนต้องการความช่วยเหลือในการบันทึก กรุณาไปที่บทความต่อไปนี้: 

ขั้นตอนที่ 2: การกำหนดค่าและการใช้เซนเซอร์วิชั่น

หน้าต่างการกำหนดค่าเซ็นเซอร์วิสัยทัศน์แสดงรูปภาพมือถือลูกบาศก์สีแดงทางด้านซ้าย โดยมีการซ้อนลูกบาศก์และมีคำว่า REDBOX และ W142 H142 อยู่ด้านบน ทางด้านขวามีการตั้งค่าลายเซ็นสี 3 สีสำหรับ BlueBox, Redbox และ Greenbox

เปิดโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) ที่บันทึกไว้ก่อนหน้านี้

เซ็นเซอร์วิชั่นถูกนำมาใช้ในโครงการนี้อย่างไร? คาดการณ์สิ่งที่จะเกิดขึ้นเมื่อดำเนินโครงการและจดบันทึกการคาดการณ์ลงในสมุดบันทึกวิศวกรรมของคุณ

  # Library imports
	from vex import *
	
	# Begin project code
	
	check_red = Event()
	check_blue = Event()
	check_green = Event()
	
	# Will check to see if there is a blue object in view of the vision
	# sensor and display the result on line 1 on the V5 Brain's screen
	def has_blue_callback():
		brain.screen.clear_row(1)
		brain.screen.set_cursor(1, 1)
		vexcode_vision_5_objects = vision_5.take_snapshot(vision_5__BLUEBOX)
		if vexcode_vision_5_objects and len(vexcode_vision_5_objects) > 0:
			brain.screen.print("Blue Object Found")
		else:
			brain.screen.print("No Blue Object")
	
	# Will check to see if there is a red object in view of the vision
	# sensor and display the result on line 3 on the V5 Brain's screen
	def has_red_callback():
		brain.screen.clear_row(3)
		brain.screen.set_cursor(3, 1)
		vexcode_vision_5_objects = vision_5.take_snapshot(vision_5__REDBOX)
		if vexcode_vision_5_objects and len(vexcode_vision_5_objects) > 0:
			brain.screen.print("Red Object Found")
		else:
			brain.screen.print("No Red Object")
	
	# Will check to see if there is a green object in view of the vision
	# sensor and display the result on line 5 on the V5 Brain's screen
	def has_green_callback():
		brain.screen.clear_row(5)
		brain.screen.set_cursor(5, 1)
		vexcode_vision_5_objects = vision_5.take_snapshot(vision_5__GREENBOX)
		if vexcode_vision_5_objects and len(vexcode_vision_5_objects) > 0:
			brain.screen.print("Green Object Found")
		else:
			brain.screen.print("No Green Object")
	
	# register event handlers
	check_blue(has_blue_callback)
	check_red(has_red_callback)
	check_green(has_green_callback)
	
	# small delay to ensure that the event handlers are ready to be used
	wait(15, MSEC)
	
	# set the print font for all future prints to the V5 screen
	brain.screen.set_font(FontType.MONO40)
	
	# constantly runs to check for new sensor data
	while True:
		check_blue.broadcast_and_wait()
		check_red.broadcast_and_wait()
		check_green.broadcast_and_wait()
		wait(0.1, SECONDS)
  • ดาวน์โหลดและรันโครงการ วางวัตถุที่มีสีต่างๆ ไว้ข้างหน้าเซนเซอร์วิชั่นและสังเกตพฤติกรรมของหุ่นยนต์ บันทึกไว้ในสมุดบันทึกวิศวกรรมของคุณว่าคำทำนายของคุณแตกต่างหรือถูกต้องอย่างไรเมื่อเปรียบเทียบกับสิ่งที่คุณสังเกตได้จริงจากโครงการ

ไอคอนเคล็ดลับสำหรับครู เคล็ดลับสำหรับครู

วัตถุสามสีไม่จำเป็นต้องเป็นลูกบาศก์ แต่สามารถเป็นวัตถุที่มีขนาดเล็กเป็นสีเขียว สีแดง และสีน้ำเงินได้

ไอคอนสร้างแรงจูงใจในการสนทนา สนทนาสร้างแรงจูงใจ - คำตอบ

อำนวยความสะดวกในการอภิปรายในชั้นเรียนเพื่อให้เด็กนักเรียนได้แบ่งปันสิ่งที่พวกเขาคาดการณ์ว่าโครงการนี้จะเกิดขึ้นได้ในสมุดบันทึกวิศวกรรมของพวกเขา และยังสะท้อนถึงวิธีการกำหนดค่าเซนเซอร์วิชั่นด้วย
อำนวยความสะดวกในการอภิปรายโดยถามคำถามต่อไปนี้:

  1. ขั้นตอนการกำหนดค่าเซ็นเซอร์วิชั่นมีอะไรบ้าง?

  2. โครงสร้าง if else ทำหน้าที่อะไร?

  3. ถ้าเราเปลี่ยนห้อง เซ็นเซอร์วิชั่นจะตรวจจับวัตถุได้อย่างไร?

คำตอบจะแตกต่างกัน:

  1. นักเรียนควรทราบว่าจะต้องตัดสินใจเลือกชื่อวัตถุ วัตถุควรวางไว้ในกรอบของเซนเซอร์วิชั่นและหยุดนิ่งโดยใช้ปุ่ม "หยุดนิ่ง" จากนั้นจะเลือกสีและกำหนดค่าโดยใช้ปุ่ม "ตั้งค่า" นักเรียนควรสรุปขั้นตอนที่ระบุ ในบทความนี้

  2. โครงสร้าง if else จะรันคำสั่งภายในส่วนแรกหรือส่วนที่สองของ if else ตามค่าบูลีนที่รายงาน ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้คำแนะนำนี้สามารถพบได้ในข้อมูลวิธีใช้

  3. หากมีการขอให้ Vision Sensor ตรวจจับวัตถุในสภาพแวดล้อมที่แตกต่างกัน แสงอาจเปลี่ยนไป และสีของวัตถุอาจดูแตกต่างออกไป ซึ่งอาจทำให้เซนเซอร์วิชั่นตรวจจับวัตถุได้ยาก

ไอคอนขยายการเรียนรู้ของคุณ ขยายการเรียนรู้ของคุณ - กำหนดค่าวัตถุเพิ่มเติม

เลือกสองวัตถุที่มีสีอื่นเพื่อกำหนดค่า อาจเป็นสีขาว สีม่วง สีเหลือง เป็นต้น...

หน้าต่างการกำหนดค่าเซ็นเซอร์ภาพแสดงภาพสแน็ปช็อตทางด้านซ้ายพร้อมมือถือเฟืองสีเหลือง มีการวางซ้อนสี่เหลี่ยมบนเกียร์สีเหลืองและข้อมูลจะอ่านว่ากล่องสีเหลือง X90 y 62, w102, h 98 ทางด้านขวามีการตั้งค่าลายเซ็นสีสำหรับ Bluebox, Redbox, Greenbox และ Yellowbox

หากนักเรียนต้องการความช่วยเหลือ โปรดดูข้อมูล ความช่วยเหลือ หรือบทความ การกำหนดค่าเซ็นเซอร์วิชั่น V5

ขั้นตอนที่ 3: ปรับแต่งเซนเซอร์วิชั่น

บ่อยครั้งที่วัตถุได้รับการกำหนดค่าเพื่อให้ได้รับการจดจำโดยวิชั่นเซนเซอร์ในสภาพแวดล้อมหนึ่ง เช่น ในห้องเรียน เมื่อนำวิชั่นเซนเซอร์ไปใช้ในสภาพแวดล้อมอื่น เช่น สถานที่แข่งขัน วัตถุนั้นอาจไม่ถูกจดจำโดยวิชั่นเซนเซอร์ โดยทั่วไปนี้เกิดจากการเปลี่ยนแปลงแสงหลังจากได้กำหนดค่า Vision Sensor เป็น แล้ว เพื่อแก้ไขปัญหานี้ คุณอาจต้องปรับแต่งเซ็นเซอร์วิชั่นของคุณ

หน้าต่างการกำหนดค่าเซ็นเซอร์วิสัยทัศน์พร้อมมือถือลูกบาศก์สีแดงพร้อมข้อความซ้อนทับบนลูกบาศก์และอ่านว่า redbox และ x84 y 28 จากนั้น w 158 h 166 ทางด้านขวาของลายเซ็นสี Bluebox, Redbox และ Greenbox จะถูกตั้งค่าด้วยแถบเลื่อนที่เน้นอยู่ในกล่องสีแดง โดยตั้งค่าหน้าปัดเป็น 4.4

เปิดโครงการตัวอย่าง Detecting Objects (Vision) ที่บันทึกไว้ก่อนหน้านี้

การปรับแต่งเซนเซอร์วิชั่นจะส่งผลต่อความสามารถในการตรวจจับวัตถุอย่างไร นำ Clawbot ไปยังส่วนอื่นๆ ของห้องที่มีแสงมากหรือน้อย

V5 Clawbot บนสนาม โดยมีแขนลงและกรงเล็บเปิดออกรอบกล่องสีม่วง

  • ดาวน์โหลดและรันโครงการ วางวัตถุที่มีสีต่างๆ ไว้ข้างหน้าเซนเซอร์วิชั่นและสังเกตพฤติกรรมของหุ่นยนต์ จัดทำเอกสารในสมุดบันทึกวิศวกรรมของคุณว่าเซ็นเซอร์วิชั่นตรวจจับวัตถุได้ดีเพียงใด จำเป็นต้องปรับแต่งเซนเซอร์วิชั่นหลังจากเปลี่ยนตำแหน่งหรือไม่
  • ปรับแต่งเซนเซอร์วิชั่นตามความจำเป็น ทดสอบเซนเซอร์วิชั่นหลังจากที่ปรับแต่งแล้วเพื่อดูว่าสามารถตรวจจับวัตถุได้ดีขึ้นหรือไม่ และปรับแต่งตามความจำเป็น

ไอคอนสร้างแรงจูงใจในการสนทนา กระตุ้นการสนทนา - การสะท้อนถึงกิจกรรม

ถาม: เซ็นเซอร์วิชั่นสามารถตรวจจับวัตถุได้ตามที่คุณคาดหวังหรือไม่
ตอบ: คำตอบอาจแตกต่างกันไป อย่างไรก็ตาม เป้าหมายของคำถามนี้คือเพื่อส่งเสริมการคิดเชิงองค์ความรู้ นักเรียนควรทราบว่าความสามารถในการตรวจจับวัตถุของเซ็นเซอร์วิชั่นอาจเปลี่ยนแปลงได้ขึ้นอยู่กับสภาพแวดล้อมและแสง

ถาม: เหตุใดการปรับแต่งเซ็นเซอร์วิชั่นตามต้องการจึงมีความสำคัญ
ตอบ: แม้ว่าคำตอบอาจแตกต่างกันไป แต่คำตอบทั่วไปควรเป็นว่าหากหุ่นยนต์ใช้เซ็นเซอร์วิชั่นและถูกนำไปแข่งขันหรือแม้แต่ใช้ในเกมหรือการท้าทาย ประสิทธิภาพของหุ่นยนต์จะขึ้นอยู่กับความแม่นยำของเซ็นเซอร์วิชั่น การปรับแต่งเป็นสิ่งสำคัญเพื่อความแม่นยำ

ไอคอนขยายการเรียนรู้ของคุณ ขยายการเรียนรู้ของคุณ - วัตถุหลายรายการ

ขอให้ผู้เรียนรันโครงการ การตรวจจับวัตถุ (วิสัยทัศน์) และวางวัตถุที่กำหนดค่าไว้มากกว่าหนึ่งรายการไว้หน้าเซ็นเซอร์วิสัยทัศน์ เกิดอะไรขึ้น? ขอให้พวกเขาบันทึกผลการค้นพบของตนในสมุดบันทึกวิศวกรรมของพวกเขา
นี้ ขอให้ผู้เรียนวางวัตถุที่กำหนดค่าไว้หนึ่งชิ้นและวัตถุที่ไม่รู้จักหรือไม่ได้กำหนดค่าไว้ข้างหน้าเซนเซอร์วิชั่น เกิดอะไรขึ้น? ขอให้พวกเขาบันทึกผลการค้นพบของตนในสมุดบันทึกวิศวกรรมของตน

ถามนักเรียนก่อนที่จะทำการทดสอบว่าจะเกิดอะไรขึ้นหากพวกเขาวางวัตถุที่กำหนดค่าไว้สามชิ้นไว้ข้างหน้าเซ็นเซอร์วิชั่น ขอให้นักเรียนเขียนคำทำนายของตนลงไปก่อนที่จะทำการทดสอบ ขอให้พวกเขาบันทึกการสังเกตของพวกเขาหลังจากการทดสอบแล้ว

อินเทอร์เฟซยูทิลิตี้เซ็นเซอร์วิชั่นแสดงภาพมือถือ Greenbox และ Redbox ในหน้าต่างทางด้านซ้าย ลูกบาศก์แต่ละสีจะมีการซ้อนทับด้วยข้อมูล ทางด้านขวาเป็นลายเซ็นสำหรับ Bluebox, Redbox, Greenbox และ Yellowbox ที่ได้รับการตั้งค่าเรียบร้อยแล้ว

อำนวยความสะดวกในการอภิปรายเกี่ยวกับสิ่งที่นักเรียนทำนายและสังเกต

อำนวยความสะดวกในการสนทนาโดยถามว่า:

  • ความแตกต่างระหว่างวัตถุหนึ่งชิ้น สองชิ้น และสามชิ้นคืออะไร?
  • คุณจะปรับโครงการในทางใดทางหนึ่งเพื่อการจดจำวัตถุหลายๆ ชิ้นหรือไม่