Skip to main content

두뇌 화면에 두 번째 버튼 추가 - 블록 기반

교사 도구 상자 아이콘 교사 도구 상자 - 이 활동의 목적

이제 학생들은 뇌의 화면을 하나의 큰 버튼처럼 다루는 경험을 쌓았으므로, 화면을 두 개의 버튼으로 바꿀 수 있습니다. 이 활동에서는 학생들에게 중첩된 [If then else] 블록을 사용하여 조건문을 보다 효과적으로 관리하고 그렇게 하는 기본 논리를 소개할 것입니다. 학생들은 먼저 화면을 눌러 로봇을 좌우로 돌리는 프로젝트를 만드는 과정을 안내받습니다. 하지만 로봇을 왼쪽으로 돌렸던 버튼이 오른쪽으로 돌도록, 그리고 그 반대로 버튼을 바꾸라는 요청을 받습니다.

이 활동에서 사용되는 [If then][If then else] 블록이나 기타 블록에 대한 자세한 내용은 VEXcode V5 내의 도움말 정보를 참조하세요. 이 내장된 도움말 도구에 대한 자세한 내용을 보려면 여기를 클릭하세요.

이 활동에서 학생들이 할 일은 다음과 같습니다.

  • StopOrDrive프로젝트와 픽셀 단위로 나타낸 뇌 화면의 레이아웃을 검토합니다.

  • 프로그래밍 추론에 대한 지침을 받으면서 새로운LeftOrRight프로젝트를 빌드합니다.

  • 화면의 버튼이 반대로 작동하도록 프로젝트를 수정합니다.

  • 학습 확장: 화면을 두 개의 버튼으로 나누어 누르면 로봇이 좌우로 회전합니다.

필요한 재료:
수량 필요한 재료
1

VEX V5 교실 스타터 키트(최신 펌웨어 포함)

1

VEXcode V5(최신 버전, Windows, macOS, Chromebook)

1

엔지니어링 노트

1

이전 재생 페이지의 StopOrDrive 프로젝트

교사 도구 상자 아이콘 교사 도구 상자

이 섹션의 교수 전략에 대한 제안을 보려면 '해야 할 일 또는 하지 말아야 할 일 진행 가이드'의 전달 컬럼을 검토하세요! (Google 문서 / .docx / .pdf)

뇌의 화면에는 두 개 이상의 버튼이 있을 수 있습니다.

이 활동을 통해 로봇이 뇌 화면의 어느 쪽을 누르는지에 따라 앞으로 주행하고 왼쪽이나 오른쪽으로 회전하도록 프로그래밍할 수 있습니다.

이 활동 중에 필요한 세 가지 추가 블록 유형은 다음과 같습니다.

도구 상자에서 VEXcode V5 블록 - 오른쪽으로 설정된 턴 블록; 연산자 미만; x로 설정된 화면 위치.

VEXcode V5 내부의 도움말 정보를 사용하여 블록에 대해 알아볼 수 있습니다. 도움말 기능 사용에 대한 지침은 도움말 사용 튜토리얼을 참조하세요.

튜토리얼 아이콘을 가리키는 빨간색 화살표가 있는 VEXcode V5 도구 모음. 튜토리얼은 V5 로고, 지구본 아이콘 및 FIle 바로 뒤에 있습니다.

 

1단계: StopOrDrive 프로젝트를 검토하는 것으로 시작하겠습니다.

StopOrDrive 프로젝트에서는 화면을 누르면 Clawbot이 멈추고, 누르면 앞으로 주행하도록 했습니다.
전체 화면은 하나의 큰 버튼이었지만, 다음 프로젝트에서는 화면의 절반을 하나의 버튼으로, 나머지 절반을 다른 버튼으로 만들고 싶습니다.

이전 강의에서 프로젝트 중지 또는 추진하기. 프로젝트는 연결된 Forever 블록이 있는 WHEN STARTED 블록으로 시작합니다. FOREVER BLOCK 내부에는 화면을 누르면 운전을 중지하고 화면을 누르지 않을 때까지 기다리라고 읽는 if then 블록이 있습니다. 그렇지 않으면 앞으로 운전하세요.

화면을 두 개의 버튼으로 나누려면 화면 레이아웃에 대해 자세히 알아야 합니다.

