Skip to main content
교사 포털

그루브 머신 챌린지 - C++

팔을 위로 올리고 발톱을 펼친 VEX V5 클로봇.
팔을 위로 올리고 발톱을 여는 VEX V5 클로봇.

그루브 머신 챌린지

이 챌린지에서는 팀으로 나뉘어 루프에 대한 지식을 활용하여 로봇이 댄스 루틴을 수행하도록 프로그래밍합니다. 선생님은 댄스를 개발하고 테스트하는 데 걸리는 시간 제한과 댄스의 길이에 대한 시간 제한을 정합니다. 대결하는 댄스팀에 속하지 않은 모든 사람이 댄스를 평가하고 가장 뛰어나다고 생각하는 팀을 투표로 선정합니다.

 

규칙:

  • 각 클로봇은 1x1미터 영역 내에서 한 번에 하나씩 춤을 춥니다.
  • 프로젝트 실행을 멈추기 위해 Brain 화면의 정지 버튼을 누를 때까지 춤은 계속됩니다.
  • 팔을 올리고 내려야 합니다.
  • 발톱은 열리고 닫혀야 합니다.
  • 클로봇은 좌우로 돌아야 합니다.
  • 클로봇은 전진과 후진으로 주행해야 합니다.
  • 클로봇이 무언가와 충돌하거나 넘어지면 프로젝트를 즉시 중단해야 합니다. 그건 지는 춤이에요.

교사 도구 상자 아이콘 교사 도구 상자

이 대회의 심사는 여러 가지 방법으로 이루어질 수 있습니다. 참여도를 높이는 한 가지 방법은 학생들이 댄스 대결을 비디오로 녹화하고 다른 학급 학생들이 우승자를 투표로 선정하는 것입니다. 너무 야심적이라면 이 도전을 시작하기 전에 공정한 심사위원단을 임명하거나 다른 학생, 교사 또는 직원을 참여시키는 것을 고려하세요.
아래의 솔루션은 세 가지 예시 댄스 동작을 모두 연결한 것일 뿐입니다.

// V5 라이브러리 포함
#include "vex.h"

// VEX 라이브러리를 더 쉽게 사용할 수 있도록 함
using namespace vex;

int main() {
  // 로봇 구성 초기화. 제거하지 마세요!
  vexcodeInit();
  
  while (true) {
    ArmMotor.spinFor(전진, 300도);
    ArmMotor.setStopping(브레이크);

    repeat(3) {
      Drivetrain.turnFor(우회전, 90도);

      repeat(2) {
        ClawMotor.spinFor(전진, 90도);
        ClawMotor.spinFor(후진, 90도);
      }

      Drivetrain.turnFor(좌회전, 90도);

      repeat(2) {
        ClawMotor.spinFor(전진, 90도);
        ClawMotor.spinFor(후진, 90도);
      }
    }

    repeat(2) {
      ArmMotor.spinFor(전진, 300도);
      ArmMotor.setStopping(브레이크);
      Drivetrain.turnFor(오른쪽, 90도);

      repeat(9) {
        Drivetrain.turnFor(왼쪽, 10도);
        wait(.5초);
      }

      ArmMotor.spinFor(후진, 300도);
    }

    ArmMotor.setVelocity(80, 퍼센트);
    Drivetrain.setTurnVelocity(65, 퍼센트);

    repeat(2) {
      ArmMotor.spinFor(전진, 900도);

      repeat(3) {
        Drivetrain.turnFor(왼쪽, 90도);
        Drivetrain.turnFor(오른쪽, 90도);
      }

      ArmMotor.spinFor(후진, 900도);
    }
  }
}