Skip to main content

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

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

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

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

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

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

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

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

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

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

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

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

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

VEXcode V5 พร้อมส่วน Drivetrain ของคำสั่งที่พิมพ์ไว้ทางซ้าย และทางขวาจะแสดงรายการตัวเลือกการกรอกอัตโนมัติแบบเลื่อนได้สำหรับคำสั่งนั้น

บทความการเติมข้อความอัตโนมัติ บทความสำหรับ C++ ครอบคลุมถึงวิธีใช้คุณลักษณะการเติมข้อความอัตโนมัติ

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

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

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

1

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

1

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

1

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

1

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

1

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

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

คุณสามารถใช้ข้อมูล Help (C++) ใน VEXcode V5 เพื่อเรียนรู้เกี่ยวกับคำแนะนำได้

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

 

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

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

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

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

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

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

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

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

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

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

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

กล่องโต้ตอบชื่อโครงการในแถบเครื่องมือ VEXcode V5 จะอ่านว่า กำลังตรวจจับวัตถุ และแสดงให้เห็นว่าช่อง 1 ถูกเลือกทางด้านซ้าย และอ่านว่า บันทึกแล้ว ทางด้านขวา

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

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

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

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

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

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

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

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

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

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

#include "vex.h"

	using namespace vex;
	
	event checkBlue = event();
	event checkRed = event();
	event checkGreen = event();
	
	// Will check to see if there is a blue object in the view of the Vision
	// Sensor and display the results on line 1 of the V5 Brain's screen.
	void has BlueCallback() {
	
	  Brain.Screen.clearLine(1);
	  Brain.Screen.setCursor(1, 1);
	  Vision5.takeSnapshot(Vision5__BLUEBOX);
	
	  if (Vision5.objectCount > 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 the view of the Vision
	// Sensor and display the results on line 3 of the V5 Brain's screen.
	void has RedCallback() {
	
	  Brain.Screen.clearLine(3);
	  Brain.Screen.setCursor(3, 1);
	  Vision5.takeSnapshot(Vision5__REDBOX);
	
	  if (Vision5.objectCount > 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 the view of the Vision
	// Sensor and display the results on line 5 of the V5 Brain's screen.
	void has GreenCallback() {
	
	  Brain.Screen.clearLine(5);
	  Brain.Screen.setCursor(5, 1);
	  Vision5.takeSnapshot(Vision5__GREENBOX);
	
	  if (Vision5.objectCount > 0) {
		Brain.Screen.print("Green Object Found");
	
	  } else {
		Brain.Screen.print("No Green Object");
	  }
	}
	
	// Begin project code
	int main() {
	  // Initializing Robot Configuration. DO NOT REMOVE!
	  vexcodeInit();
	
	  // Register event handlers
	  checkBlue (hasBlueCallback);
	  checkRed (hasRedCallback);
	  checkGreen (hasGreenCallback);
	
	  // Small delay to ensure 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.setFont(mono40);
	
	  // Constantly run to check for new sensor data
	  while (true) {
		checkBlue.broadcastAndWait();
		checkRed.broadcastAndWait();
		checkGreen.broadcastAndWait();
		wait(0.1, seconds);
	  }
	}
  • ดาวน์โหลดและรันโครงการ  วางวัตถุที่มีสีต่างๆ ไว้ข้างหน้าเซนเซอร์วิชั่นและสังเกตพฤติกรรมของหุ่นยนต์ บันทึกไว้ในสมุดบันทึกวิศวกรรมของคุณว่าคำทำนายของคุณแตกต่างหรือถูกต้องอย่างไรเมื่อเปรียบเทียบกับสิ่งที่คุณสังเกตได้จริงจากโครงการ

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

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

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

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

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

  2. โครงสร้าง if then else ทำอะไร?

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

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

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

  2. โครงสร้าง if then else จะรันคำสั่งภายในส่วนแรกหรือส่วนที่สองของ if then 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 ที่ได้รับการตั้งค่าเรียบร้อยแล้ว

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

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

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