Skip to main content

레슨 2: 비교 블록 사용 및 근접할 때까지 운전

이 수업에서는 거리 센서와 <Less than> 부울 리포터 블록을 사용하여 VR 로봇을 문자 'A'로 이동시키는 프로젝트를 만들어 보겠습니다. 미니 챌린지에서는 이러한 기술을 적용하여 벽 미로의 시작 부분에서 숫자 '1'까지 탐색하게 됩니다.

VR 로봇의 시작 위치 근처에 있는 벽 미로의 위에서 내려다본 모습. 빨간색 상자 안에 A라는 문자 목표가 강조 표시되어 있습니다.

학습 성과

  • <Greater than> 블록은 첫 번째 값이 두 번째 값보다 큰지 여부를 보고하는 부울 블록임을 식별합니다.
  • <Less than> 블록은 첫 번째 값이 두 번째 값보다 작은지 여부를 보고하는 부울 블록임을 식별합니다.
  • [Wait until] 블록에서 <Greater than> 또는 <Less than> 블록이 TRUE 또는 FALSE 값을 보고한다는 것을 식별합니다.
  • 거리 센서 값이 임계값인 50밀리미터(mm)보다 작아질 때까지 VR 로봇이 앞으로 주행하는 프로젝트를 만드는 방법을 설명하세요.

프로젝트 이름 지정 및 저장

  • VEXcode VR에서 새 프로젝트를 시작하고 프로젝트 이름을 Unit5Lesson2로 지정합니다. 프로젝트에 VEXcode 블록, Switch 블록 또는 두 가지 블록 유형을 조합하여 사용할 수 있다는 점을 기억하세요. 
'프로젝트 이름' 버튼이 빨간색 상자로 강조 표시된 VEXcode VR 도구 모음(플레이그라운드 선택 버튼 왼쪽). 프로젝트 이름은 Unit 5 Lesson 2로 설정되었습니다.

거리 센서를 사용하여 벽을 피하십시오

  • [드라이브] 블록을 작업 공간으로 끌어다 놓습니다.
    VEXcode VR 블록 프로젝트는 시작 시 블록으로 시작하고 그 아래에 전진 구동 블록이 있습니다. Drive Forward 블록을 강조 표시한 빨간색 상자가 있습니다.
  • [운전] 블록 아래에 [대기] 블록을 붙입니다.
    이전과 동일한 VEXcode VR 블록이 프로젝트되지만, 이제는 빨간색 상자로 강조 표시된 하단에 Wait Until 블록이 추가되었습니다. 전체 프로젝트는 '시작할 때, 앞으로 나아갈 때, 기다릴 때까지'로 구성됩니다. Wait Until 블록의 매개변수가 비어 있습니다.

이 프로젝트에서는 거리 센서를 사용하여 벽에 부딪히지 않고 벽 미로 놀이터 탐색합니다. 이 프로젝트에서는 <Less than> Boolean 블록 내부의 (Distance from) 블록을 사용합니다.

<Less than>, <Greater than>, <Equal to> 는 비교 블록으로, 값을 비교합니다. 또한 비교 조건이 충족되면 TRUE 값을 보고하고 조건이 이 아님)인 경우 FALSE 값을 보고하는 부울 리포터 블록입니다.

  • <Less than> 첫 번째 값이 두 번째 값보다 작을 경우 TRUE를 보고하고, 첫 번째 값이 두 번째 값보다 크거나 같을 경우 FALSE를 보고합니다.
    VEXcode VR Less Than 부울 블록, '25가 50보다 작음'을 읽습니다.
  • <Greater than> 첫 번째 값이 두 번째 값보다 클 경우 TRUE를 보고하고, 첫 번째 값이 두 번째 값보다 작거나 같을 경우 FALSE를 보고합니다.
    VEXcode VR Greater Than 부울 블록, '100이 50보다 크다'를 읽습니다.
  • 두 값이 정확히 같으면 <Equal to> TRUE를 보고하고, 같지 않으면 FALSE를 보고합니다.
    VEXcode VR Equal To 부울 블록, '50은 50과 같음'을 읽습니다.

비교 블록은 소수, 정수 또는 숫자 블록을 허용할 수 있습니다. 또한 (Distance from) 블록과 같은 원형 리포터 블록도 허용합니다. (거리) 블록은 프로젝트에서 거리 센서를 사용할 때 비교 블록과 함께 사용할 수 있습니다.

이 예에서 블록은 물체와 VR 로봇의 거리 센서 사이의 거리가 50밀리미터(mm) 미만인 경우 TRUE를 보고합니다.

