การควบคุมอาเขตแยก - VEX C++

รับมากขึ้นด้วย VEXcode
เราขอแนะนำให้คุณเปลี่ยนไปใช้ซอฟต์แวร์ใหม่ของเรา VEXcode มีทั้งตัวเลือกแบบบล็อกและแบบข้อความ ซึ่งทำงานบน Chromebook, iPads, แท็บเล็ต Android, Windows และ Mac ไปที่ code.vex.com สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการดาวน์โหลด VEXcode
VEX Coding studio ถูกยกเลิกและไม่สามารถดาวน์โหลดได้อีกต่อไป ดาวน์โหลดแล้ว? โปรแกรมจะยังคงทำงานต่อไป แต่จะไม่ได้รับการสนับสนุนอีกต่อไป
ผู้ใช้ที่เปลี่ยนไปใช้ VEXcode สามารถย้ายโปรเจ็กต์ C++/C++ Pro ไปยัง VEXcode Pro V5 ได้โดยทำตาม บทความนี้

โปรแกรมตัวอย่างนี้แสดงวิธีตั้งโปรแกรมหุ่นยนต์ของคุณให้ใช้ค่าการควบคุมระยะไกลเพื่อบังคับหุ่นยนต์ของคุณ

SplitArcadeDrive.vex

robot-config.h

ใช้เนมสเปซ vex;
vex::brain สมอง;
vex::motor LeftMotor(vex::PORT1, vex::gearSetting::ratio18_1, false);
vex::motor RightMotor (vex::PORT10, vex::gearSetting::ratio18_1 จริง);
vex::controller Controller1 = vex::controller();
main.cpp
#include "robot-config.h"  
int main() {  
            ในขณะที่ (จริง) {
                   LeftMotor.spin(directionType::fwd, (Controller1.Axis3.value() + Controller1.Axis1.value())/2, velocityUnits::pct); //(แกน3+แกน4)/2;
	           RightMotor.spin(directionType::fwd, (Controller1.Axis3.value() - Controller1.Axis1.value())/2, velocityUnits::pct);// (แกน3-แกน4)/2;

	           งาน::sleep(20);
     }  
}
มันทำงานอย่างไร

ขั้นแรก  มีการประกาศฟังก์ชัน  หลัก และ  ซ้ำในขณะที่ loop ดึงค่าการควบคุมระยะไกลในระหว่างการทำซ้ำทุกครั้ง วนรอบนี้ทำให้โปรแกรมทำงานตลอดไป

ถัดไป leftMotor และ rightMotor ถูกตั้งค่า  เป็น  หมุน  ไปข้างหน้าโดยใช้ข้อมูลจาก  จอยสติ๊ก  ค่าแกน เพื่อคำนวณความเร็ว

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

Axis3 สอดคล้องกับค่าพิกัด y ของจอยสติ๊กด้านซ้าย ดังนั้นไม่ว่าคุณจะกดจอยสติ๊กด้านซ้ายขึ้นไปถึง +100 หรือลงไปจนสุดที่ -100 มอเตอร์ทั้งสองจะหมุนไปในทิศทางเดียวกัน

Axis1 สอดคล้องกับค่าพิกัด x ของจอยสติ๊กที่ถูกต้อง ดังนั้นจึงทำงานแตกต่างกัน หากคุณกดจอยสติกขวาไปทางขวาจนสุดที่ +100 มอเตอร์ด้านซ้ายควรมีความเร็วเป็นบวก และมอเตอร์ด้านขวาควรมีความเร็วเป็นลบ เพื่อให้หุ่นยนต์หันไปทางขวา หากคุณกดจอยสติกขวาไปทางซ้ายจนสุดที่ -100 มอเตอร์ด้านซ้ายควรมีความเร็วเป็นลบ และมอเตอร์ด้านขวาควรมีความเร็วเป็นบวก เพื่อให้หุ่นยนต์หันไปทางซ้าย

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

For more information, help, and tips, check out the many resources at VEX Professional Development Plus