Skip to main content

2과: 'A' 문자까지 운전하세요

거리 센서를 사용하여 벽을 피하기 

이제 비교 연산자가 무엇이고 프로젝트에서 어떻게 사용할 수 있는지 알아보았으므로, 이 학습 내용을 적용하여 VR 로봇을Wall Maze Playground에서 문자 'A'로 이동시켜 보겠습니다. 이 프로젝트에서는 거리 센서를 사용하여 벽에 부딪히지 않고 Wall Maze Playground 을 탐색합니다.

프로젝트 이름 지정 및 저장

  • 새로운 텍스트 프로젝트를 시작하고 메시지가 표시되면 Wall Maze Playground선택합니다. 벽 미로 놀이터 선택 타일.
  • 프로젝트 이름을 Unit5Lesson2로 지정하세요.
    VEXcode VR 도구 모음과 중앙의 프로젝트 이름 대화 상자에는 Unit 5 Lesson 2라고 적혀 있습니다.
  • 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 로봇이 멈춰 있는 벽 미로 놀이터의 위에서 내려다본 모습.
  • VR 로봇을 시작 위치로 되돌리려면 놀이터를 재설정하세요.

'A' 문자까지 운전하는 프로젝트를 계속하세요

while 루프의 조건으로 get_distance명령과 함께 보다 큼(>) 연산자를 사용하면 VR 로봇과 벽 사이의 거리가 50밀리미터(mm)보다 큰 한 VR 로봇이 계속 전진하도록 지시합니다. 거리 센서가 VR 로봇과 벽 사이의 거리가 50mm를 넘지 않는다고 보고하면 VR 로봇은 주행을 멈춥니다. 'A' 문자로 계속 나아가려면 VR 로봇은 벽에 접근할 때 방향을 바꿔야 합니다. 

'A' 문자까지 운전하려면 VR 로봇이 두 개의 벽을 감지해야 하며, 이 벽이 감지되면 좌회전해야 합니다. 그러면 VR 로봇은 'A' 문자 뒤에 있는 세 번째 벽을 감지하면 멈춥니다.
VR 로봇이 시작 위치에 있는 벽 미로 놀이터의 위에서 내려다본 모습과 시작점에서 문자 A까지의 경로를 보여주는 세 개의 빨간색 화살표입니다. 첫 번째 화살표는 반대편 벽을 향해 앞으로 뻗어 있고, 두 번째 화살표는 거기에서 왼쪽으로 뻗어 다음 벽을 마주 보고 있으며, 세 번째 화살표는 거기에서 아래쪽으로 뻗어 문자 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 로봇이 'A'를 향해 주행하는 동안 어떤 벽에도 부딪히지 않는다는 점에 주목하세요. 거리 센서 값이 VR 로봇이 벽으로부터 50밀리미터(mm) 이내에 있다고 보고하면 VR 로봇은 프로젝트에서 회전하거나 멈추라는 지시를 받습니다.

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