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();
Сол жақ қозғалтқыш.қайта орнатуПозициясы ();
Сол жақ қозғалтқыш.орнатуВелоции(100.0, пайыз);
Сол жақ қозғалтқыш.айналдыруПозициясы(500.0, градус, шын);
Brain.Screen.printAt(5,30, "сек айналым градус");
Brain.Screen.printAt(5,60,
%.2f
%8.2f
градус));
wait(1000, мсек);
Сол жақ қозғалтқыш.қайта %8.2f();
Сол жақ қозғалтқыш.орнатуВелоции(-100.0, пайыз);
Сол жақ қозғалтқыш.айналдыруПозициясы(-1000.0, c, шын);
Brain.Screen.printAt(5,100, "сек айн. градус");
Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f",
Brain.Timer.value(),
LeftMotor.position(айн.),
LeftMotor.position(градус));
wait(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();
LeftMotor.resetPosition();
LeftMotor.setVelocity(50.0, пайыз);
LeftMotor.spinToPosition(500.0, градус, шын);
reportMotionValues();
LeftMotor.resetPosition();
LeftMotor.setVelocity(-50.0, пайыз);
LeftMotor.spinToPosition(-500.0, градус, шын);
reportMotionValues();
}
Төмендегі бейнеде main() шақырушы функциясынан логика тізбегінің қалай өтетіні көрсетілген: