The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
샘플: 로봇이 직선 거리를 이동하는 샘플 프로그램
다음 기능을 사용하면 로봇이totalEnc
인코더에 대해 전진할 수 있습니다. V5 Clawbot 구성을 사용합니다.
이spinToPosition
함수는 이동이 완료될 때까지 반환되지 않습니다. 이를 "동기화" 작업이라고 하며 마지막 매개변수true
에 의해 결정됩니다.
사용자 정의 함수를 사용하지 않고:
int main() { vexcodeInit(); 왼쪽모터.resetPosition(); LeftMotor.setVelocity(100.0, 퍼센트); LeftMotor.spinToPosition(500.0, deg, true); Brain.Screen.printAt(5,30, "초 회전 각도" ); Brain.Screen.printAt(5,60, "%.2f: %8.2f %8.2f", Brain.Timer.value(), LeftMotor.position(rev), LeftMotor.position(deg)); 대기(1000, 밀리초); 왼쪽모터.resetPosition(); LeftMotor.setVelocity(-100.0, 퍼센트); LeftMotor.spinToPosition(-1000.0, c, true); Brain.Screen.printAt(5,100, "초 회전 각도" ); Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f", Brain.Timer.value(), LeftMotor.position(rev), LeftMotor.position(deg)); 대기(1000, 밀리초);
}
샘플은 다음과 같은 결과를 제공할 수 있습니다.
초 원시 회전 각도 2.06 5445 3.12 1089
테스트는 소수점 이하 자릿수에서 매우 작은 차이 내에서 달라질 수 있습니다.
사용자 정의 함수의 경우:
다음 샘플은 일련의 작업을 재사용 가능한 단일 "함수" 호출로 캡처하는 방법을 보여줍니다.
void reportMotionValues() { Brain.Screen.printAt(5, 60, "%.2f: %8.2f %8.2f", Brain.Timer.value(), LeftMotor.position(rev), LeftMotor.position(deg)); } int main() { vexcodeInit(); 왼쪽모터.resetPosition(); LeftMotor.setVelocity(50.0, 퍼센트); LeftMotor.spinToPosition(500.0, deg, true); 보고MotionValues(); 왼쪽모터.resetPosition(); LeftMotor.setVelocity(-50.0, 퍼센트); LeftMotor.spinToPosition(-500.0, deg, true); 보고모션값(); }
다음은 호출자 함수 main()의 논리 흐름 순서를 보여줍니다.