V5 Brain 화면의 픽셀 그리드는 왼쪽을 따라 12개의 번호가 매겨진 행을 표시하며, 상단 행은 행 1로, 하단 행은 행 12로 표시됩니다. 맨 위에는 48개의 번호가 매겨진 열이 있으며, 맨 왼쪽에는 1열 레이블이 있고 맨 오른쪽에는 48열 레이블이 있습니다. 총 픽셀 측정값은 너비 480픽셀 x 높이 240픽셀입니다.

  • 열의 수가 왼쪽에서 오른쪽으로 증가합니다. 열 수는 48개이고 화면 너비는 480픽셀입니다.
  • 공학 노트에 화면의 x 값이 왼쪽에서 오른쪽으로 측정된 픽셀 수와 같다고 적어 둡니다.
  • 화면 중앙의 x값은 얼마입니까? 이 활동에서는 왼쪽과 오른쪽 버튼만 있으면 되기 때문에 x축에만 집중할 수 있습니다.

교사 도구 상자 아이콘 교사 도구 상자 - 답변

화면 중앙의 x 값은 화면 너비의 절반(픽셀)과 같습니다. 따라서 중심점의 x값은 240입니다. 학생들은 화면을 왼쪽이나 오른쪽으로 눌렀는지에 대한 조건을 프로그래밍하기 위해 이 숫자가 필요합니다. 따라서 모든 값이 올바른지 꼭 확인하세요.

앞으로 Rethink 섹션의 사용자 인터페이스 챌린지에서는 학생들에게 지금까지 배운 내용을 적용하여 화면에 4개의 버튼을 만들어야 합니다. 그러기 위해서는 x값과 y값이 모두 필요합니다.

교사 팁 아이콘 교사 팁

이 지침에서는 필요에 따라 학생들이 VEXcode V5 내의 튜토리얼을 사용하도록 안내합니다. 추가 지원이 필요한 경우VEX 라이브러리의 보충 도움말 문서를 참조하세요.

2단계: 두 개의 버튼에 대한 프로그래밍

  • StopOrDriveLeftOrRight프로젝트로 저장합니다.
  • 프로젝트 열기, 이름 지정 또는 저장에 도움이 필요한 경우 VEXcode V5의 튜토리얼을 시청하세요.

VEXcode V5 툴바의 프로젝트 이름 대화 상자는 왼쪽 또는 오른쪽으로 읽습니다. 슬롯 3이 왼쪽으로 선택되고 툴바가 오른쪽으로 저장됨 으로 표시됩니다.

  • 아래에서 프로젝트를 빌드하세요. 화면을 누르면 Clawbot이 왼쪽이나 오른쪽으로 회전합니다.

VEXcode V5 프로젝트는 포에버 블록이 첨부된 시작 블록으로 시작하며, Inside the forever 루프는 다른 블록이 있는 경우 중첩됩니다. 첫 번째 if else 블록의 If 분기는 If 화면을 누릅니다. If branch 내부에 중첩된 if else 블록은 If screen x position less than 240을 읽은 다음 좌회전하여 화면이 눌리지 않을 때까지 기다립니다. 그렇지 않으면 우회전하여 화면이 눌리지 않을 때까지 기다립니다. 외부 ELS 브랜치에는 드라이브 포워드 블록이 포함되어 있습니다.

교사 도구 상자 아이콘 교사 도구 상자 - 중첩된 If Then Else 블록을 사용하는 이유는 무엇입니까?

프로젝트의 골격(제어 블록만 해당)에는 중첩 블록이 포함됩니다. [Forever] 루프 내부의 [If then else] 블록과 [If then else] 블록 내부의 [If then else] 블록이 포함됩니다. 이 방법은 필요 이상으로 복잡해 보일 수 있는데, 대신 순차적인 [If then] 블록을 사용할 수 있기 때문입니다. 하지만 연속적인 [If then] 블록을 사용하는 것은 좋은 프로그래밍 방식이 아닙니다.

왼쪽에서 오른쪽으로 세 가지 코딩 구조가 표시됩니다. 왼쪽의 구조에는 빨간색 x가 표시되어 있는데, 이는 중첩된 if then 블록에 문제가 있음을 나타냅니다. 가운데에는 중첩된 if then else 블록을 보여주는 빈 C 블록 구조가 있습니다. 오른쪽에서는 구조가 채워져 있어 동일한 동작을 더 간단한 형태로 완성할 수 있음을 보여줍니다.

