Skip to main content

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

กิจกรรมนี้จะแนะนำให้นักเรียนรู้จักการใช้คำสั่ง while and if then เพื่อให้หุ่นยนต์ขับไปข้างหน้า เว้นแต่จะกดหน้าจอ

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

  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง ถ้าแล้ว และ ถ้าแล้ว มิฉะนั้น หรือคำสั่งอื่นๆ ที่ใช้ในกิจกรรมนี้ โปรดไปที่ข้อมูลวิธีใช้ใน VEXcode V5 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือช่วยเหลือในตัวนี้ โปรดดูบทความเกี่ยวกับความช่วยเหลือใน C++ เหล่านี้

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือสำหรับครู

หากต้องการคำแนะนำเกี่ยวกับกลยุทธ์การสอนในส่วนนี้ โปรดอ่านคอลัมน์ "การจัดส่ง" ของ "คู่มือการกำหนดจังหวะ สิ่งที่ต้องทำหรือไม่ต้องทำ" (Google Doc / .docx / .pdf)

Clawbot พร้อมที่จะตัดสินใจแล้ว!

การสำรวจนี้จะให้เครื่องมือแก่คุณเพื่อสามารถเริ่มต้นสร้างโปรเจ็กต์เจ๋งๆ ที่ใช้คำสั่ง if then else 

  • คำสั่ง VEXcode V5 C++ ที่จะใช้ในการสำรวจนี้: 
    • ระบบส่งกำลังขับเคลื่อน(เดินหน้า);
    • การกดหน้าจอสมอง()
    • ระบบส่งกำลัง.หยุด();
    • ถ้า (เงื่อนไข){}
    • รอจนกว่า();
    • ขณะที่ (เงื่อนไข){}  
    • รอ (1, วินาที);

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

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

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

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

VEX V5 Classroom Starter Kit (พร้อมเฟิร์มแวร์ล่าสุด)

1

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

1

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

1

เทมเพลต Clawbot (ระบบส่งกำลัง 2 มอเตอร์ ไม่มีไจโร)

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

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

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

ขั้นตอนที่ 1: เริ่มต้นด้วยการทำความเข้าใจเกี่ยวกับคำสั่งเงื่อนไข 

ก่อนคุณจะเริ่มเขียนโปรแกรมด้วยเงื่อนไข โปรดอ่านบทความในไลบรารี VEX ที่อธิบายคำสั่ง If Then Else  สามารถอ่านบทความ ที่นี่

ภาพหน้าจอจากไลบรารี VEX แสดงบทความชื่อ การใช้คำสั่ง if-else ใน VEXcode V5หากต้องการดูรายการตัวดำเนินการที่จะใช้ในคำสั่ง If Then Else โปรดอ่านบทความในไลบรารี VEX ที่อธิบายเกี่ยวกับค่าบูลีน บทความนี้สามารถพบได้ ที่นี่ภาพหน้าจอจากไลบรารี VEX แสดงบทความชื่อ การใช้ Booleans ใน VEXcode V5

ขั้นตอนที่ 2: มาเริ่มการเขียนโปรแกรมด้วยคำสั่งเงื่อนไขกัน

  • เปิดโครงการตัวอย่างเทมเพลต Clawbot (Drivetrain 2 มอเตอร์, ไม่มีไจโร)

    ตัวอย่างการเลือกโครงการใน VEXcode V5 พร้อมกล่องสีแดงรอบ ๆ ตัวกรองเทมเพลตที่ด้านบน และโครงการมอเตอร์ระบบส่งกำลัง Clawbot 2 ไม่มีไจโร ซึ่งระบุว่าจะเปิดเทมเพลตใด

     

  • สร้างโครงการด้านล่างนี้
// เริ่มรหัสโครงการ
	int main() {
	  // การเริ่มต้นการกำหนดค่าหุ่นยนต์ ห้ามถอดออก!
	  vexcodeInit();
	
	  ขณะ (เป็นจริง) {
		Drivetrain.drive(ไปข้างหน้า);
		ถ้า (Brain.Screen.pressing()) {
		  Drivetrain.stop();
		  waitUntil(!Brain.Screen.pressing());
		}    
	  }  
	}  

