Skip to main content

2과: 다음 디스크로 이동

블루 디스크로 드라이브하세요

이전 프로젝트에서는 VR 로봇이 전방 눈 센서가 녹색 디스크를 감지하면 오른쪽으로 돌아서서 미로의 첫 번째 단계를 통과했습니다. 이제 우리는 VR 로봇이 디스크 미로 놀이터의 처음 4개 디스크로 이동하도록 프로젝트를 계속 구축할 것입니다.

녹색 디스크에서 우회전한 후 VR 로봇이 향하는 방향을 살펴보면, 다음 세 개의 파란색 디스크로 이동하려면 VR 로봇이 앞으로 주행하고 각 파란색 디스크에서 좌회전해야 합니다. while루프와 동일한 논리를not조건과 함께 사용하면 VR 로봇이 미로를 계속 주행하고 파란색 디스크를 감지하면 좌회전하게 할 수 있습니다.디스크 미로 놀이터의 위에서 내려다본 모습. 첫 번째 녹색 디스크에 있는 로봇은 첫 번째 파란색 디스크를 향해 오른쪽을 향하고 있습니다. 로봇이 어떻게 움직여야 하는지를 나타내는 검은색 화살표가 표시됩니다. 이는 로봇이 파란색 디스크로 주행한 후 좌회전하고, 두 번째 파란색 디스크로 주행한 후 좌회전하고, 세 번째 파란색 디스크에서 멈춘다는 것을 나타냅니다.

  • 기존 프로젝트의 turn_for 아래에 VR 로봇의 다음 동작을 설명하는 주석을 추가합니다. 프로젝트는 다음과 같아야 합니다.
def main():
    # 첫 번째 디스크(녹색)로 주행하고 우회전
    while not front_eye.detect(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # 두 번째 디스크(파란색)로 주행하고 좌회전
  • 새로운 주석 아래에 not 조건을 포함한 while 루프를 추가합니다. 조건을 detect명령으로 설정하고 매개변수를 "BLUE"로 설정합니다. VR 로봇이 다음에 마주칠 디스크는 파란색이기 때문입니다.
    # 2번째 디스크(파란색)로 이동, front_eye.detect(BLUE):
        wait(5, MSEC) 동안 좌회전
  • while 루프 내부에서 대기하지 않는 drive 명령을 드래그하거나 입력합니다. 
    # 2번째 디스크(파란색)로 이동하여 front_eye.detect(BLUE)가 감지되지 않는 동안 좌회전
    :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • turn_for 명령을 드래그하거나 입력한 후 매개변수를 좌회전 90도 설정하세요.
    # 2번째 디스크(파란색)로 이동하여 front_eye.detect(BLUE)가 아닌 동안 좌회전
    번:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)
  • VR 로봇이 Disk Maze Playground.을 어떻게 움직이는지 보려면 프로젝트를 실행하세요.디스크 미로 놀이터에 있는 VR 로봇을 위에서 내려다본 모습. 검은색 화살표는 로봇이 시작 위치 바로 맞은편에 있는 녹색 디스크로 주행한 다음 오른쪽으로 돌아, 파란색 디스크로 전진한 다음 왼쪽으로 돌아 주행을 멈춘다는 것을 나타냅니다.
    • VR 로봇은 전방 눈 센서가 녹색 디스크를 감지하면 오른쪽으로 회전하고, 전방 눈 센서가 파란색 디스크를 감지하면 왼쪽으로 회전합니다.
  • 전면 눈 센서를 사용하여 VR 로봇을 디스크 미로 놀이터 에 있는 두 개의 파란색 디스크로 이동시키는 이 프로젝트를 계속 구축하세요. 프로젝트에 명령을 추가하여 VR 로봇을 다음 두 디스크로 이동시킨 후 중지합니다. 이제 전체 프로젝트는 다음과 같습니다.
