Skip to main content

2과: 녹색 디스크로 주행한 후 파란색 디스크로 주행

녹색 디스크로 이동한 다음 파란색 디스크로 이동하세요.

  • 이전 프로젝트에서는 전면 눈 센서가 녹색 디스크를 감지하면 VR 로봇이 오른쪽으로 회전합니다. 이제 VR 로봇이 Disk Maze Playground의 4개 디스크로 이동하는 프로젝트를 만들어 보세요.
  • 목표는 전방 눈 센서가 녹색 디스크를 감지하면 VR 로봇이 오른쪽으로 회전하고, 전방 눈 센서가 파란색 디스크를 감지하면 왼쪽으로 회전하는 일관된 패턴을 만드는 것입니다.

    VR 로봇의 예상 경로를 보여주는 화살표가 있는 디스크 미로 놀이터의 위에서 내려다본 모습. 로봇은 출발 플랫폼에서 앞으로 주행하여 첫 번째 녹색 디스크에 도달한 후 두 개의 파란색 디스크에서 좌회전하기 전에 오른쪽으로 돌아야 합니다.
  • VR 로봇이 우회전 후 전진하도록 지시하기 위해 기존 프로젝트에 다음 블록을 추가합니다.

    VEXcode VR 블록은 이전의 프로젝트에 주석 및 추진 블록을 추가한 것입니다. 이제 전체 프로젝트는 시작 시로 시작되고, 그 뒤에 '첫 번째 디스크(녹색)로 이동한 다음 오른쪽으로 돌기'라는 주석이 붙습니다. 다음으로, 앞으로 운전하고, 전방 눈이 녹색을 감지할 때까지 기다린 후 오른쪽으로 90도 회전합니다. 다음은 '다음 디스크(파란색)로 이동한 후 좌회전하세요'라는 주석 블록입니다. 마지막으로, 앞으로 나아가세요.
  • VR 로봇이 다음에 접하게 될 디스크가 파란색이므로, '파란색'을 감지하도록 <Color sensing> 블록을 설정한 [대기]를 추가합니다.

    VEXcode VR 블록은 이전 프로젝트에서 마지막 Drive Forward 블록 뒤에 Wait Until 블록이 추가되었습니다. 이제 전체 프로젝트는 시작 시로 시작되고, 그 뒤에 '첫 번째 디스크(녹색)로 이동한 다음 오른쪽으로 돌기'라는 주석이 붙습니다. 다음으로, 앞으로 운전하고, 전방 눈이 녹색을 감지할 때까지 기다린 후 오른쪽으로 90도 회전합니다. 다음은 '다음 디스크(파란색)로 이동한 후 좌회전하세요'라는 주석 블록입니다. 마지막으로, 앞으로 운전하면서 전방 눈이 파란색을 감지할 때까지 기다리세요.
  • [회전] 블록을 추가하고 매개변수를 '왼쪽'으로 설정합니다.

    VEXcode VR 블록은 이전 프로젝트에서 마지막 Wait Until 블록 뒤에 Turn Left For 90 Degrees 블록이 추가되었습니다. 이제 전체 프로젝트는 시작 시로 시작되고, 그 뒤에 '첫 번째 디스크(녹색)로 이동한 다음 오른쪽으로 돌기'라는 주석이 붙습니다. 다음으로, 앞으로 운전하고, 전방 눈이 녹색을 감지할 때까지 기다린 후 오른쪽으로 90도 회전합니다. 다음은 '다음 디스크(파란색)로 이동한 후 좌회전하세요'라는 주석 블록입니다. 다음으로 전진하여 전방 눈이 파란색을 감지할 때까지 기다린 후 좌회전하여 90도 회전합니다.
  • 프로젝트를 실행하여 VR 로봇이 디스크 미로 놀이터어떻게 움직이는지 확인하세요.

    VR 로봇의 예상 경로를 보여주는 화살표가 있는 디스크 미로 놀이터의 위에서 내려다본 모습. 로봇은 출발 플랫폼에서 앞으로 주행하여 첫 번째 녹색 디스크에 도달한 후 첫 번째 파란색 디스크에서 왼쪽으로 돌기 전에 오른쪽으로 돌아야 합니다.
  • VR 로봇은 전방 눈 센서가 녹색 디스크를 감지하면 오른쪽으로 회전하고, 전방 눈 센서가 파란색 디스크를 감지하면 왼쪽으로 회전합니다.
  • 프론트 아이 센서를 사용하여 VR 로봇을 디스크 미로 놀이터 에 있는 두 개의 디스크로 이동시키는 이 프로젝트를 계속 구축하세요. 다음 블록을 추가하여 VR 로봇을 다음 두 개의 디스크로 이동시킨 다음 중지합니다.

    VEXcode VR 블록 스니펫을 프로젝트 끝에 추가하여 파란색 세 번째와 네 번째 디스크에 도달합니다. 세 번째 디스크로 이동하려면 앞으로 운전하고, 전방 눈이 파란색을 감지할 때까지 기다린 후, 왼쪽으로 90도 돌립니다. 다음으로 네 번째 디스크로 이동합니다. 앞으로 운전하고, 전방 눈이 파란색을 감지할 때까지 기다린 후 90도 동안 좌회전합니다. 마지막으로, 운전을 멈추세요.
    세 번째와 네 번째 디스크에 도달하기 위한 VEXcode 블록 스니펫이 이제 프로젝트 맨 아래에 추가되었습니다. 전체 프로젝트는 이제 4개의 디스크로 구성되었습니다. 먼저 녹색 디스크가 있고 그 다음에 파란색 디스크가 3개 있습니다. 각 디스크에 대해 다음 코드 섹션을 사용합니다. 앞으로 주행하고, 앞 눈이 디스크의 색상을 감지할 때까지 기다린 다음, 녹색이면 오른쪽으로 90도 회전하고, 파란색이면 왼쪽으로 90도 회전합니다. 3개 블록 구간을 4번 반복하면 4개의 디스크를 얻을 수 있습니다. 먼저 오른쪽으로 돌면 녹색 디스크를 얻을 수 있고, 왼쪽으로 돌면 파란색 디스크 3개를 얻을 수 있습니다. 12개의 블록과 각 섹션을 표시하는 추가 주석이 끝나면 운전을 멈추세요.
  • 패턴이 있다는 점에 유의하세요. 이 프로젝트에는 3번 반복되는 일련의 블록이 있습니다. [Repeat] 블록을 사용하면 이 코드 섹션을 요약할 수 있습니다.

    이제 Repeat 블록을 사용하여 코드를 단순화하고 단축해 보겠습니다. 빨간색 상자는 파란색 디스크에 도달하는 데 사용된 세 개의 섹션을 강조 표시합니다. 이는 동일한 코드이므로 대신 3번 반복되도록 반복 블록 세트에 추가할 수 있습니다. 이제 프로젝트에서는 "시작 시, 전진 주행하고 앞차가 녹색을 감지할 때까지 기다린 후 오른쪽으로 90도 회전"이라고 합니다. 다음으로, 파란색 디스크에 도달하기 위해 코드를 세 번 반복합니다. 앞으로 주행, 전방 눈이 파란색을 감지할 때까지 기다린 후, 90도 동안 좌회전합니다. 반복 루프를 닫은 후 운전을 멈추세요.
  • 아직 열려 있지 않으면 Disk Maze Playground 을 열고 프로젝트를 실행합니다.
  • VR 로봇이 디스크 미로 놀이터에서 4개의 디스크를 탐색하는 모습을 지켜보세요.

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