ดำเนินการดังต่อไปนี้ในสมุดบันทึกวิศวกรรมของคุณ:

  • อธิบายว่าโครงการให้ Clawbot ทำสิ่งใด คุณจะต้องอธิบายมากกว่าข้อเท็จจริงที่ว่ามันสร้างปุ่มหยุด อธิบายว่าคำสั่งไหนที่ทำให้ Clawbot ทำอะไร
  • เขียนสรุปเป็นประโยคเดียวเพื่ออธิบายสิ่งที่โครงการทำ
  • ทดสอบเพื่อดูว่าการทำนายของคุณเกี่ยวกับสิ่งที่โครงการให้ Clawbot ทำนั้นถูกต้องหรือไม่

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

  • บันทึกและดาวน์โหลดโครงการเป็น CreatingAStopButton ไปที่สล็อต 1 บน Clawbot จากนั้นจึงเรียกใช้
  • หาก ความช่วยเหลือในการดาวน์โหลดโครงการ โปรดดูบทช่วยสอนใน VEXcode V5 ที่อธิบายวิธีการดาวน์โหลดและเรียกใช้โครงการ (C++)
  • ตรวจสอบคำอธิบายของโครงการของคุณและเพิ่มหมายเหตุเพื่อแก้ไขตามความจำเป็น

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือสำหรับครู - คำตอบ

โครงการนี้ให้หุ่นยนต์ขับไปข้างหน้าอย่างต่อเนื่องแต่จะหยุดหากกดหน้าจอ วิธีการนี้ทำได้โดยใช้คำสั่ง ตลอดไป เพื่อขับเคลื่อนและตรวจสอบอย่างต่อเนื่อง หากกดหน้าจอ (TRUE) Clawbot จะหยุดขับเคลื่อนโครงการสร้างปุ่มหยุดจะแสดงพร้อมคำสั่งที่มีป้ายกำกับวัตถุประสงค์ของคำสั่ง คำสั่ง if จะถูกวงกลมด้วยวงกลมสีแดง และมีข้อความว่า ตรวจสอบว่าเงื่อนไขเป็นจริงหรือไม่ - กดหน้าจอ คำสั่ง Drivetrain dot stop มีป้ายกำกับว่า รันบล็อกหากเป็นจริง คำสั่งรอจนกว่าจะมีการระบุชื่อจะควบคุมความเร็วในการประมวลผล

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

บรรทัดของ pseudocode อาจจะเรียบง่ายเหมือนกับ: ขับไปข้างหน้าจนกว่าจะกดหน้าจอ

สามารถเก็บรักษาสมุดบันทึกวิศวกรรมของนักศึกษาได้และให้คะแนน เป็นรายบุคคล (Google Doc / .docx / .pdf) หรือเป็นทีม  (Google Doc / .docx / .pdf) ลิงก์ก่อนหน้านี้มีหัวข้อที่แตกต่างกันสำหรับแต่ละแนวทาง เมื่อใดก็ตามที่มีการรวมเกณฑ์ในการวางแผนการศึกษา ถือเป็นแนวทางปฏิบัติที่ดีที่จะอธิบายเกณฑ์ หรืออย่างน้อยที่สุดแจกสำเนาให้กับนักเรียนก่อนที่กิจกรรมจะเริ่มต้น

ขั้นตอนที่ 3: ทำความเข้าใจคำสั่ง wait until() 

สังเกตว่าถ้ากดหน้าจอ Brain การไหลของโครงการจะดำเนินไปอย่างรวดเร็ว และโครงการจะดำเนินไปที่คำสั่งถัดไป ซึ่งก็คือคำสั่ง Drivetrain.stop() 

ดังนั้น โปรเจ็กต์นี้จึงต้องใช้คำสั่ง waitUntil() ที่บอกให้หุ่นยนต์หยุดนิ่งจนกว่าจะปล่อยหน้าจอ Brain มิฉะนั้น คำสั่ง ตลอดไป จะทำให้โครงการต้องเริ่มต้นใหม่อีกครั้ง

รอจนกระทั่ง(!Brain.Screen.pressing())

คำสั่ง waitUntil() จำเป็นเนื่องจากความเร็วของการไหลของโปรเจ็กต์ หากไม่มีอยู่ โปรเจ็กต์จะย้ายไปยังคำสั่งถัดไปก่อนที่หุ่นยนต์จะมีเวลาตอบสนอง

ขั้นตอนที่ 4: เปลี่ยนแปลงโครงการ

ขั้นตอนต่อไปของเราคือการเปลี่ยนคำสั่ง if then เป็นคำสั่ง if then else

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

  • เริ่มต้นโดยการบันทึก CreatingAStopButton เป็นโครงการใหม่ StopOrDrive
  • หากคุณต้องการความช่วยเหลือในการบันทึกโครงการ คลิก ที่นี่สำหรับ C++
  • จากนั้นสร้างโครงการ StopOrDrive ดังแสดงด้านล่างนี้
