Skip to main content

4과: 빨간색과 녹색 디스크 이동

  • 다음으로, VR 로봇은 다음 색깔의 목표를 향해 전진해야 합니다. VR 로봇은 다음 색깔의 목표지점의 중앙까지 이동하기 위해서는 4개의 격자칸, 즉 800밀리미터(mm)만큼 앞으로 이동해야 합니다.

    디스크 무버 놀이터의 위에서 내려다본 모습. VR 로봇이 첫 번째 파란색 디스크를 떨어뜨린 후 파란색 골 가장자리에 위치하며 오른쪽에 있는 빨간색 골을 바라보고 있습니다. 점선 화살표는 VR 로봇의 앞쪽에서 빨간색 목표를 가리키며, 다음에 의도하는 움직임을 나타냅니다.
  • 코드에 [Drive for] 블록을 추가하고 매개변수를 800밀리미터(mm)로 설정합니다.

    이전 페이지의 동일한 VEXcode VR 프로젝트로, 스택 끝에 주석과 Drive for 블록이 추가되었습니다. 두 개의 추가 블록에는 다음 골까지 주행하라는 내용이 적혀 있고, 그 후 800mm 동안 전진하라는 내용이 적혀 있습니다.
  • 이제 VR 로봇은 색깔이 있는 디스크를 향해 돌아서야 합니다.

    디스크 무버 놀이터를 위에서 내려다본 모습. VR 로봇이 빨간색 골 구역에 위치해 있습니다. VR 로봇의 앞쪽에서 빨간색 디스크를 향해 곡선 화살표가 가리키고 있는데, 이는 빨간색 디스크를 마주보기 위해 필요한 회전을 나타냅니다.
  • 코드에 두 번째 [방향 전환] 블록을 추가하고 매개변수를 0도로 설정합니다. 이렇게 하면 VR 로봇이 색깔 있는 디스크를 향하게 됩니다.

    동일한 VEXcode VR 프로젝트에, 스택의 끝에 주석 블록과 제목으로 이동 블록을 추가했습니다. 이 두 블록은 디스크로 전환한 다음 방위 0도로 전환합니다.
  • Disk Mover Playground 을 열고 프로젝트를 실행합니다.
  • VR 로봇은 첫 번째 파란색 디스크를 들어올려 파란색 골로 옮긴 다음 빨간색 골 위로 이동합니다. VR 로봇도 빨간색 디스크를 향해 돌아설 것입니다.

    VR이 빨간색 골의 앞쪽 가장자리에 위치하고 빨간색 디스크를 마주보도록 배치된 디스크 무버 놀이터의 위에서 내려다본 모습입니다.
  • 이제 VR 로봇이 빨간색 디스크를 마주보고 있으므로, VR 로봇은 파란색 디스크를 모으는 데 사용했던 것과 동일한 동작을 반복해서 빨간색 디스크를 집어 올려 옮겨야 합니다. 디스크를 줍기 위해 앞으로 운전하고, 돌아서서 같은 색깔의 골대로 돌아와 디스크를 떨어뜨리는 행동입니다.

    VR이 빨간색 골의 앞쪽 가장자리에 위치하고 빨간색 디스크를 마주보도록 배치된 디스크 무버 놀이터의 위에서 내려다본 모습입니다. 점선 화살표는 첫 번째 빨간 디스크를 집어 들고 빨간 골대까지 운반한 다음 돌아서서 녹색 골대를 향해 운전하는 데 필요한 동작을 나타냅니다.
  • 첫 번째 빨간색 디스크가 이동되면 VR 로봇은 녹색 목표 지점으로 이동하여 파란색과 빨간색 디스크를 이동하는 데 사용된 것과 동일한 동작을 수행하여 첫 번째 녹색 디스크를 이동해야 합니다.

    시작 구성의 Disk Mover 놀이터를 위에서 내려다본 모습이며, 로봇은 파란색 목표 시작 위치에 있습니다. 점선 화살표는 로봇이 각 디스크의 첫 번째 디스크를 집어 해당 목표에 전달하기 위해 반복해서 수행해야 하는 동작을 보여줍니다.
  • 동작을 여러번 반복하려면 [반복] 블록을 사용하면 됩니다.

    도구 상자의 VEXcode VR Repeat 블록으로, 매개변수는 기본값인 10으로 설정되어 있습니다.
  • 코드에 [반복] 블록을 추가하고 매개변수를 '3'으로 설정합니다.

    기존 VEXcode VR 프로젝트에 반복 블록을 추가하는 방법에 대한 개요입니다. 첫 번째 파란색 디스크를 집어 파란색 목표 지점으로 옮기고, 다음 목표 지점으로 이동한 후 디스크를 마주보도록 회전하는 데 필요한 모든 블록이 반복 블록의 C 안에 들어가도록 합니다. 반복 블록 매개변수는 3으로 설정됩니다.
  • Disk Mover Playground 을 열고 프로젝트를 실행합니다.
  • 이 프로젝트를 실행하면, VR 로봇이 각 색상의 디스크를 하나씩 집어서 해당 색상의 목표에 떨어뜨립니다.

    프로젝트가 실행된 후 디스크와 로봇의 최종 상태를 보여주는 Disk Mover Playground의 상단에서 본 모습입니다. 각 색상 디스크의 첫 번째 디스크는 일치하는 색상 골에 있고, VR 로봇은 녹색 골 가장자리에 있는 놀이터 벽에 있습니다.
  • VR 로봇이 계속해서 벽을 향해 돌진하는 모습이 눈에 띕니다. 이 프로젝트에서는 VR 로봇에게 오른쪽으로 방향을 돌려 다음 목표를 향해 세 번 주행하라고 지시했기 때문에 이러한 행동이 예상됩니다. 첫 번째는 파란색에서 빨간색으로 운전하는 것입니다. 두 번째는 빨간색에서 초록색으로 가는 것이고, 세 번째는 초록색에서 벽으로 가는 것입니다. 왜냐하면 다른 색깔의 골이 없기 때문입니다. VR 로봇이 벽에 부딪히면 프로젝트를 중지하세요. VR 로봇이 녹색 디스크를 집어 올려 이동한 후 멈추도록 프로젝트를 개선할 수 있지만, 이렇게 하면 프로젝트 전반적인 복잡성이 증가할 것입니다.

    프로젝트가 끝나고 녹색 목표 구역 안에 VR 로봇이 있는 놀이터 창과, 로봇이 벽에 부딪히기 전에 프로젝트를 중지하라는 것을 나타내는 빨간색 상자로 강조 표시된 중지 버튼.