왼쪽의 거부된 프로젝트는 LeftOrRight 프로젝트의 순차적 조건부 버전입니다. 화면을 누르고 x값이 240보다 작으면 클로봇이 왼쪽으로 회전합니다. 화면을 누르고 x값이 240보다 크면 클로봇이 오른쪽으로 회전합니다. 이 프로젝트의 문제점은 두 가지 조건이 모두 참일 위험이 있다는 것입니다. 순차적인 [If then] 블록을 사용할 때마다 프로젝트 내에서 버그가 발생할 위험이 있습니다. 왜냐하면 참인 조건문이 두 개 이상 있을 수 있기 때문입니다. 버그로 인해 예측이 불가능합니다.

가운데에는 LeftOrRight 프로젝트의 골격이 있고, 오른쪽에는 조건문과 Drivetrain 블록이 삽입된 프로젝트가 나와 있습니다. 이 버전의 프로젝트에서는 논리가 약간 다릅니다. 화면을 누르면 x 값이 240보다 작거나(좌회전) 240보다 작지 않습니다(우회전). 거기에는 또 다른 조건문이 필요하지 않습니다. 화면을 누르면 240보다 작거나 그렇지 않습니다. 우리가 관심을 가져야 할 버튼은 두 개뿐입니다. 오른쪽 프로젝트는 아직 완료되지 않았습니다.

학생들은 프로젝트에 대한 이 두 가지 접근 방식의 차이점을 이해해야 합니다. 기본 논리의 차이점을 이해하는 것은 프로그래머를 개발하는 데 큰 도움이 될 것입니다.

왼쪽 또는 오른쪽 프로젝트는 레이블이 지정된 프로젝트의 블록 기능으로 세분화됩니다. FOREVER 및 OUTER if screen pressed 분기 레이블이 표시됩니다. 화면이 눌렸는지 계속 확인합니다. 화면을 누를 때 내부 if 분기가 레이블이 지정되면 왼쪽 또는 오른쪽인지 확인합니다. 다음 좌회전 블록 레이블이 표시됩니다. 프레스가 왼쪽 (240 미만) 에 있는 경우, 좌회전합니다. 블록에 레이블이 지정될 때까지 기다림은 계속하기 전에 화면을 더 이상 누르지 않을 때까지 기다립니다. 우회전 블록은 프레스가 왼쪽이 아닌 경우 (240 미만), 우회전으로 표시됩니다. 블록에 레이블이 지정될 때까지 다음 기다림은 계속하기 전에 화면을 더 이상 누르지 않을 때까지 기다립니다. 드라이브 포워드 블록이 있는 외부 ELS 분기는 화면을 누르지 않으면 포워드 드라이브로 레이블이 지정됩니다.

  • 이 프로젝트가 무엇을 하는지 살펴보겠습니다.

    화면이 눌렸는지 계속 확인합니다. 화면이 눌리지 않으면 앞으로 이동하고, 눌렸다면 화면이 눌린 위치를 확인합니다.

    왼쪽(240 미만)을 눌렀다면 왼쪽으로 회전합니다. 그렇지 않으면 우회전합니다. X 값이 240보다 큰 경우를 위한 다른 조건이 필요하지 않습니다. 240보다 작지 않은 경우 (좌회전) 더 커야 하기 때문입니다 (우회전). 걱정해야 할 버튼은 두 개뿐입니다.

    각 턴 후제어 블록이 화면을 더 이상 누르지 않을 때까지 프로젝트를 기다린 후 계속 진행합니다.

다운로드 버튼 주위에 빨간색 상자가 있는 VEXcode V5의 도구 모음. 아이콘은 왼쪽에서 오른쪽으로, 컨트롤러, 두뇌, 다운로드, 실행, 중지 및 공유를 읽습니다.

  • 이제 프로젝트가 완료되었으므로 다운로드하여 실행하여 작동 방식을 테스트합니다.
  • 도움이 필요하시면 VEXcode V5에서 프로젝트 다운로드 및 실행 튜토리얼 동영상을 시청하세요.
  • 버튼이 Clawbot의 움직임을 제어하는 방법에 대해 엔지니어링 노트에 기록합니다.

교사 팁 아이콘 교사 팁

테스트하는 동안 학생들은 Clawbot 뒤에서 사용자 인터페이스를 사용하면 반대로 작동하는 것처럼 보인다는 것을 알아야 합니다. 사용자 관점에서 볼 때, 클로봇은 사용자가 누르는 쪽에서 멀어집니다. 이는 최적의 사용자 경험이 아닙니다.

