การใช้เซนเซอร์วิชั่น - Python
กล่องเครื่องมือสำหรับครู
-
วัตถุประสงค์ของส่วนนี้
การใช้เซนเซอร์วิชั่นอย่างมีประสิทธิผลต้องอาศัยการที่นักเรียนสามารถกำหนดค่าและปรับแต่งได้ตามสภาพแวดล้อมในขณะนั้น ในการทำกิจกรรมต่อไปนี้ นักเรียนจะได้เรียนรู้วิธีทำทั้งสองอย่าง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเขียนโปรแกรมเซ็นเซอร์วิชั่นด้วย VEXcode V5 โปรดไปที่ข้อมูลวิธีใช้ ใน VEXcode V5 สำหรับ Pythonหรือดูส่วน V5 ของไลบรารี VEX.
ต่อไปนี้เป็นโครงร่างของสิ่งที่นักเรียนของคุณจะทำในกิจกรรมนี้:
-
เปิดโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์)
-
กำหนดค่าเซนเซอร์วิชั่น
-
รันโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์)
-
อภิปรายและสะท้อนความคิด
-
ปรับแต่งเซนเซอร์วิชั่น
เคล็ดลับสำหรับครู
หากนี่เป็นครั้งแรกที่นักเรียนใช้ VEXcode V5 พวกเขาสามารถเข้าถึงบทความที่เป็นประโยชน์มากมายในไลบรารี VEXได้
เคล็ดลับสำหรับครู
-
การใช้การกรอกอัตโนมัติ
การกรอกข้อความอัตโนมัติเป็นคุณลักษณะใน VEXcode V5 ที่ทำนายส่วนที่เหลือของคำสั่งที่คุณกำลังพิมพ์ เนื่องจากนักเรียนกำลังทำงานใน VEXcode V5 โปรดสนับสนุนให้พวกเขาใช้คุณลักษณะการกรอกอัตโนมัติเพื่อช่วยในเรื่องไวยากรณ์ Python คุณอาจสังเกตเห็นฟังก์ชั่นการกรอกอัตโนมัติขณะที่คุณเริ่มพิมพ์คำสั่ง ใช้ปุ่ม “ขึ้น” และ “ลง” เพื่อเลือกชื่อที่คุณต้องการ จากนั้นกด “Tab” หรือ (Enter/Return) บนแป้นพิมพ์ของคุณเพื่อเลือก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้การกรอก โปรดดูบทความนี้
รับฮาร์ดแวร์ที่จำเป็น สมุดบันทึกวิศวกรรมของคุณ และเปิด VEXcode V5
ปริมาณ | วัสดุที่ต้องใช้ |
---|---|
1 |
ชุดเริ่มต้นห้องเรียน VEX V5 |
1 |
VEXcode V5 (เวอร์ชันล่าสุด, Windows, macOS) |
1 |
สมุดบันทึกวิศวกรรม |
1 |
การกำหนดค่าเซ็นเซอร์วิชั่น (ไลบรารี VEX) |
1 |
การปรับแต่งเซนเซอร์วิชั่น (ไลบรารี VEX) |
1 |
โครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) |
กิจกรรมนี้จะให้เครื่องมือแก่คุณเพื่อใช้เซ็นเซอร์วิชั่น
คุณสามารถใช้ข้อมูล Help ใน VEXcode V5 เพื่อเรียนรู้เกี่ยวกับคำสั่งต่างๆ
ขั้นตอนที่ 1: เปิดโครงการตัวอย่าง
VEXcode V5 มีโครงการตัวอย่างที่แตกต่างกันมากมาย คุณจะใช้หนึ่งในนั้นในการสำรวจนี้
เปิดโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) โดยทำตามขั้นตอนต่อไปนี้:
- เปิดเมนูไฟล์
- เลือก เปิดตัวอย่าง.
- ใช้แถบตัวกรองที่ด้านบนของแอปพลิเคชันและเลือก "การตรวจจับ"
เลือกและเปิดโครงการตัวอย่าง Detecting Objects (Vision)
บันทึกโครงการของคุณเป็นการตรวจจับวัตถุ
- ตรวจสอบให้แน่ใจว่าชื่อโครงการ ตรวจจับวัตถุ อยู่ในหน้าต่างตรงกลางแถบเครื่องมือแล้ว
เคล็ดลับสำหรับครู
-
ตรวจสอบให้แน่ใจว่านักเรียนได้เลือก เปิดตัวอย่าง จากเมนูไฟล์
-
ตรวจสอบให้แน่ใจว่านักเรียนได้เลือกโครงการตัวอย่าง การตรวจจับวัตถุ (วิสัยทัศน์) คุณสามารถชี้ให้ผู้เรียนทราบว่ามีตัวเลือกหลายตัวให้เลือกในหน้า ตัวอย่างเปิด
-
คุณสามารถขอให้เด็กนักเรียนเพิ่มอักษรย่อของตนเองหรือชื่อกลุ่มลงในชื่อโครงการได้ สิ่งนี้จะช่วยแยกแยะโปรแกรมต่างๆ ออกจากกัน หากคุณขอให้นักเรียนส่งโปรแกรมเหล่านั้น
-
เนื่องจาก VEXcode V5 มีระบบบันทึกอัตโนมัติ จึงไม่จำเป็นต้องบันทึกโครงการอีกครั้งหลังจากบันทึกครั้งแรก
-
หากนักเรียนต้องการความช่วยเหลือในการบันทึก กรุณาไปที่บทความต่อไปนี้:
ขั้นตอนที่ 2: การกำหนดค่าและการใช้เซนเซอร์วิชั่น
- เริ่มต้นโดยการอ่าน Vision Sensor - Robot Config - VEXcode
- จากนั้นอ่าน การปรับเซนเซอร์วิชั่น-การกำหนดค่าหุ่นยนต์-VEXcode V5
- ขั้นตอนต่อไป คือ กำหนดค่าเซ็นเซอร์วิชั่นสำหรับวัตถุ 3 สี ได้แก่ สีแดง สีเขียว และสีน้ำเงิน
เปิดโครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) ที่บันทึกไว้ก่อนหน้านี้
เซ็นเซอร์วิชั่นถูกนำมาใช้ในโครงการนี้อย่างไร? คาดการณ์สิ่งที่จะเกิดขึ้นเมื่อดำเนินโครงการและจดบันทึกการคาดการณ์ลงในสมุดบันทึกวิศวกรรมของคุณ
# 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)
- ดาวน์โหลดและรันโครงการ วางวัตถุที่มีสีต่างๆ ไว้ข้างหน้าเซนเซอร์วิชั่นและสังเกตพฤติกรรมของหุ่นยนต์ บันทึกไว้ในสมุดบันทึกวิศวกรรมของคุณว่าคำทำนายของคุณแตกต่างหรือถูกต้องอย่างไรเมื่อเปรียบเทียบกับสิ่งที่คุณสังเกตได้จริงจากโครงการ
เคล็ดลับสำหรับครู
วัตถุสามสีไม่จำเป็นต้องเป็นลูกบาศก์ แต่สามารถเป็นวัตถุที่มีขนาดเล็กเป็นสีเขียว สีแดง และสีน้ำเงินได้
สนทนาสร้างแรงจูงใจ
-
คำตอบ
อำนวยความสะดวกในการอภิปรายในชั้นเรียนเพื่อให้เด็กนักเรียนได้แบ่งปันสิ่งที่พวกเขาคาดการณ์ว่าโครงการนี้จะเกิดขึ้นได้ในสมุดบันทึกวิศวกรรมของพวกเขา และยังสะท้อนถึงวิธีการกำหนดค่าเซนเซอร์วิชั่นด้วย
อำนวยความสะดวกในการอภิปรายโดยถามคำถามต่อไปนี้:
-
ขั้นตอนการกำหนดค่าเซ็นเซอร์วิชั่นมีอะไรบ้าง?
-
โครงสร้าง if else ทำหน้าที่อะไร?
-
ถ้าเราเปลี่ยนห้อง เซ็นเซอร์วิชั่นจะตรวจจับวัตถุได้อย่างไร?
คำตอบจะแตกต่างกัน:
-
นักเรียนควรทราบว่าจะต้องตัดสินใจเลือกชื่อวัตถุ วัตถุควรวางไว้ในกรอบของเซนเซอร์วิชั่นและหยุดนิ่งโดยใช้ปุ่ม "หยุดนิ่ง" จากนั้นจะเลือกสีและกำหนดค่าโดยใช้ปุ่ม "ตั้งค่า" นักเรียนควรสรุปขั้นตอนที่ระบุ ในบทความนี้
-
โครงสร้าง if else จะรันคำสั่งภายในส่วนแรกหรือส่วนที่สองของ if else ตามค่าบูลีนที่รายงาน ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้คำแนะนำนี้สามารถพบได้ในข้อมูลวิธีใช้
-
หากมีการขอให้ Vision Sensor ตรวจจับวัตถุในสภาพแวดล้อมที่แตกต่างกัน แสงอาจเปลี่ยนไป และสีของวัตถุอาจดูแตกต่างออกไป ซึ่งอาจทำให้เซนเซอร์วิชั่นตรวจจับวัตถุได้ยาก
ขยายการเรียนรู้ของคุณ
-
กำหนดค่าวัตถุเพิ่มเติม
เลือกสองวัตถุที่มีสีอื่นเพื่อกำหนดค่า อาจเป็นสีขาว สีม่วง สีเหลือง เป็นต้น...
หากนักเรียนต้องการความช่วยเหลือ โปรดดูข้อมูล ความช่วยเหลือ หรือบทความ การกำหนดค่าเซ็นเซอร์วิชั่น V5
ขั้นตอนที่ 3: ปรับแต่งเซนเซอร์วิชั่น
บ่อยครั้งที่วัตถุได้รับการกำหนดค่าเพื่อให้ได้รับการจดจำโดยวิชั่นเซนเซอร์ในสภาพแวดล้อมหนึ่ง เช่น ในห้องเรียน เมื่อนำวิชั่นเซนเซอร์ไปใช้ในสภาพแวดล้อมอื่น เช่น สถานที่แข่งขัน วัตถุนั้นอาจไม่ถูกจดจำโดยวิชั่นเซนเซอร์ โดยทั่วไปนี้เกิดจากการเปลี่ยนแปลงแสงหลังจากได้กำหนดค่า Vision Sensor เป็น แล้ว เพื่อแก้ไขปัญหานี้ คุณอาจต้องปรับแต่งเซ็นเซอร์วิชั่นของคุณ
- เริ่มต้นโดยการอ่าน การปรับเซ็นเซอร์วิชั่น V5 ใน VEXcode V5
- จาก ปรับเซนเซอร์วิชั่น สำหรับวัตถุ 3 สี ได้แก่ สีแดง สีเขียว และสีน้ำเงิน
เปิดโครงการตัวอย่าง Detecting Objects (Vision) ที่บันทึกไว้ก่อนหน้านี้
การปรับแต่งเซนเซอร์วิชั่นจะส่งผลต่อความสามารถในการตรวจจับวัตถุอย่างไร นำ Clawbot ไปยังส่วนอื่นๆ ของห้องที่มีแสงมากหรือน้อย
- ดาวน์โหลดและรันโครงการ วางวัตถุที่มีสีต่างๆ ไว้ข้างหน้าเซนเซอร์วิชั่นและสังเกตพฤติกรรมของหุ่นยนต์ จัดทำเอกสารในสมุดบันทึกวิศวกรรมของคุณว่าเซ็นเซอร์วิชั่นตรวจจับวัตถุได้ดีเพียงใด จำเป็นต้องปรับแต่งเซนเซอร์วิชั่นหลังจากเปลี่ยนตำแหน่งหรือไม่
- ปรับแต่งเซนเซอร์วิชั่นตามความจำเป็น ทดสอบเซนเซอร์วิชั่นหลังจากที่ปรับแต่งแล้วเพื่อดูว่าสามารถตรวจจับวัตถุได้ดีขึ้นหรือไม่ และปรับแต่งตามความจำเป็น
กระตุ้นการสนทนา
-
การสะท้อนถึงกิจกรรม
ถาม: เซ็นเซอร์วิชั่นสามารถตรวจจับวัตถุได้ตามที่คุณคาดหวังหรือไม่
ตอบ: คำตอบอาจแตกต่างกันไป อย่างไรก็ตาม เป้าหมายของคำถามนี้คือเพื่อส่งเสริมการคิดเชิงองค์ความรู้ นักเรียนควรทราบว่าความสามารถในการตรวจจับวัตถุของเซ็นเซอร์วิชั่นอาจเปลี่ยนแปลงได้ขึ้นอยู่กับสภาพแวดล้อมและแสง
ถาม: เหตุใดการปรับแต่งเซ็นเซอร์วิชั่นตามต้องการจึงมีความสำคัญ
ตอบ: แม้ว่าคำตอบอาจแตกต่างกันไป แต่คำตอบทั่วไปควรเป็นว่าหากหุ่นยนต์ใช้เซ็นเซอร์วิชั่นและถูกนำไปแข่งขันหรือแม้แต่ใช้ในเกมหรือการท้าทาย ประสิทธิภาพของหุ่นยนต์จะขึ้นอยู่กับความแม่นยำของเซ็นเซอร์วิชั่น การปรับแต่งเป็นสิ่งสำคัญเพื่อความแม่นยำ
ขยายการเรียนรู้ของคุณ
-
วัตถุหลายรายการ
ขอให้ผู้เรียนรันโครงการ การตรวจจับวัตถุ (วิสัยทัศน์) และวางวัตถุที่กำหนดค่าไว้มากกว่าหนึ่งรายการไว้หน้าเซ็นเซอร์วิสัยทัศน์ เกิดอะไรขึ้น? ขอให้พวกเขาบันทึกผลการค้นพบของตนในสมุดบันทึกวิศวกรรมของพวกเขา
นี้ ขอให้ผู้เรียนวางวัตถุที่กำหนดค่าไว้หนึ่งชิ้นและวัตถุที่ไม่รู้จักหรือไม่ได้กำหนดค่าไว้ข้างหน้าเซนเซอร์วิชั่น เกิดอะไรขึ้น? ขอให้พวกเขาบันทึกผลการค้นพบของตนในสมุดบันทึกวิศวกรรมของตน
ถามนักเรียนก่อนที่จะทำการทดสอบว่าจะเกิดอะไรขึ้นหากพวกเขาวางวัตถุที่กำหนดค่าไว้สามชิ้นไว้ข้างหน้าเซ็นเซอร์วิชั่น ขอให้นักเรียนเขียนคำทำนายของตนลงไปก่อนที่จะทำการทดสอบ ขอให้พวกเขาบันทึกการสังเกตของพวกเขาหลังจากการทดสอบแล้ว
อำนวยความสะดวกในการอภิปรายเกี่ยวกับสิ่งที่นักเรียนทำนายและสังเกต
อำนวยความสะดวกในการสนทนาโดยถามว่า:
- ความแตกต่างระหว่างวัตถุหนึ่งชิ้น สองชิ้น และสามชิ้นคืออะไร?
- คุณจะปรับโครงการในทางใดทางหนึ่งเพื่อการจดจำวัตถุหลายๆ ชิ้นหรือไม่