컨트롤러와 루프 - C++
컨트롤러와 루프
경쟁에서 각 팀은 컨트롤러를 이용해 무선으로 로봇을 조작해야 합니다. 컨트롤러는 사용자의 입력에 따라 로봇을 업데이트하도록 프로그래밍됩니다. 이 프로젝트에서는 루프를 사용하여 로봇이 업데이트된 입력 정보를 반복적으로 확인합니다. 루프를 사용하면 프로젝트에서 어떤 버튼이 눌렸는지, 조이스틱이 얼마나 눌렸는지 빠르게 확인할 수 있습니다. 이 정보가 확인되면 로봇에 빠르게 전달되어 로봇이 컨트롤러의 지시에 신속하게 대응할 수 있습니다.
다음은 VEXcode V5의 Tank Drive 예제 프로젝트입니다. 이 프로젝트의forever루프는 모터의 속도를 설정하기 위해 축 2와 3의 위치를 영원히 확인합니다.
// V5 라이브러리 포함
#include "vex.h"
// VEX 라이브러리를 더 쉽게 사용할 수 있도록 함
using namespace vex;
int main() {
// 로봇 구성 초기화. 제거하지 마세요!
vexcodeInit();
// 프로젝트 코드 시작.
// 모터를 컨트롤러 축 위치
설정하는 메인 컨트롤러 루프 while (true) {
LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
RightMotor.setVelocity(Controller1.Axis2.position(), percent);
LeftMotor.spin(forward);
RightMotor.spin(forward);
wait(5, msec);
}
return 0;
}컨트롤러가 없는 자율 프로그래밍에도 루프는 중요합니다. 루프는 프로젝트 내에서 반복되는 명령을 단순화하고 구성하는 데 도움이 됩니다.
학습을 확장하세요
이 활동을 확장하려면 학생들에게 아케이드 컨트롤과 탱크 컨트롤의 차이점을 탐구해 보라고 하세요. 학생들은 VEXcode V5에서 찾을 수 있는 예제 프로젝트를 따라 할 수 있습니다.

예시 프로젝트는 4개입니다: Left Arcade, Right Arcade, Split Arcade, Tank Drive.
프로그램 내의 루프가 어떻게 작동하는지, 그리고 각 제어 유형의 장단점을 논의해 보세요.
이 활동을 수학과 연관시키려면 위의 좌우 아케이드(조이스틱 1개)와 분할 아케이드/탱크 드라이브(조이스틱 2개) 프로젝트를 사용하여 프로젝트 내에서 X축과 Y축의 역할에 대해 논의해 보세요.