Clawbot 뒤에서 앞으로 이동할 때 화면의 버튼을 누를 때 화면 오른쪽을 누르면 왼쪽으로, 화면 왼쪽을 누르면 오른쪽으로 회전합니다. 이는 좋은 사용자 경험이 아닙니다. 사용자 경험은 사용자가 사용자 인터페이스와 얼마나 잘 상호 작용하여 컴퓨터 시스템을 제어할 수 있는지를 나타냅니다. 이 랩의 적용 섹션에서 사용자 인터페이스에 대한 자세한 내용을 확인할 수 있습니다.

이 경우 사용자 경험을 개선하기 위해 사용자 인터페이스를 개선해야 합니다.

왼쪽 또는 오른쪽 VEXcode V5 프로젝트. VEXcode V5 프로젝트는 포에버 블록이 첨부된 시작 블록으로 시작하며, Inside the forever 루프는 다른 블록이 있는 경우 중첩됩니다. 첫 번째 if else 블록의 If 분기는 If 화면을 누릅니다. If branch 내부에 중첩된 if else 블록은 If screen x position less than 240을 읽은 다음 좌회전하여 화면이 눌리지 않을 때까지 기다립니다. 그렇지 않으면 우회전하여 화면이 눌리지 않을 때까지 기다립니다. 외부 ELS 브랜치에는 드라이브 포워드 블록이 포함되어 있습니다.

  • LeftOrRight 프로젝트를 검토하고 사용자가 Clawbot 뒤에서 버튼을 누르면 사용자가 화면의 왼쪽을 누르면 로봇이 우회전하도록 수정합니다. 그렇지 않으면 Clawbot이 좌회전합니다.
  • 엔지니어링 노트북에서 이 프로젝트를 계획, 테스트 및 반복하여 프로젝트가 Clawbot을 사용자가 Clawbot 뒤에서 누르고 있는 화면 측면으로 전환하도록 합니다.

교사 도구 상자 아이콘 교사 도구 상자

학생들은 엔지니어링 노트북에 이를 기록하면서 프로젝트에 대한 이러한 변경 사항을 계획, 테스트하고 개선해야 합니다. 개별 엔지니어링 노트북 평가 기준에 대해 다음 링크 중 하나를 클릭하세요(Google Doc / .docx / .pdf), 또는 팀 노트북에 대해 다음 링크 중 하나를 클릭하세요(Google Doc / .docx / .pdf). 학생들에게 작업을 시작하기 전에 점수 계산 방법을 설명하는 것을 잊지 마세요.

교사 도구 상자 아이콘 교사 도구 상자 - 솔루션

위에 제기된 문제를 해결하는 데는 두 가지 방법이 있습니다. 첫 번째 방법은 설명서에 적힌 방법입니다. LeftOrRight 프로젝트를 검토하고 사용자가 Clawbot 뒤에서 버튼을 누를 때 사용자가 화면 왼쪽을 누르면 로봇이 오른쪽으로 회전하도록 수정합니다. 그렇지 않으면 클로봇은 왼쪽으로 돈다.

VEXcode V5 샘플 솔루션은 forever 블록이 첨부된 When started 블록으로 시작합니다. forever 블록 안에는 중첩된 If then else 블록이 있습니다. 바깥쪽 if then else 블록은 화면을 눌렀다면; 그렇지 않으면 계속 진행한다는 내용을 읽습니다. If 분기에서 if then else 블록은 화면 x 위치가 240보다 작으면 오른쪽으로 돌고, 그렇지 않으면 왼쪽으로 돌라고 읽습니다.

다른 해결책은 Operator 블록을 전환하여 x 값이 240보다 클 때 Clawbot이 왼쪽으로 회전하도록 하는 것입니다.

VEXcode V5 샘플 솔루션은 forever 블록이 첨부된 When started 블록으로 시작합니다. forever 블록 안에는 중첩된 If then else 블록이 있습니다. 바깥쪽 if then else 블록은 화면을 눌렀다면; 그렇지 않으면 계속 진행한다는 내용을 읽습니다. If 분기에서 if then else 블록은 화면 x 위치가 240보다 크면 좌회전하고, 그렇지 않으면 오른쪽으로 회전합니다.

토론 아이콘 동기 부여 토론을 촉진하다

x 값이 240(화면 왼쪽)보다 작을 때 조건문을 프로그래밍할 때는 좌표 평면의 좌표를 사용해야 했습니다. 두뇌 화면에 시각적 버튼을 그리려면 좌표도 사용해야 합니다.
V5 로봇 두뇌 화면의 좌표가 표시된 2단계로 돌아갑니다.

