โปรแกรมตัวอย่างนี้แสดงวิธีตั้งโปรแกรมหุ่นยนต์ของคุณให้ใช้ค่าการควบคุมระยะไกลเพื่อบังคับหุ่นยนต์ของคุณ
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 มิลลิวินาทีระหว่างแต่ละลูปหรือการวนซ้ำจะกำหนดความเร็วในการตรวจสอบพิกัดของจอยสติ๊ก