VEXcode VR Less Than 부울 블록 안에 Distance From 블록이 들어 있으며, '전면 거리가 50밀리미터 미만'이라고 읽습니다.

  • <Less than> 부울 블록을 [대기] 블록으로 끌어다 놓습니다.
  • Boolean reporter 블록 안에 둥근 (Distance from) 블록을 놓으세요.
    이전 단계를 하나로 모은 VEXcode VR Blocks 프로젝트입니다. 이제 전체 프로젝트는 시작 시, 전진 주행, 전방 거리(밀리미터)가 50 미만이 될 때까지 대기로 읽힙니다. 빨간색 상자는 Less Than 부울 블록을 강조 표시합니다.
  • [Wait until] 블록은 조건이 충족되고 보고된 거리가 50밀리미터(mm) 미만이 될 때까지 VR 로봇이 계속 전진하도록 합니다. 그러면 프로젝트는 스택의 다음 블록인 [운전 중지] 블록으로 이동합니다.
    VEXcode VR Blocks 프로젝트의 논리 흐름을 시각화한 다이어그램입니다. 이 프로젝트는 앞으로 주행하는 것으로 시작하여, 전방 거리 센서의 거리가 밀리미터 단위로 50 미만이 될 때까지 명령을 유지합니다. 거리가 50 미만이 되면 주행 중지 블록이 앞으로 주행 명령을 종료합니다.
  • VR 로봇은 정지 지시를 받을 때까지 계속 주행하기 때문에 [대기] 블록 뒤에 [주행 중지] 블록이 필요합니다. 프로젝트에 [운전 중지] 블록을 추가합니다.
    VEXcode VR 블록은 Wait Until 블록 뒤에 Stop Driving 블록을 추가하여 이전에 프로젝트되었습니다. 이제 전체 프로젝트는 "운전을 시작하면 앞으로 주행하고 전방 거리(밀리미터)가 50 미만이 될 때까지 기다린 후, 주행을 중지합니다"로 변경되었습니다.
  • 아직 열려 있지 않으면 Wall Maze Playground 을 실행하고 프로젝트를 실행합니다.
  • VR 로봇이 벽 미로의 시작점에서 주행하다가 거리 센서가 벽과의 거리가 50밀리미터(mm) 이내라고 보고하면 멈추는 모습을 지켜보세요.
    VR 로봇의 시작 위치 근처에 A 문자 목표가 있는 벽 미로의 위에서 내려다본 모습. VR 로봇은 이제 블록 프로젝트의 결과로 발전했습니다.
  • [Wait until] 블록 안에 (Distance from) 블록이 있는 <Less than> 블록을 사용하여 VR 로봇이 벽으로부터 50밀리미터(mm) 이내로 떨어질 때까지 기다리도록 지시합니다.
  • VR 로봇을 시작 위치로 되돌리려면 놀이터를 재설정하세요.

스위치 블록 사용

이번 수업에서는 <Greater than>, <Less than>, <Equal to> 부울 블록에 대해 알아보았습니다. 아래 이미지는 Switch Boolean 비교 블록을 보여줍니다. Switch Boolean 블록이 의도한 대로 작동하려면 Switch Python 함수를 올바른 철자와 구두점으로 입력해야 합니다. 

Switch <Equal to> 블록은 두 개의 등호(==) 사용합니다. 파이썬에서 등호(=) 하나는 값의 할당을 나타내고(예: x = 10), 등호(==) 두 개는 두 값이 같은지 확인하기 때문입니다. Switch <Equal to> 블록을 사용할 때는 반드시 두 개의 등호를 사용하세요. 
세 개의 VEXcode VR 부울 블록과 해당 스위치 블록을 비교한 결과입니다. Less Than 블록은 Python에서 '25 < 50'으로 작성되고, Greater Than 블록은 Python에서 '100 > 50'으로 작성되며, Equal To 블록은 Python에서 '50 == 50'으로 작성됩니다. 마지막 예제에서 빨간색 상자는 두 개의 등호 기호를 강조하여 Python에서 두 값을 동일한 것으로 비교하는 방법을 보여줍니다.

또한 VR 로봇이 물체와의 거리가 50밀리미터(mm) 미만이 될 때까지 앞으로 주행하는 예제 프로젝트도 보았습니다. 그러면 VR 로봇이 멈춥니다. 오른쪽 프로젝트는 Switch 블록 내부의 해당 Python 명령을 보여줍니다. 명령while not front_distance.get_distance(MM) < 50로봇에게 보고된 거리가 물체로부터 50MM 미만인지 확인하라고 지시합니다.

다음 들여쓰기 코드 줄,wait (5, MSEC),코드를 5밀리초 동안 일시 중지합니다. 보고된 거리가 객체로부터 50MM 미만인지 확인하는 명령은 조건을 다시 확인하기 전에 5MSEC 동안 기다립니다. 

오른쪽의 Wait Until 블록이 스위치 블록으로 변환된 VEXcode VR 프로젝트와 비교한 모습입니다. 새로운 스위치 블록은 Python에서 'while not front_distance.get_distance(MM) < 50: wait(5, msec)'를 읽습니다.

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