VEXcode Pro V5에서 매개변수 없이 VEX 함수 작성하기

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()의 논리 흐름 순서를 보여줍니다.

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

Last Updated: