Skip to main content

레슨 3: 벽 미로를 해결하기 위한 드라이브트레인 명령 추가

벽 미로 문제 해결

이제 VR 로봇이 미로 벽 놀이터의 문자 'A'와 숫자 '2'까지 주행했는데, VR 로봇이 문자 'B'와 같이 다른 위치로 주행하는 프로젝트를 어떻게 만들 수 있을까요? 지금까지 우리는 범퍼 센서의 데이터를 이용해 벽까지 주행한 다음 방향을 돌려 다음 벽으로 이동했습니다. 'B'라는 글자를 찾으려면 VR 로봇을 미로 표면 중앙의 지점으로 옮겨야 합니다. 그래야 목적지를 향해 다른 경로를 따라갈 수 있습니다.

코드에 driveturn_for명령만 포함되어 있다면 VR 로봇은 뒤로 물러나지 않고 계속해서 좌우로 회전하기 때문에 벽 미로의 숫자 '2' 구역에 "갇힐" 수 있습니다.VR 로봇이 2번째 마커 위에 위치한 벽 미로 놀이터의 위에서 내려다본 모습. 그것은 위쪽과 왼쪽으로 기울어져 있으며, 대략 B 표시를 마주보고 있습니다.

대신, VR 로봇이 마지막으로 닿은 벽에서부터 방향을 바꿔야 하는 곳까지의 거리를 추정할 수 있습니다. 그러면drive_for,turn_for과 같은 Drivetrain 명령과while루프, 그리고 프로젝트 내의 범퍼 센서 데이터를 사용해 미로를 풀 수 있습니다!

  • 이전 프로젝트를 수정하거나, 새 프로젝트를 만들거나, "복사"를 선택하여 이 코드를 VEXcode VR에 붙여넣어 이 기본 프로젝트와 일치시키세요.

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(좌, 90, 도)
    
    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(우, 90, 도)
    
    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(좌, 90, 도)
    	
    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.stop()
  • 위의 프로젝트는 VR 로봇을 'B' 지점까지 주행하는 것으로 시작하지만, VR 로봇이 그렇게 하려면 먼저 후진한 다음 좌회전해야 합니다.VR 로봇이 2번째 마커 위에 위치한 벽 미로 놀이터의 위에서 내려다본 모습입니다. VR 로봇은 왼쪽 벽에 밀착되어 있고, 왼쪽 벽을 마주보고 있으며, 녹색 화살표는 오른쪽을 가리키고 그다음 아래쪽을 가리키며 로봇이 이동해야 할 경로를 보여줍니다.
  • stop 명령을 제거하고drive_forturn_for 명령으로 교체하여 코드를 편집합니다.
    • VR 로봇은 약 300밀리미터(mm) 정도 후진 주행이 필요할 것으로 추정됩니다. 먼저 drive_for 명령의 매개변수를 300밀리미터(mm)에 대해 "reverse"로 설정합니다.
    • 그런 다음 turn_for 명령의 매개변수를 설정하여 좌회전 90도 합니다. 이제 프로젝트는 다음과 같아야 합니다.

      def main():
      	while not left_bumper.pressed():
      		drivetrain.drive(전진)
      		wait(5, MSEC)
      		
      	drivetrain.turn_for(좌, 90, 도)
      
      	while not left_bumper.pressed():
      		drivetrain.drive(전진)
      		wait(5, MSEC)
      		
      	drivetrain.turn_for(우, 90, 도)
      
      	while not left_bumper.pressed():
      		drivetrain.drive(전진)
      		wait(5, MSEC)
      		
      	drivetrain.turn_for(좌, 90, 도)
      	
      	while not left_bumper.pressed():
      		drivetrain.drive(전진)
      		wait(5, MSEC)
      		
      	drivetrain.drive_for(후진, 300, MM)
      	드라이브트레인.회전_방향(왼쪽, 90도, 각도)
  • 아직 열려 있지 않으면 Wall Maze Playground 을 실행하고 프로젝트를 실행합니다.
  • 이러한 명령을 추가하면 VR 로봇이 'B' 문자를 운전하는 올바른 방향으로 이동합니다.왼쪽은 이전에 보여드렸던 Python 코드 프로젝트로, drivetrain.turn_for(LEFT, 90, DEGREES)로 끝납니다. 오른쪽은 벽 미로 놀이터의 위에서 내려다본 모습으로, VR 로봇이 새로운 코드에 따라 이동한 모습을 보여줍니다. VR 로봇은 A와 2 마커 사이의 복도에 위치하며 이제 놀이터의 아래쪽 벽을 향하고 있습니다.

     

  • "재설정" 버튼을 선택하면 놀이터가 재설정되고 VR 로봇이 시작 위치로 돌아갑니다.
  • 이제 VR 로봇이 올바른 방향으로 향하게 되었으므로 마지막 turn_for 명령 아래에 다음 명령을 추가하여 VR 로봇을 Wall Maze Playground의 문자 'B'로 이동시킵니다. 프로젝트에서 명령이 올바르게 들여쓰기되었는지 확인하세요.

    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(오른쪽, 90, DEGREES)
    
    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(오른쪽, 90, DEGREES)
    
    	while not left_bumper.pressed():
    		drivetrain.drive(전진)
    		wait(5, MSEC)
    		
    	drivetrain.stop()
  • 아직 열려 있지 않으면 Wall Maze Playground 을 실행하고 프로젝트를 실행하세요.
  • VR 로봇은 이제 벽 미로 놀이터의 문자 'B'로 이동합니다.

    VR 로봇이 놀이터 왼쪽 벽 중앙의 B 문자 위에 위치한 벽 미로 놀이터의 위에서 내려다본 모습입니다. 놀이터 꼭대기를 바라보며 벽에 붙어 있습니다.

미니 챌린지

이 챌린지에서 VR 로봇은 여러 개의while루프, 드라이브트레인 명령 및 범퍼 센서를 사용하여 벽 미로 놀이터 에서 숫자 '3'을 찾아가야 합니다.

VR 로봇이 숫자 3 위에 위치한 월 미로 놀이터의 위에서 내려다본 모습. 숫자 3은 미로의 왼쪽 위 사분면에 위치하며, B 위, 오른쪽에 있으며, 3개의 주변 벽으로 만들어진 모서리 안에 있습니다. VR 로봇은 놀이터 바닥을 바라보며 3번째 마커 아래의 벽에 밀착되어 있습니다.

미니 챌린지를 완료하려면 다음 단계를 따르세요.

  • 아래의 솔루션 영상을 시청하고 미니 챌린지를 완료하기 위해 VR 로봇이 어떻게 운전해야 하는지 검토해 보세요. 아래 비디오 클립에서 VR 로봇은 시작 위치에서 시작하여 범퍼를 눌렀을 때까지 벽을 향해 주행한 다음 회전하는 동일한 패턴을 따릅니다. 로봇은 B라는 글자를 향해 출발했던 것과 같은 경로를 따라 이동합니다. 벽에서 멀어지는 방향 전환 지점에서 로봇은 오른쪽으로 방향을 돌려 3이라는 글자를 향해 계속 이동합니다. 그 지점에서 로봇은 앞으로 나아가고 두 번 좌회전하여 다음 벽을 돌아 B라는 글자를 지나갑니다. 마지막으로 로봇은 앞으로 나아가고 두 번 우회전하여 마지막 벽을 돌아 3번에 도달합니다.

  • Unit4Lesson3 프로젝트에 필요한 명령을 추가하거나 제거하여 VR 로봇을 벽 미로 놀이터의 숫자 '3'으로 이동시키는 프로젝트를 만듭니다.
  • 프로젝트를 시작하여 제대로 작동하는지 테스트해 보세요.
  • 프로젝트가 성공적이지 않으면, 편집하고 다시 시도하세요. 도전이 완료될 때까지 이 과정을 계속하세요.
  • VR 로봇이 벽 미로 놀이터의 숫자 '3'까지 성공적으로 이동하면 프로젝트를 저장합니다.

축하해요! 벽 미로 챌린지를 성공적으로 완료했습니다!

질문

아래 링크를 선택하여 수업 퀴즈에 참여하세요.

Google 문서 / .docx / .pdf