3과: '31'번지로 운전하세요
이 수업에서 VR 로봇은 번 그리드 맵 놀이터에서 숫자 '31'까지 주행한 후 숫자 '1'로 돌아옵니다!

VR 로봇이 숫자 그리드 맵 놀이터의 숫자 '31'로 이동하기 위해 Y축을 따라 이동합니다.

VR 로봇은 숫자 그리드 맵 놀이터에 있는 숫자 '31'의 위치로 이동합니다. 하지만 VR 로봇이 해당 번호로 이동하려면 먼저 VR 로봇에게 해당 번호의 위치가 어디인지 알려야 합니다. 숫자 '31'의 좌표는 (-900, -300)입니다.

-
[드라이브] 대기 중이 아닌 블록을 작업 공간으로 끌어다 놓습니다.

-
[운전] 블록 아래에 [대기] 블록을 붙입니다.

-
<Greater than> Boolean 리포터 블록을 [대기] 블록으로 끌어다 놓습니다.

-
VR 로봇이 놀이터 아래쪽에서 올라오기 때문에 <Less than> 블록 대신 <Greater than> 블록이 사용됩니다. VR 로봇의 Y 값은 -900밀리미터(mm)에서 시작합니다. VR 로봇이 앞으로 나아갈수록 Y 값이 증가합니다.

-
(로봇의 위치) 블록을 <Greater than> 블록으로 끌어다 놓습니다.

-
(로봇 위치) 블록의 매개변수를 "Y"로 설정하고, <Greater than> 블록의 매개변수를 -300으로 설정합니다.

-
[운전 중지] 블록을 끌어서 프로젝트에 추가합니다.

- 아직 열려 있지 않으면 Number Grid Map Playground 을 실행하고 프로젝트를 실행합니다.
-
번 그리드 맵 놀이터에서 VR 로봇이 번호 '31'로 주행하는 모습을 지켜보세요.

- 이 프로젝트에서 VR 로봇은 번 숫자 그리드 맵 놀이터의 숫자 '31'까지 주행합니다. VR 로봇이 숫자 '31'로 이동하면서 Y 값이 증가하므로 이 프로젝트에서는 <Greater than> 블록을 사용합니다.
- VR 로봇은 해당 숫자가 있는 좌표의 Y 값보다 Y 값이 이상 이하가 되면 멈춥니다. 숫자 '31'의 Y 값은 -300이므로, Y 값이 -300보다 커지면 VR 로봇이 운전을 멈춥니다.

스위치 블록 사용
이 수업에서는 VEX코드 [대기까지] 블록을 부울 조건과 함께 사용하여 로봇이 Y축에서 -300보다 큰 위치에 도달할 때까지 대기한 후 다음 동작으로 넘어가도록 명령하는 방법을 배웠습니다.
아래 이미지는 동일한 동작에 대한 Python 명령을 담고 있는 Switch 블록 옆에 있는 VEXcode 블록을 보여줍니다.
Switch 블록 내에서while not location.position(Y, MM) > -300:는 로봇의 X축을 따라 위치가 -300보다 큰지 확인하는 첫 번째 Python 명령입니다.
두 번째로 들여쓰기된 명령인wait (5, MSEC),조건 루프의 실행을 5밀리초 동안 일시 중지합니다.
VEXcode VR에서는 wait 명령이 항상 조건 루프에 추가됩니다. wait 명령의 목적은 VEXcode VR 플랫폼의 웹 기반 특성으로 인해 VEXcode VR이 의도한 대로 프로젝트를 제대로 실행할 수 있도록 하는 것입니다. 조건 루프를 사용할 때는 wait 명령을 절대로 삭제해서는 안 됩니다. 삭제하면 프로젝트가 의도한 대로 실행되지 않을 수 있습니다.
이 예에서 프로젝트는 로봇의 위치가 5MSEC마다 Y 값 -300보다 큰지 여부를 확인합니다. 이 코드 줄은 첫 번째 코드 줄 바로 아래에 들여쓰기되어 있는데, 그 이유는 이 명령이 조건(Y 좌표 값이 -300보다 큰 경우)이 충족될 때까지 반복되는 동작이기 때문입니다.
이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.