스위치 블록 사용

지금까지 녹색 디스크와 세 개의 파란색 디스크로 드라이브할 프로젝트를 만들었습니다.

아래 이미지는 VEX코드 블록을 사용한 전체 프로젝트를 보여줍니다. 반복되는 동작은 빨간색 상자로 표시된 세 개의 파란색 디스크로 이동하는 데 사용됩니다.

우리가 작업하고 있는 VEXcode VR 블록 프로젝트에서 3번 반복 블록이 빨간색으로 강조 표시되어 있습니다. 이 프로젝트에서는 "시작 시, 전진 주행하고 앞차가 녹색을 감지할 때까지 기다린 후 오른쪽으로 90도 회전"이라고 설명합니다. 다음으로, 반복 블록을 사용하여 파란색 디스크에 도달하는 코드를 세 번 반복합니다. 앞으로 주행, 전방 눈이 파란색을 감지할 때까지 기다린 다음, 90도 동안 좌회전합니다. 반복 루프를 닫은 후 운전을 멈추세요.

아래 프로젝트는 동일한 VEX코드 블록이 여러 개의 스위치 블록으로 변환된 것을 보여줍니다.

센터 프로젝트

이 마지막 프로젝트는 하나의 Switch 블록 내에서 동일한 Switch 블록 명령이 Python 명령으로 변환되는 것을 보여줍니다.

VEXcode VR 블록은 처음 네 개의 디스크에 도달하도록 프로젝트되었지만, Repeat 루프 전체가 Python 스위치 블록으로 변환되었습니다. 프로젝트 전체에서는 시작할 때 앞으로 운전하고 앞 눈이 녹색을 감지할 때까지 기다린 후 오른쪽으로 90도 회전한다고 되어 있습니다. 다음은 다음의 Python 코드를 포함하는 스위치 블록입니다: 'for repeat_count in range(3): drivetrain.drive(FORWARD) while not front_eye.detect(BLUE): wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)'. 이제 스위치 블록 바깥에서 마침내 운전을 멈추세요.

range(3): 의 repeat_count에 대한 은 로봇에게 다음 들여쓰기 코드 줄을 세 번 반복해야 한다는 것을 알려주는 Python 명령입니다. for 루프 뒤에 콜론(:)을 포함해야 합니다. 

이후의 코드 줄은 반복될 동작입니다. 이러한 동작은 기본적으로 4칸 들여 로 되어 있습니다. 

또한, 조건에는 wait (5, MSEC)명령이 포함되어 있습니다. VEXcode VR에서는 wait 명령이 항상 for 루프에 추가됩니다. wait 명령의 목적은 VEXcode VR 플랫폼의 웹 기반 특성으로 인해 VEXcode VR이 의도한 대로 프로젝트를 제대로 실행할 수 있도록 하는 것입니다. for 루프를 사용할 때는 wait 명령을 절대로 삭제해서는 안 됩니다. 삭제하면 프로젝트가 의도한 대로 실행되지 않을 수 있습니다. 

wait (5, MSEC)줄은 while not front_eye.detect(BLUE) 명령 아래에 들여쓰기되어 있습니다. 그 이유는 Front Eye Sensor가 파란색을 확인하고 각 확인 사이에 5 MSEC를 일시 중지하기 때문입니다.

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