레슨 2: [기다릴 때까지] 블록 사용
이 수업에서는 범퍼 센서와 [대기 시간] 블록을 사용하여 프로젝트를 만듭니다. 미니 챌린지에서는 이러한 기술을 적용하여 벽 미로의 시작 부분부터 'A' 문자까지 탐색하게 됩니다.

학습 성과
- 대기하지 않는 블록의 경우 블록의 동작이 아직 완료되지 않았더라도 스택이 계속 실행된다는 것을 확인합니다.
- 대기 블록은 해당 블록의 동작이 완료될 때까지 스택을 일시 중지한다는 것을 식별합니다.
- 프로젝트 실행의 하이라이트가 대기 블록과 대기하지 않는 블록을 시각화한다는 것을 식별합니다.
- [Wait until] 블록이 부울 값을 허용하는 제어 블록인지 확인하세요.
- [대기까지] 블록은 부울 조건을 반복적으로 확인하고 조건이 TRUE를 보고할 때까지 다음 블록으로 이동하지 않는다는 점을 식별합니다.
- [대기까지] 블록이 대기하지 않는 블록(예: 드라이브)과 함께 사용되어 센서 상태를 확인하는지 확인합니다.
- [Wait until] 블록에서 <Pressing bumper> 블록이 TRUE 또는 FALSE 값을 보고하는지 확인합니다.
- [Drive for] 및 [Turn for] 블록이 대기 중이거나 대기하지 않는 특수 블록인지 확인하세요.
- 범퍼 센서가 눌릴 때까지 VR 로봇이 계속 앞으로 움직이는 프로젝트를 만드는 방법을 설명하세요.
프로젝트 이름 지정 및 저장
- VEXcode VR에서 새 프로젝트를 시작하고 프로젝트 이름을 Unit4Lesson2로 지정합니다.

[기다릴 때까지] 블록
[Wait until] 블록은 부울 조건을 허용하는 제어 블록입니다. [대기할 때까지] 블록은 부울 조건을 반복적으로 확인하고 프로젝트 흐름을 제어합니다. [대기까지] 블록의 조건이 TRUE로 보고될 때까지 프로젝트는 스택의 다음 블록으로 이동하지 않습니다. [대기] 블록은 [운전]이나 [회전]과 같은 대기하지 않는 블록과 함께 사용됩니다.
귀하의 정보를 위해
대기하지 않는 블록과 대기하는 블록은 다음 블록이 동작을 시작하는 시점을 결정합니다. [Drive for] 및 [Turn for]와 같은 대기 블록은 스택의 다음 블록으로 이동하기 전에 동작을 완료합니다. [Drive], [Turn]과 같은 대기하지 않는 블록은 대기하지 않는 블록의 동작이 완료되지 않았더라도 스택의 다음 블록으로 계속 이동합니다.
[운전] 및 [회전]과 같은 특정 블록은 대기 블록이거나 대기하지 않는 블록일 수 있습니다. 블록의 화살표를 선택하면 블록이 대기 블록에서 대기하지 않는 블록으로 바뀝니다.

스위치 블록 사용
Switch 비대기 블록은 블록의 끝에 "wait=False" 매개변수를 추가합니다. "wait=False" 은 블록이 기다리지 않고 스택의 다음 블록으로 계속 이동하도록 지시하는 Python 명령어입니다.

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

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

-
[Wait until] 블록은 부울 조건을 허용합니다. 이 프로젝트에서는 범퍼 센서를 사용하여 벽 미로 놀이터을 주행합니다. <Pressing bumper> 부울 블록을 [대기] 블록으로 끌어다 놓습니다.

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

- 아직 열려 있지 않으면 Wall Maze Playground 을 실행하고 프로젝트를 실행하세요.
- VR 로봇이 벽 미로의 시작 부분에서 주행하다가 범퍼 센서가 벽에 닿으면 멈추는 모습을 지켜보세요.
-
[Drive] 블록은 <Pressing bumper> 블록으로 범퍼 센서의 상태를 확인하면서 VR 로봇이 계속해서 전진할 수 있도록 해줍니다. <Pressing bumper> 이 TRUE로 보고되면 VR 로봇은 스택의 다음 블록으로 이동하여 운전을 멈춥니다.

귀하의 정보를 위해
대기 블록과 대기하지 않는 블록의 시각화를 따라가려면 VEXcode VR의 코드 실행 강조 표시 기능을 살펴보세요. 이 프로젝트가 시작되면 조건이 충족될 때까지 [Waiting until] 블록 주위에 녹색 강조 표시가 나타납니다. 이는 [Wait until] 블록이 대기 블록이기 때문입니다. 녹색 강조 표시는 대기하지 않는 블록을 건너뛰도록 표시되는데, 이러한 명령은 빠르게 실행되기 때문입니다.

스위치 블록 사용
이것은 <Bumper pressed>을 포함하는 [Wait until] 명령을 포함하는 스위치 블록입니다.
부울 리포터. 
while not left_bumper.pressed():은 현재 왼쪽 범퍼가 눌리고 있는지 확인하는 Python 명령어입니다. wait (5, MSEC)은 5밀리초(MSEC) 동안 검사 실행을 일시 중지하는 Python 명령어입니다. 따라서 이 프로젝트는 5MSEC마다 왼쪽 범퍼가 눌렸는지 여부를 확인합니다. 이 코드 줄은 첫 번째 코드 줄 바로 아래에 들여쓰기되어 있는데, 그 이유는 이 명령이 조건(이 경우 왼쪽 범퍼가 눌림)이 충족될 때까지 반복되는 동작이기 때문입니다. VEXcode VR에서는 wait 명령이 항상 조건 루프와 함께 추가됩니다. 대기 명령의 목적은 VEXcode VR 플랫폼의 웹 기반 특성으로 인해 VEXcode VR이 의도한 대로 프로젝트를 제대로 실행할 수 있도록 하는 것입니다. 조건 루프를 사용할 때는 wait 명령을 삭제해서는 안 됩니다. 프로젝트가 의도한 대로 실행되지 않을 수 있기 때문입니다. 왼쪽 범퍼를 누르면 로봇의 주행이 멈춥니다.
이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.