V5 Brain 화면의 픽셀 그리드는 왼쪽에 12개의 번호가 매겨진 행을 표시하며, 맨 위 행은 행 1, 맨 아래 행은 행 12로 표시됩니다. 맨 위에는 48개의 번호가 매겨진 열이 있는데, 맨 왼쪽에는 열 1이, 맨 오른쪽에는 열 48이 표시되어 있습니다. 총 픽셀 크기는 너비 480px, 높이 240px입니다.

Q:화면 오른쪽 가장자리의 x 값은 무엇입니까?
A:x 값은 왼쪽 가장자리의 0에서 오른쪽 가장자리의 480까지 증가합니다.

Q:따라서 x 값의 범위는 480(0~480)입니다. y 값의 범위는 무엇입니까?
A:y 값의 범위는 240(0~240)입니다.

Q:이 좌표 평면의 원점(0, 0)은 어디에 있습니까?
A:원점은 왼쪽 위입니다.

Q:y 값이 0일 때 화면 맨 위에 있습니다. 이게 왜 특이한 걸까요?
A:일반적으로 y값은 위로 갈수록 증가하지만, V5 화면에서는 아래로 갈수록 y값이 증가합니다. 하지만 화면 왼쪽 상단의 원점(0, 0)에서 멀어질수록 y 값이 증가하는 것으로 생각할 수 있습니다.

학습 확장 아이콘 학습을 확장하세요

Rethink 섹션의 사용자 인터페이스 챌린지에서 학생들은 Clawbot의 발톱과 팔을 제어하기 위해 화면에 4개의 버튼을 만드는 프로젝트를 개발해야 합니다. 이 과제에서는 화면에 네 개의 버튼이 표시되도록 요청합니다. 이전 페이지와 마찬가지로 이 학습 확장은 해당 과제에 대비하는 데 도움이 됩니다. 과제에는 프로그래밍할 버튼이 4개 있지만 이 과제에는 2개만 있기 때문입니다.

학생들이 프로그램에 이벤트를 추가하여 프로젝트가 실행될 때 화면에 보이는 버튼 2개가 나타나도록 합니다. 학생들에게 이벤트 및 모양 블록, 특히 [사각형 그리기] 블록에 대한 정보를 알아보려면 VEXcode V5의 도움말 기능을 사용하라고 제안합니다. [사각형 그리기] 블록에서 픽셀 수를 기준으로 뇌의 화면이 좌표계로 어떻게 구성되는지 살펴보도록 학생들에게 지시합니다. 해당 블록 내에서 매개변수를 설정하려면 이를 이해해야 합니다. 또한, 이벤트를 방송하는 방법을 이해해야 합니다. 이 경우 이벤트는 버튼을 그리는 것입니다.

학생들은 엔지니어링 노트북에 이를 문서화하는 동시에 프로젝트에 대한 이러한 변경 사항을 계획, 테스트하고 개선해야 합니다. 개별 엔지니어링 노트북 평가 기준의 경우 다음 링크 중 하나를 클릭하세요(Google 문서 / .docx / .pdf), 또는 팀 노트북의 경우 다음 링크 중 하나를 클릭하세요(Google 문서 / .docx / .pdf).

다음은 예시 솔루션입니다.

두 개의 블록 스택을 나란히 배치한 VEXcode V5 샘플 솔루션입니다. 왼쪽의 스택은 시작 시 블록으로 시작하고, 시작 시 블록과 영원히 루프 사이에 왼쪽 또는 오른쪽 프로젝트의 맨 위에 추가된 브로드캐스트 그리기 버튼 블록을 보여줍니다. 오른쪽 스택은 When I receive Draw Button 이벤트 블록으로 시작하여 Brain에서 채우기 색상을 녹색으로 설정, 사각형 0, 0, 240, 240 그리기, Brain에서 채우기 색상을 보라색으로 설정, Brain에서 사각형 240, 0, 480, 240 그리기라는 내용의 Looks 블록 4개가 이어집니다.

더욱 전문적이고 사실적인 경험을 위해 학생들에게 두 가지 색상 선택에 대한 피드백을 요청해 보세요.
선택한 색상이 인터페이스를 사용하고 싶게 만드는가, 아니면 사용자 입장에서 어떤 색상을 선호할까?
훌륭한 사용자 인터페이스를 개발하는 과정의 일부는 사용자 경험, 심지어 미적 선호도에 대한 데이터를 수집하는 것입니다.