2과: 'A' 문자까지 운전하세요
거리 센서를 사용하여 벽을 피하기
이제 비교 연산자가 무엇이고 프로젝트에서 어떻게 사용할 수 있는지 알아보았으므로, 이 학습 내용을 적용하여 VR 로봇을Wall Maze Playground에서 문자 'A'로 이동시켜 보겠습니다. 이 프로젝트에서는 거리 센서를 사용하여 벽에 부딪히지 않고 Wall Maze Playground 을 탐색합니다.
프로젝트 이름 지정 및 저장
- 새로운 텍스트 프로젝트를 시작하고 메시지가 표시되면 Wall Maze Playground선택합니다.

- 프로젝트 이름을 Unit5Lesson2로 지정하세요.

-
while루프를 끌어다 놓거나 입력하거나 복사한 다음 새 텍스트 프로젝트 템플릿의 일부로 채워지는 Drivetrain 명령을 제거하면 프로젝트가 다음과 같이 표시됩니다. 이 명령은 while 루프 안에 wait 명령을 채운다는 점에 유의하세요. wait 명령을 제거하지 마세요. VR 로봇이 프로젝트를 올바르게 실행하도록 보장합니다.
def main(): while 조건: wait(5, MSEC) -
루프 내부에서 대기하지 않는 drive 명령을 드래그, 입력 또는 복사하면 프로젝트가 다음과 같이 표시됩니다.
def main(): while 조건: drivetrain.drive(FORWARD) wait(5, MSEC)- 들여쓰기가 올바른지 확인하고 drive 명령이 wait명령과 맞춰져 있는지 확인하세요.
get_distance함수와 greater than 연산자를 추가합니다.
- while 루프의 '조건'에 get_distance명령을 드래그하거나 입력하면 프로젝트가 다음과 같이 표시됩니다. 보다 큼 연산자를 입력하고 두 번째 피연산자로 '50'을 입력합니다.
-
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) -
while 루프 외부에 stop 명령을 추가하면 프로젝트는 다음과 같습니다. VR 로봇은 정지 명령을 받을 때까지 계속 운전하기 때문에 while 루프 후에는 정지 명령이 필요합니다.
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - 놀이터 창이 아직 열려 있지 않으면 열고,Wall Maze Playground이 열려 있는지 확인한 다음 프로젝트를 실행합니다.
- VR 로봇이 벽과 거리 센서에서 50밀리미터(mm)보다 크지 않은 보고될 때까지 앞으로 주행하는 모습을 지켜보세요.

- VR 로봇을 시작 위치로 되돌리려면 놀이터를 재설정하세요.
'A' 문자까지 운전하는 프로젝트를 계속하세요
while 루프의 조건으로 get_distance명령과 함께 보다 큼(>) 연산자를 사용하면 VR 로봇과 벽 사이의 거리가 50밀리미터(mm)보다 큰 한 VR 로봇이 계속 전진하도록 지시합니다. 거리 센서가 VR 로봇과 벽 사이의 거리가 50mm를 넘지 않는다고 보고하면 VR 로봇은 주행을 멈춥니다. 'A' 문자로 계속 나아가려면 VR 로봇은 벽에 접근할 때 방향을 바꿔야 합니다.
'A' 문자까지 운전하려면 VR 로봇이 두 개의 벽을 감지해야 하며, 이 벽이 감지되면 좌회전해야 합니다. 그러면 VR 로봇은 'A' 문자 뒤에 있는 세 번째 벽을 감지하면 멈춥니다.
-
stop명령을 turn_for명령으로 바꾸면 프로젝트가 다음과 같이 보입니다. turn_for명령이 필요한 이유는 거리 센서가 벽으로부터 50밀리미터(mm) 이내에 들어오면 VR 로봇이 왼쪽으로 회전하여 'A' 문자를 향해 계속 이동하기 때문입니다.
- 회전 매개변수를 "좌, 90, 도"로 설정합니다.
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)- turn_for 명령 아래에 drive 명령이 있는 while루프를 추가합니다. 첫 번째 피연산자로 get_distance명령을 사용하고, 연산자보다 큰 수를 사용하고, 두 번째 피연산자로 상수 '50'을 사용하여 조건을 설정합니다.
front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC)- 마지막으로, 두 번째 while 루프 아래에 다음 명령을 추가하여 VR 로봇이 문자 'A' 뒤에 있는 마지막 벽을 감지한 다음 운전을 멈추도록 지시합니다. turn_for 명령과 stop 명령이 각각의 while 루프 밖에 있는지 확인하세요.
drivetrain.turn_for(LEFT, 90, DEGREES) while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()- 아직 열려 있지 않으면 Wall Maze Playground 을 실행하고 프로젝트를 실행합니다.
- VR 로봇이 미로 벽의 시작점에서 'A' 문자까지 주행한 후 멈추는 모습을 지켜보세요.

- VR 로봇이 'A'를 향해 주행하는 동안 어떤 벽에도 부딪히지 않는다는 점에 주목하세요. 거리 센서 값이 VR 로봇이 벽으로부터 50밀리미터(mm) 이내에 있다고 보고하면 VR 로봇은 프로젝트에서 회전하거나 멈추라는 지시를 받습니다.
이 수업의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.