레슨 4: 객체 센서 코딩
지난 수업에서는 물체 센서에 대해 알아보고 디스크와 큐브의 반사율 백분율을 수집했습니다. 이제 해당 값을 사용하여 VEXcode에서 프로젝트를 빌드하여 객체 센서가 디스크를 감지하면 출구 컨베이어를 중지합니다.
이 수업에서 여러분은 다음을 배우게 됩니다.
- VEXcode에서 객체 센서를 구성합니다.
- VEXcode에서 비교 연산자를 사용하는 방법을 알아보세요.
- 객체 센서의 피드백을 사용하여 디스크를 진입 컨베이어에서 출구 컨베이어로 옮기는 프로젝트를 만듭니다.
이 수업을 마치면 이전 수업에서 배운 프로젝트를 바탕으로 물체 센서가 디스크를 감지하면 출구 컨베이어를 멈추는 방법을 익힐 수 있습니다.

프로젝트 편집
먼저, 4단원 2과 활동에서 만든 프로젝트를 편집하여 객체 센서와 관련된 명령을 추가할 준비를 합니다.
VEXcode EXP에서Unit 4 Lesson 2 Activity프로젝트를 열거나 여기에 표시된 프로젝트를 다시 만드세요.
프로젝트 이름을Unit 4 Lesson 4.변경하세요.

VEXcode에서 장치 창을 열고장치 추가를 선택하여 개체 센서를 구성합니다.

3-Wire선택하면 3-Wire 장치 목록이 열립니다.

그런 다음객체 센서를 선택하세요.

포트 A선택한 다음완료선택하여 구성을 완료합니다.
참고:객체 센서가 Brain의 포트 A에 연결되어 있는지 확인하세요.

프로젝트의 마지막 두 블록을 제거합니다. 이 영상에서 볼 수 있듯이, 여기에는 출구 컨베이어의대기블록과정지블록이 포함됩니다.
프로젝트에대기블록을 추가합니다.
Wait until블록은 스택의 다음 블록으로 이동하기 전에 부울 조건이 참으로 보고될 때까지 기다리는 블록입니다.

비교 연산자
이제블록이 프로젝트에 추가될 때까지 기다리기, 블록에서 검사할 조건을 추가해야 합니다.
이전에는 물체 센서에서 보고하는 반사율 백분율에 대해 알아보고 해당 값을 엔지니어링 노트북에 기록했습니다. 이 프로젝트에서는 값이 특정 임계값 이상일 때까지 출구 컨베이어를까지 실행해야 합니다. 임계값은 값이 허용 범위보다 높은지, 낮은지, 또는 허용 범위 내에 있는지를 판별하는 데 사용되는 것입니다. 비교 연산자를 사용하면 반사율이 특정 값보다 높은지, 또는 해당 임계값보다 높은지 확인할 수 있습니다.
의 육각형 공간에 보다 큰블록을 추가합니다.블록이 나올 때까지 기다립니다.

Greater than블록의 첫 번째 개구부에 반사율 블록을 추가합니다.

보다큰 블록은 첫 번째 값을 두 번째 값과 비교합니다. 현재 프로젝트에 있는 Greater than블록은 부울 값을True또는False로 선언하기 전에 객체 센서에서 보고된 반사율 백분율을 매개변수 '50'과 비교합니다.

이 프로젝트의 목표에 대해 생각해 보세요. 출구 컨베이어는 물체 센서가 물체를 감지할 때까지 회전해야 하며, 감지되면 컨베이어를 멈춰야 합니다. 이전 레슨에서 수집한 값을 이보다블록과 함께 사용하여 프로젝트가 스택의 다음 블록으로 이동하기 전에 초과해야 하는 임계값을 결정할 수 있습니다.
Greater than블록의 두 번째 매개변수를 '9'로 변경합니다.
이 숫자는 이전 수업 활동에서 수집한 값을 기반으로 합니다. 녹색 디스크가 물체 센서 아래에 있을 때 반사율이 10%로 보고되었으므로 이%보다 크면True으로 보고되어야 합니다.

프로젝트 끝에Stop블록을 추가합니다. 매개변수가 'ExitConveyor4'로 설정되어 있는지 확인하세요.

Brain이 VEXcode에 연결되어 있는지 확인하고 프로젝트를 다운로드하세요.

코드를 읽고 프로젝트가 실행될 때 컨베이어가 어떤 역할을 할지 예측해 보세요.
엔지니어링 노트에 예측 내용을 기록하세요.

진입 컨베이어에 녹색 디스크가 놓여 있는지 확인하세요. Brain에서 Check 버튼을 눌러 프로젝트를 실행하고 테스트하세요.
프로젝트가 진행되는 동안 컨베이어의 동작을 관찰하세요.

컨베이어의 움직임이 끝나면 Brain의 X 버튼을 눌러 프로젝트를 중지합니다. 엔지니어링 노트에 관찰 내용을 기록하세요.
예상대로 컨베이어가 움직였나요? 녹색 디스크가 의도한 대로 출구 컨베이어로 이동되었나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

프로젝트 검토
녹색 디스크가 객체 센서에 감지되었을 때 출구 컨베이어가 멈추는 이 프로젝트의 프로젝트 흐름을 살펴보겠습니다. Wait until블록은 조건이 TRUE로 보고될 때까지 프로젝트 진행을 일시 중지합니다.

스핀블록은 대기 블록이 아니므로 CTE 워크셀이 물체 센서의 값과 반사율이 9% 이상인지 확인하는 동안 컨베이어 모터를 계속 회전시킬 수 있습니다. Wait until블록의 조건이TRUE로 보고되면 프로젝트는 스택의 다음 블록으로 이동하여 Exit Conveyor 모터를 멈춥니다.
귀하의 정보를 위해
블록의 또 다른 조합은 객체가 객체 센서 아래에 있을 때 출구 컨베이어를 멈추기 위해 프로젝트에서 사용될 수 있습니다. 설정 감지 임계값블록은 프로젝트 시작 시 임계값을 설정하는 데 사용할 수 있으며, 위에서 빌드한 프로젝트에서보다 큼 블록이 사용한 것과 마찬가지입니다.

임계값이 설정되면 BooleanDetects object블록을 육각형 공간이 있는 모든 블록에서 사용할 수 있습니다. 이 블록은감지 임계값 설정블록에서 정의한 감지 임계값이 충족되면 TRUE를 보고하고, 반사율 백분율이 해당 임계값보다 낮으면 FALSE를 보고합니다.

감지객체블록은 부울 블록이므로대기블록에 바로 들어갈 수 있습니다.

이해도 확인
다음 수업으로 넘어가기 전에 엔지니어링 노트에 있는 다음 질문에 답하여 이 수업의 개념을 이해했는지 확인하세요.
이해도 확인 질문 > (Google Doc / .docx / .pdf)
다음 > 선택하여 모두 합치기 활동으로 넘어가세요.