레슨 3: 다운 아이 센서 추가
이전 수업에서는 거리 센서를 사용하여 VR 로봇이 물체를 감지했는지 여부를 판별하고, 감지했다면 물체를 향해 앞으로 이동합니다. 그러나 VR 로봇이 놀이터 가장자리에 가까워서 멈출 수 있는지 여부를 판단하는 데는 센서 값이 사용되지 않았습니다. VR 로봇이 놀이터 가장자리에 가까워졌을 때 멈추면 옆으로 미끄러지는 것을 막을 수 있습니다.
현재 이 프로젝트는 앞으로 운전하고 방향을 바꾸는 동작을 영원히 반복합니다. 하지만 놀이터 주변의 빨간색 테두리를 확인할 조건은 없습니다. 따라서 VR 로봇은 앞으로 주행할 때 놀이터에서 떨어질 수 있습니다.

다운 아이 센서 추가
VR 로봇이 놀이터 가장자리에 가까운지 여부를 판단하려면 또 다른 센서가 필요합니다. 다운 아이 센서는 놀이터 주변의 빨간색 테두리를 감지하여 VR 로봇이 놀이터 가장자리에 가까이 있는지 확인하는 데 사용할 수 있습니다.
전진 주행 및 회전 동작은 다운 아이 센서에서 빨간색 테두리가 감지되었다고 보고할 때까지 반복하면 됩니다. 따라서 무한 while 루프는 not 조건을 갖는 while루프로 대체될 수 있으며, 이는 빨간색 테두리를 감지하는 조건이 충족될 때까지 전진하고 회전하는 동작을 반복하기 위한 것입니다.
-
이전 수업의 Unit9Lesson2 프로젝트를 불러옵니다.
def main(): while True: # 거리 센서가 성을 감지했나요? if front_distance.found_object(): # 거리 센서 에서 감지된 충돌 성 drivetrain.drive(FORWARD) else: # 거리 센서를 사용하여 성을 찾기 위해 회전 (RIGHT) wait(5, MSEC) - 프로젝트 이름을 Unit9Lesson3로 바꾸세요.

-
다운 아이 센서와 함께 while루프를 사용하는 방법을 설명하는 주석을 추가하세요. 이제 프로젝트는 다음과 같이 보일 것입니다.
def main(): # 빨간색 테두리가 감지되지 않는 동안 건물을 찾습니다. while True: # 거리 센서가 성을 감지합니까? if front_distance.found_object(): # 거리 센서 에서 감지된 충돌 성 drivetrain.drive(FORWARD) else: # 거리 센서를 사용하여 성을 찾기 위해 회전 (RIGHT) wait(5, MSEC) -
다운아이 센서를 지속적으로 확인하기 위한 명령이 필요합니다. VR 로봇은 이러한 동작을 반복해야 합니다. 동안 아래쪽 눈 센서는 빨간색을 감지하지 못합니다. while 루프 조건을 조건 앞에 not키워드를 넣어 변경합니다. 이제 프로젝트는 다음과 같이 보일 것입니다.
def main(): # 빨간색 테두리가 감지되지 않는 동안 건물을 찾습니다. while not True: # 거리 센서가 성을 감지합니까? if front_distance.found_object(): # 거리 센서 에서 감지된 충돌 성 drivetrain.drive(FORWARD) else: # 거리 센서를 사용하여 성을 찾기 위해 회전 (RIGHT) wait(5, MSEC) -
그런 다음 조건을 True에서 down_eye.detect명령으로 변경합니다. 매개변수를 'RED'로 설정합니다. 이제 프로젝트는 다음과 같이 보일 것입니다.
def main(): # 빨간색 테두리가 감지되지 않는 동안 건물을 찾습니다. while not down_eye.detect(RED): # 거리 센서가 성을 감지합니까? if front_distance.found_object(): # 거리 센서 에서 감지된 충돌 성 drivetrain.drive(FORWARD) else: # 거리 센서를 사용하여 성을 찾기 위해 회전 (RIGHT) wait(5, MSEC) - 아직 열려 있지 않으면 Dynamic Castle Crasher Playground 을 열고 프로젝트를 실행합니다. VR 로봇이 의도한 대로 동작하나요?
-
이 프로젝트를 실행하면, VR 로봇은 감지된 물체를 향해 주행하고, 그렇지 않으면 오른쪽으로 회전합니다. 하지만 다운 아이 센서가 빨간색 테두리를 찾고 있음에도 불구하고 VR 로봇은 빨간색을 감지하면 무엇을 해야 할지 알려주지 않아 계속 주행하다가 결국 놀이터에서 떨어지고 맙니다.

while루프의 조건이 충족되면 프로젝트 흐름은 while 루프 외부에서 실행됩니다.
이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.