귀하의 정보를 위해

한 루프를 다른 루프 안에 넣는 것을 중첩이라고 합니다. 루프를 "중첩"하면 바깥쪽 루프가 안쪽 루프의 실행 횟수를 제어합니다. 중첩될 수 있는 루프에는 여러 유형이 있습니다. 예를 들어, 위의 이전 코드에서 [Repeat until] 블록은 [Repeat] 블록 내부에 중첩되어 있습니다.

이전의 VEXcode VR 프로젝트와 동일하며, Repeat until C 블록이 Repeat 블록 내에 중첩되어 로봇이 3개의 디스크를 성공적으로 옮길 수 있는 방법을 보여줍니다.

[반복] 블록은 다른 [반복] 블록 안에 중첩될 수도 있습니다. 다음 예에서 바깥쪽 [반복] 블록이 '3'으로 설정되어 있으므로 VR 로봇은 놀이터에 세 개의 사각형을 그립니다.

왼쪽의 프로젝트는 Repeat 블록을 3으로 설정하여 VR 로봇이 블록 내에 사각형을 그리도록 코딩하는 데 필요한 Repeat 블록을 보여 주며, 중첩 루프의 개념을 설명합니다. 오른쪽의 놀이터 창에는 프로젝트에서 로봇이 그린 세 개의 사각형이 표시됩니다.

중첩 루프는 VR 로봇이 동일한 동작을 두 번 이상 반복하는 프로젝트에 유용합니다. 중첩 루프는 프로젝트를 구성하고 압축합니다. 이는 코드의 맥락과 목적을 더 잘 이해하는 데 도움이 될 뿐만 아니라 오류를 더 쉽게 찾을 수 있도록 해줍니다.

이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.