วิชั่นเซนเซอร์คืออะไร? - ไพธอน
กล่องเครื่องมือสำหรับครู
-
วัตถุประสงค์ของหน้านี้
หน้านี้จะแนะนำให้นักเรียนทราบว่าวิชั่นเซนเซอร์คืออะไร และความสามารถบางประการของมัน จากนั้นนักเรียนจะวิเคราะห์ภาพบางส่วนของโครงการตัวอย่างเพื่อดูว่าสามารถใช้ Vision Sensor กับ VEXcode V5 ได้อย่างไร
คำถามในการอภิปรายสร้างแรงจูงใจที่ด้านล่างของหน้านี้สามารถทำเป็นการอภิปรายในชั้นเรียนหรือทำเป็นรายบุคคลในสมุดบันทึกวิศวกรรมของนักเรียนได้
กระตุ้นการสนทนา
ถาม: งานประเภทใดของมนุษย์ที่จะได้รับประโยชน์จากความช่วยเหลือของหุ่นยนต์ที่มีเซ็นเซอร์การมองเห็น
ตอบ: รับฟังงานของมนุษย์ที่จะได้รับประโยชน์จากความสามารถในการมองเห็นสภาพแวดล้อมและ/หรือจัดการสภาพแวดล้อมจากระยะไกล (เช่น การสังเกตสัตว์ในป่า การปลดอาวุธวัตถุระเบิด หรือการทำการผ่าตัดโดยใช้หุ่นยนต์ช่วย)
คำถาม: จงบอกชื่ออุปกรณ์และอธิบายว่าอุปกรณ์ดังกล่าวใช้ข้อมูลอินพุต ข้อมูลเอาต์พุต และกระบวนการอย่างไร
คำถาม: คำตอบที่เป็นไปได้ก็คือเครื่องคิดเลขที่นำลำดับตัวเลขและตัวดำเนินการทางคณิตศาสตร์ที่ผู้ใช้ป้อนเข้าไป มาประมวลผลตัวเลขและการดำเนินการเหล่านั้นเพื่อคำนวณผลลัพธ์ แล้วจึงแสดงผลลัพธ์นั้นออกสู่หน้าจอให้ผู้ใช้คนนั้นดู
ถาม: ทำไมคุณถึงคิดว่ามีการใช้ลูป ตลอดไป ในโปรเจ็กต์ที่แสดง
ตอบ: มีการใช้ลูป ตลอดไป เพื่อให้ Vision Sensor ตรวจสอบภาพสแน็ปช็อตที่ถ่ายไว้อย่างต่อเนื่องเพื่อดูว่ามีวัตถุสีแดงเข้ามาในมุมมองของ Sensor หรือไม่
คำอธิบาย
เซ็นเซอร์วิสัยทัศน์ช่วยให้หุ่นยนต์ของคุณรวบรวมข้อมูลภาพจากฟีดสดได้ ฟีดสดคือการถ่ายทอดภาพจากกล้องวิดีโอที่กำลังบันทึกอยู่แบบสตรีมมิ่ง Vision Sensor เป็นเหมือนกล้องอัจฉริยะที่สามารถสังเกต เลือก ปรับ และจัดเก็บสีและวัตถุที่ปรากฏอยู่ในขอบเขตการมองเห็นได้
ความสามารถ:
- เซ็นเซอร์นี้สามารถใช้ในการจดจำสีและรูปแบบสีได้
- เซ็นเซอร์นี้ใช้ติดตามวัตถุได้
- เซ็นเซอร์นี้สามารถใช้ในการรวบรวมข้อมูลเกี่ยวกับสภาพแวดล้อมได้
เซ็นเซอร์วิสัยทัศน์ช่วยให้หุ่นยนต์สามารถใช้ข้อมูลอินพุตภาพจากสภาพแวดล้อมได้ จากนั้นโครงการจะสามารถกำหนดได้ว่าข้อมูลอินพุตภาพจะส่งผลต่อพฤติกรรมของหุ่นยนต์อย่างไร ตัวอย่างเช่น หุ่นยนต์สามารถดำเนินการต่างๆ (เอาท์พุต) เช่น การหมุนมอเตอร์หรือการแสดงผลบนหน้าจอ LCD
เซ็นเซอร์วิชั่นยังสามารถจับภาพสิ่งที่อยู่ตรงหน้าและวิเคราะห์ตามสิ่งที่ผู้ใช้ต้องการได้อีกด้วย ตัวอย่างเช่น ผู้ใช้สามารถรวบรวมข้อมูลจากสแนปช็อต เช่น วัตถุมีสีอะไร มีการตรวจจับวัตถุใด ๆ บ้างหรือไม่? วัตถุมีขนาดใหญ่เท่าใด (ความกว้างและความสูง)
จากนั้นหุ่นยนต์สามารถตัดสินใจโดยอิงจากข้อมูลเหล่านี้ โครงการตัวอย่างบางส่วนด้านล่างนี้แสดงวิธีดำเนินการนี้ มีการตรวจสอบสีสามสีซ้ำๆ หลังจากเริ่มโครงการแล้ว และการตรวจสอบแต่ละสีจะเป็นเหตุการณ์ที่แตกต่างกัน ด้านล่างจะแสดงเฉพาะเหตุการณ์ที่ตรวจสอบเป็นสีน้ำเงินเท่านั้น สแต็กนี้จะมีการพิมพ์หุ่นยนต์ว่า "พบวัตถุสีน้ำเงิน" หากตรวจพบวัตถุสีน้ำเงิน หรือ "ไม่มีวัตถุสีน้ำเงิน" หากตรวจพบ เหตุการณ์ check_red และ check_green ที่ไม่ได้แสดงด้านล่างนี้มีสแต็กที่คล้ายกันในการตัดสินใจว่าจะพิมพ์อะไรบนหน้าจอ
# Library imports
from vex import *
# Begin project code
check_red = Event()
check_blue = Event()
check_green = Event()
def check_blue_callback():
brain.screen.set_font(FontType.MONO40)
brain.screen.clear_row(1)
brain.screen.set_cursor(1, 1)
# Take a snapshot with the Vision Sensor and store vision data into a variable
vision_5_objects = vision_5.take_snapshot(vision_5__BLUEBOX)
# Check the variable to see if the snapshot detected any blue objects
if (vision_5_objects):
brain.screen.print("Blue Object Found")
else:
brain.screen.print("No Blue Object")
# System Event Handlers
check_blue(check_blue_callback)
#add 15ms delay to make sure events are registered correctly
wait(15, MSEC)
while True:
check_blue.broadcast_and_wait()
check_red.broadcast_and_wait()
check_green.broadcast_and_wait()
wait(0.1,SECONDS)
wait(5, MSEC)