ตัวควบคุมและลูป
ในการแข่งขันทีมจะต้องจัดการหุ่นยนต์ของพวกเขาแบบไร้สายด้วยตัวควบคุม ตัวควบคุมถูกตั้งโปรแกรมให้อัปเดตหุ่นยนต์ตามอินพุตจากผู้ใช้ ลูปถูกใช้ในโครงการเพื่อให้หุ่นยนต์ตรวจสอบข้อมูลอินพุตที่อัปเดตซ้ำๆ ลูปช่วยให้โครงการสามารถตรวจสอบได้อย่างรวดเร็วว่ามีการกดปุ่มใดหรือกดจอยสติ๊กไกลแค่ไหน เมื่อตรวจสอบแล้วข้อมูลนี้จะถูกส่งต่อไปยังหุ่นยนต์อย่างรวดเร็วเพื่อให้ตอบสนองต่อคำสั่งของตัวควบคุมได้อย่างรวดเร็ว
ต่อไปนี้เป็นโครงการตัวอย่าง Tank Drive จาก VEXcode V5 ห่วง ตลอดไปในโครงการนี้จะตรวจสอบตำแหน่งของแกน 2 และ 3 ตลอดไปเพื่อตั้งค่าความเร็วของมอเตอร์
// รวมไลบรารี V5
# รวมถึง "vex.h"
// ช่วยให้ใช้ไลบรารี vex ได้ง่ายขึ้น
โดยใช้ namespace vex;
int main () {
// การเริ่มต้นการกำหนดค่าหุ่นยนต์ ห้ามนำออก!
vexcodeInit ();
// เริ่มรหัสโครงการ
// ห่วงตัวควบคุมหลักเพื่อตั้งค่ามอเตอร์ให้กับตำแหน่งแกนควบคุมใน
ขณะที่ (จริง) {LeftMotor.setVelocity (
Controller1.Axis3.position (), percent); RightMotor.setVelocity (Controller1.Axis2.position (),
percent); LeftMotor.spin (
forward); RightMotor.spin (forward);
wait (5, msec
);}
return 0
;}
ลูปมีความสำคัญแม้สำหรับการเขียนโปรแกรมอัตโนมัติโดยไม่มีตัวควบคุม ลูปช่วยลดความซับซ้อนและจัดระเบียบคำสั่งซ้ำๆภายในโครงการ
ขยายการเรียนรู้ของท่าน
หากต้องการขยายกิจกรรมนี้ขอให้นักเรียนสำรวจความแตกต่างระหว่างการควบคุมอาร์เคดและการควบคุมรถถัง นักเรียนสามารถทำตามโครงการตัวอย่างที่พบใน VEXcode V5
มีสี่โครงการตัวอย่าง: อาร์เคดซ้ายอาร์เคดขวาอาร์เคดแยกและไดรฟ์รถถัง
อภิปรายว่าลูปภายในโปรแกรมทำงานอย่างไรรวมถึงข้อดีและข้อเสียของการควบคุมแต่ละประเภท
หากต้องการเชื่อมโยงกิจกรรมนี้กับคณิตศาสตร์ให้ใช้โครงการอาร์เคดซ้าย/ขวา (หนึ่งจอยสติ๊ก) และโครงการอาร์เคด/รถถังแยก (ทั้งสองจอยสติ๊ก) ด้านบนเพื่อหารือเกี่ยวกับบทบาทของแกน X และ Y ภายในโครงการ