def main():
    # 1번째 디스크(녹색)로 주행하고, 우회전
    (없음) front_eye.detect(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # 2번째 디스크(파란색)로 주행하고, 좌회전
    (없음) front_eye.detect(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

    # 3번째 디스크(파란색)로 주행하고, 좌회전
    (없음) front_eye.detect(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

    # 4번째 디스크(파란색)로 주행하고, 좌회전
    (없음) front_eye.detect(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

VR 로봇의 움직임에서 패턴 식별

전면 눈 센서로 디스크 미로를 성공적으로 탐색하는 목표는 전면 눈 센서가 녹색 디스크를 감지하면 VR 로봇이 오른쪽으로 회전하고, 전면 눈 센서가 파란색 디스크를 감지하면 왼쪽으로 회전하는 일관된 패턴을 만드는 것입니다. 이런 패턴을 식별하면 프로젝트가 복잡해짐에 따라 프로젝트를 단순화하는 데 도움이 될 수 있습니다.

디스크 미로 놀이터의 위에서 내려다본 모습. 로봇은 시작 위치에 있습니다. 화살표는 VR 로봇이 첫 번째 녹색 디스크까지 전진하여 오른쪽으로 돌아, 파란색 디스크까지 이동하고, 왼쪽으로 돌아, 두 번째 파란색 디스크까지 이동하고, 왼쪽으로 돌아, 세 번째 파란색 디스크에서 멈추는 경로를 나타냅니다.

귀하의 정보를 위해

프로젝트의 명령 순서에도 패턴이 있다는 점에 유의하세요. 이 프로젝트에서는 파란색 디스크에 대한 일련의 명령이 세 번 반복됩니다. 이 코드 부분은 for 루프를 사용하여 요약할 수 있습니다. 여기에 표시된 프로젝트는 파란색 디스크와 관련된 3개의 while 루프를 단일 for 루프로 결합합니다.

def main():
    # 첫 번째 디스크(녹색)로 이동하여 우회전
    while not front_eye.detect(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # 다음 3개 디스크(파란색)로 이동하여 좌회전
    for value in range(3): 
        while not front_eye.detect(BLUE):
            drivetrain.drive(FORWARD)
            wait(5, MSEC)

        drivetrain.turn_for(LEFT, 90, DEGREES)

루프로 사용하면 프로젝트가 더 간단하고 읽기 쉬워지지만, 반복되는 명령을 하나의 루프 안에 포함하게 됩니다.

  • 아직 열려 있지 않으면 Disk Maze Playground 을 열고 프로젝트를 실행합니다.
  • VR 로봇이 디스크 미로 놀이터에서 4개의 디스크를 탐색하는 모습을 지켜보세요.

    디스크 미로 놀이터의 위에서 내려다본 모습. 로봇은 시작 위치에 있습니다. 화살표는 VR 로봇이 첫 번째 녹색 디스크까지 전진하여 오른쪽으로 돌아, 파란색 디스크까지 이동하고, 왼쪽으로 돌아, 두 번째 파란색 디스크까지 이동하고, 왼쪽으로 돌아, 세 번째 파란색 디스크에서 멈추는 경로를 나타냅니다. 마지막 파란색 디스크에는 최종 위치를 나타내는 빨간색 상자가 있습니다.
  • 이 프로젝트에서는 VR 로봇이 전방 눈 센서가 녹색을 감지할 때까지 앞으로 주행합니다.
    • VR 로봇은 오른쪽으로 90도 회전한 후 파란색이 감지될 때까지 다시 앞으로 주행합니다.
    • 그런 다음 VR 로봇은 좌회전하고 전방 눈 센서가 파란색을 감지할 때까지 앞으로 주행합니다. 파란색이 감지되면 VR 로봇은 다시 왼쪽으로 회전합니다.
    • 마지막으로, VR 로봇은 전방 눈 센서가 파란색을 감지할 때까지 앞으로 주행한 후 멈춥니다.
  • 전방 눈 센서가 녹색을 감지하면 VR 로봇이 오른쪽으로 회전하는 패턴을 주목하세요. 전방 눈 센서가 파란색을 감지하면 이 프로젝트에서는 VR 로봇이 왼쪽으로 회전합니다.

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