Skip to main content

3과: [If then] 블록 사용하기

디스크 메이즈 챌린지에서 VR 로봇은 전면 눈 센서의 상태를 확인하여 어떤 색상이 보고되는지 확인합니다. 각 색상은 VR 로봇이 수행해야 하는 다른 동작과 일치합니다.

VEXcode VR If Then C 블록에는 '앞눈이 빨간색을 감지합니까?'라는 부울 매개변수가 있습니다.
  • 새 프로젝트를 시작하고 이름을 Unit7Lesson3로 지정하세요.

    '프로젝트 이름' 버튼이 빨간색 상자로 강조 표시된 VEXcode VR 도구 모음(플레이그라운드 선택 버튼 왼쪽). 프로젝트 이름은 Unit 7 Lesson 3으로 설정되었습니다.
  • [If then] 블록을 작업 공간으로 끌어서 [When started] 블록에 붙입니다.

    VEXcode VR 블록 프로그램은 When Started 블록과 빈 If Then C 블록으로 구성됩니다.

    귀하의 정보를 위해

    [If then] 블록은 Boolean 리포터 블록을 입력으로 받는 C 블록입니다. 2과에서 디스크 미로를 풀면서 관찰한 패턴을 사용하여 VR 로봇이 조건이 참인지 거짓인지 보고하는 프로젝트를 만들 수 있습니다.

    빨간색 상자로 부울 매개변수 공간을 강조한 VEXcode VR If Then C 블록입니다.

    [If then] 블록은 프로젝트에서 한 번 실행됩니다. 이 예에서 전방 눈 센서는 녹색 물체가 감지되면 TRUE를 보고하고 C 블록 안에 있는 명령(90도 오른쪽으로 회전)을 실행합니다. 녹색 객체가 감지되지 않으면 프로젝트는 스택의 다음 명령으로 이동합니다.

    VEXcode VR은 프런트 아이가 녹색을 감지하면 오른쪽으로 회전하는 프로젝트를 차단합니다. 프로젝트 내용은 다음과 같습니다. 시작할 때 앞 눈이 녹색을 감지하면 오른쪽으로 90도 회전합니다. if 문 밖에는 정지 주행 블록이 있습니다.

    스위치 블록 사용 


    아래 이미지는 이 수업의 예제 프로젝트에 대한 Switch [If then] 블록 문을 보여줍니다. 

    동일한 VEXcode VR 블록 프로젝트에 스위치 블록이 포함되어 있으며, 프런트 아이가 녹색을 감지하면 오른쪽으로 회전합니다. 이 프로젝트는 When started 블록으로 시작하고 그 뒤에 If Then 블록의 switch C 블록 버전이 나옵니다. Python 코드는 'if front_eye.detect(GREEN): drivetrain.turn_for(RIGHT, 90, DEGREES)'로 읽힙니다. if 문 밖에는 정지 주행 블록이 있습니다.

    아래 프로젝트에는 동일한 명령이 하나의 Switch 블록으로 변환되어 포함되어 있습니다.  

    첫 번째 코드 줄인 if front_eye.detect(GREEN): 은 전면 눈 센서가 녹색을 감지하는지 확인하는 조건 루프입니다. 이 줄의 끝에는 콜론(:)이 있어야 합니다. 

    두 번째 코드 줄인 drivetrain.turn_for(RIGHT, 90, DEGREES) 전면 눈 센서가 녹색을 감지하면 로봇이 오른쪽으로 90도 회전하도록 지시합니다. 이 줄 기본적으로 4칸 들여쓰기가 되어 있습니다이는 전면 눈 센서가 녹색을 감지하면 수행되는 특정 동작이기 때문입니다. 

    동일한 VEXcode VR 블록 프로젝트에 스위치 블록이 포함되어 있으며, 프런트 아이가 녹색을 감지하면 오른쪽으로 회전합니다. 이 프로젝트는 When started 블록으로 시작하고 그 뒤에 If Then 블록의 switch C 블록 버전이 나옵니다. Python 코드는 'if front_eye.detect(GREEN): drivetrain.turn_for(RIGHT, 90, DEGREES)'로 읽힙니다. if 문 밖에는 정지 주행 블록이 있습니다.

  • [If then] 블록의 육각형 입력으로 <Color sensing> 블록을 작업 공간으로 끌어다 놓습니다.

    VEXcode VR 블록은 if 문을 사용하여 디스크의 색상을 감지하는 프로젝트입니다. 시작 시 블록으로 시작한 다음, '프론트 아이에서 녹색 신호가 감지되면 오른쪽으로 돌라'는 주석 블록이 이어집니다. 마지막으로 '앞 눈이 빨간색을 감지했나요?'라는 문장을 읽는 Color Sensing 블록의 부울 매개변수를 갖는 빈 If Then 블록이 있습니다.
  • <Color sensing> 블록의 매개변수를 '녹색'으로 변경합니다.

    VEXcode VR은 녹색 디스크를 감지하기 위해 if 문을 사용하는 프로젝트를 차단합니다. 시작 시 블록으로 시작한 다음, '프론트 아이에서 녹색 신호가 감지되면 오른쪽으로 돌라'는 주석 블록이 이어집니다. 마지막으로 '앞 눈이 녹색을 감지합니까?'라는 색상 감지 블록의 부울 매개변수를 갖는 빈 If Then 블록이 있습니다. 색상 드롭다운 메뉴를 열면 빨간색에서 녹색으로 색상을 변경할 수 있습니다.
  • 전방 눈 센서가 녹색 디스크를 감지하면 VR 로봇은 오른쪽으로 90도 회전하여 디스크 미로를 풀어야 합니다. [Turn for] 블록을 [If then] 블록으로 끌어다 놓습니다.

    VEXcode VR은 if 문을 사용하여 녹색 디스크를 감지한 다음 오른쪽으로 회전하는 프로젝트를 차단합니다. 시작 시 블록으로 시작한 다음, '프론트 아이에서 녹색 신호가 감지되면 오른쪽으로 돌라'는 주석 블록이 이어집니다. 마지막으로, '앞눈이 녹색을 감지합니까?'라는 질문을 읽는 Color Sensing 블록의 부울 매개변수를 갖는 If Then 블록과 부울 값이 참인 경우 트리거되는 If 컨테이너 내부의 Turn right for 90 degrees 블록이 있습니다.
  • 디스크 미로의 세 가지 색상(녹색, 파란색, 빨간색)에 대해 [If then] 블록을 추가하려면 이와 동일한 단계를 따르세요. 각 색상은 다른 행동과 연관됩니다. [If then] 블록 내부의 블록은 의도된 동작과 일치해야 합니다. 프로젝트에 다음 블록을 추가합니다. VR 로봇이 '파란색'을 감지하면 VR 로봇은 왼쪽으로 90도 회전합니다.

    이전의 VEXcode VR 블록 프로젝트와 동일하지만 파란색 디스크가 있는 경우 왼쪽으로 회전하는 if 문이 추가되었습니다. When Started 블록으로 시작하고, 그 다음에 'Front Eye detects green?'을 읽는 Color Sensing 블록의 부울 매개변수를 갖는 If Then 블록과 If 컨테이너 내부에 Turn right for 90 degrees 블록이 있습니다. 마지막으로, 동일한 if 블록과 turn 블록 스택이 있지만, 파란색이 감지되면 90도 좌회전하도록 변경되었습니다.
  • VR 로봇이 미로의 끝에 도달하면, VR 로봇은 '빨간색'을 감지합니다.

    VR 디스크 미로 놀이터에 있는 VR 로봇입니다. 로봇이 멈춰서서 빨간색 디스크를 바라보고 있습니다.
  • VR 로봇을 멈추려면 VR 로봇이 '빨간색'을 감지했을 때 수행할 작업에 대한 지침을 담은 [If then] 블록을 추가해야 합니다. 프로젝트에 다음 블록을 추가합니다.

    이전의 VEXcode VR 블록 프로젝트와 동일하지만, 빨간색 디스크가 있는 경우 운전을 멈추는 if 문이 추가되었습니다. When Started 블록으로 시작하고, 그 다음에 'Front Eye detects green?'을 읽는 Color Sensing 블록의 부울 매개변수를 갖는 If Then 블록과 If 컨테이너 내부에 Turn right for 90 degrees 블록이 있습니다. 다음은 동일한 if 블록과 turn 블록 스택이지만, 파란색이 감지되면 90도 좌회전하도록 변경되었습니다. 마지막으로, 동일한 if 블록과 turn 블록 스택을 사용하지만 빨간색이 감지되면 운전을 멈추도록 변경합니다.
  • VR 로봇은 '없음' 값을 사용하여 색상을 인식하지 못하는지 여부를 결정할 수도 있습니다. 디스크 미로의 시작점에서 VR 로봇은 어떤 색상도 감지하지 못합니다.

    대시보드가 열려 있고 로봇의 프런트 아이 감지 값이 빨간색 상자로 강조 표시된 VR 놀이터 뷰입니다. 현재 'Object' 값은 false이고, 현재 'Color' 값은 none입니다.
  • 전방 눈 센서는 디스크 미로의 시작 부분에서 색상을 감지하지 못하므로 VR 로봇은 녹색 디스크를 감지할 때까지 앞으로 주행해야 합니다. 또 다른 [If then] 블록을 추가하여 색상이 감지되지 않을 때 VR 로봇이 무엇을 해야 하는지 지시할 수 있습니다.

    VEXcode VR 색상 감지 블록에 '앞눈이 아무것도 감지하지 못합니까?'라고 적혀 있습니다. 사용자가 대상 색상을 없음으로 변경하는 방법을 보여주는 드롭다운 메뉴가 열려 있습니다.
  • 프로젝트에 다음 블록을 추가합니다. VR 로봇이 어떤 색상도 감지하지 못하면 VR 로봇은 앞으로 주행합니다.

    동일한 VEXcode VR 블록이 이전의 프로젝트를 차단하지만 디스크가 감지되지 않을 경우 계속 진행하기 위한 if 문이 추가되었습니다. When Started 블록으로 시작하고, 그 다음에 'Front Eye detects green?'을 읽는 Color Sensing 블록의 부울 매개변수를 갖는 If Then 블록과 If 컨테이너 내부에 Turn right for 90 degrees 블록이 있습니다. 다음은 동일한 if 블록과 turn 블록 스택이지만, 파란색이 감지되면 90도 좌회전하도록 변경되었습니다. 다음으로, 동일한 if 블록과 turn 블록 스택을 사용하지만 빨간색이 감지되면 운전을 멈추도록 변경합니다. 마지막으로, 동일한 if 블록과 turn 블록 스택을 사용하지만 색상이 감지되지 않으면 Drive Forward로 변경합니다.
  • VR 로봇은 이제 눈 센서가 감지한 각 색상에 대한 지침을 갖게 되었습니다.
    • 전방 눈 센서가 '녹색'을 감지했습니다.
      • 오른쪽으로 90도 회전
    • 전방 눈 센서가 '파란색'을 감지했습니다.
      • 좌회전 90도
    • 전방 눈 센서가 '빨간색'을 감지했습니다.
      • 운전을 멈추세요
    • 전방 눈 센서가 '없음'을 감지합니까?
      • 앞으로 나아가다
  • Disk Maze Playground 을 열고 프로젝트를 실행합니다.

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