// เริ่มรหัสโครงการ
	int main() {
	  // การเริ่มต้นการกำหนดค่าหุ่นยนต์ ห้ามถอดออก!
	  vexcodeInit();
	
	  ขณะ (เป็นจริง) {
		Drivetrain.drive(ไปข้างหน้า);
		ถ้า (Brain.Screen.pressing()) {
		  Drivetrain.stop();
		  waitUntil(!Brain.Screen.pressing());
		} 
		อื่น ๆ {
		  Drivetrain.drive(ไปข้างหน้า);
		}   
	  }  
	}  
  • ดาวน์โหลด StopOrDrive ไปยัง Slot 2 บน Clawbot ของคุณ

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

  • หาก ความช่วยเหลือในการดาวน์โหลดโครงการ โปรดดูบทช่วยสอนใน VEXcode V5 ที่อธิบายวิธีการดาวน์โหลดและเรียกใช้โครงการ (C++)
  • ทดสอบ สร้างปุ่ม StopOrDrive (ช่อง 1) จากนั้นทดสอบ StopOrDrive (ช่อง 2) และเปรียบเทียบเพื่อดูว่ามีข้อแตกต่างใด ๆ ในพฤติกรรมของหุ่นยนต์หรือไม่ จดบันทึกความแตกต่างในสมุดบันทึกวิศวกรรมของคุณ

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือสำหรับครู - คำตอบ

ในส่วนของพฤติกรรมของหุ่นยนต์ ไม่ ควรมีความแตกต่างระหว่าง  โครงการ CreatingAStopButton และ StopOrDrive

หากนักเรียนต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับการทำความเข้าใจคำสั่ง If-Else โปรดคลิก ที่นี่

ทั้งสองโครงการนี้มีการทำงานของ Clawbot ในลักษณะเดียวกัน ความแตกต่างเพียงอย่างเดียวคือการใช้คำสั่ง if then else ในโครงการ StopOrDrive 

การใช้คำสั่ง if then else จะทำให้คุณสามารถเพิ่มปุ่มเพิ่มเติมลงในหน้าจอในกิจกรรมที่จะเกิดขึ้นได้

ไอคอนขยายการเรียนรู้ของคุณ ขยายการเรียนรู้ของคุณ

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

ตารางพิกเซลของหน้าจอ V5 Brain จะแสดง 12 แถวที่มีหมายเลขกำกับไว้ทางด้านซ้าย โดยแถวบนมีชื่อเรียกว่า แถวที่ 1 และแถวล่างมีชื่อเรียกว่า แถวที่ 12 ด้านบนมี 48 คอลัมน์ที่มีการกำกับหมายเลข โดยคอลัมน์ที่ 1 อยู่ทางด้านซ้ายสุด และคอลัมน์ที่ 48 อยู่ทางด้านขวาสุด ขนาดพิกเซลรวมมีความกว้าง 480 พิกเซลและมีความสูง 240 พิกเซล

นักเรียนควรวางแผน ทดสอบ และปรับปรุงการเปลี่ยนแปลงเหล่านี้ให้กับโครงการในขณะที่บันทึกไว้ในสมุดบันทึกวิศวกรรมของตน สำหรับโน้ตบุ๊กวิศวกรรมแต่ละตัวให้ คลิกลิงก์ใดลิงก์หนึ่งต่อไปนี้ ( Google Doc /.docx /.pdf) หรือคลิกลิงก์ใดลิงก์หนึ่งต่อไปนี้สำหรับโน้ตบุ๊กทีม ( Google Doc /.docx /.pdf)

นี่คือตัวอย่างวิธีแก้ปัญหา:

// เริ่มรหัสโครงการ
	event draw = event();
	
	void drawButton() {
	  Brain.Screen.setFillColor(red);
	  Brain.Screen.drawRectangle(0, 0, 480, 240);
	  wait(1, seconds);
	}
	
	int main() {
	  // การเริ่มต้นการกำหนดค่าหุ่นยนต์ ห้ามถอดออก!
	  vexcodeInit();
	
	  draw(drawButton);
	
	  while (true) {
		draw.broadcast();
		Drivetrain.drive(forward);
		if (Brain.Screen.pressing()) {
		  waitUntil(!Brain.Screen.pressing());
		} 
		else {
		  Drivetrain.drive(forward);
		}   
	  }  
	}  

ตามที่คุณเห็น ปุ่มดังกล่าวถูกวาดขึ้นเพื่อให้ครอบคลุมหน้าจอทั้งหมดโดยเริ่มจากจุดกำเนิด (0, 0) และเติมพิกเซลแนวนอน (แกน x) จำนวน 480 พิกเซล และพิกเซลแนวตั้ง (แกน y) จำนวน 240 พิกเซล