Skip to main content

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

이 활동은 화면을 누르지 않는 한 로봇이 앞으로 나아갈 수 있도록 while 및 if 문장을 사용하는 학생들을 소개합니다.

  • 이 활동은 화면을 누르지 않는 한 로봇이 앞으로 구동하는 조건부 및 지침을 학생들에게 소개합니다.

  • 이 활동에 사용된 문장  또는 기타 문장에 대한 자세한 내용은 VEXcode V5의 도움말 정보를 참조하세요. 이 기본 제공 도움말 도구에 대한 자세한 내용은 C + + 의 도움말에 대한 도움말을 참조하세요 .

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

이 섹션에 대한 교육 전략에 대한 제안은 할 일 또는 하지 말아야 할 일 페이싱 가이드의 전달 열을 검토하십시오! (Google Doc / .docx / .pdf)

Clawbot은 결정을 내릴 준비가 되었습니다!

이 탐색을 통해 if else 문을 사용하는 멋진 프로젝트를 만들 수 있는 도구를 얻을 수 있습니다.

  • 이 탐색에 사용될 VEXcode V5 C + + 명령: 
    • Drivetrain.drive (앞으로);
    • Brain.Screen.pressing ()
    • Drivetrain.stop ();
    • if (condition) {}
    • waitUntil ();
    • while (condition) {}  
    • wait (1, seconds);

VEXcode V5 내부의 도움말 정보를 사용하여 C + + 지침에 대해 알아볼 수 있습니다.

명령용 드라이브가 있는 VEXcode V5가 왼쪽의 작업 공간에 입력되고 오른쪽에 도움말 정보가 열립니다. 도움말은 명령의 정의와 사용 방법에 대한 정보를 보여줍니다.

필요한 하드웨어, 엔지니어링 노트북 및 VEXcode V5가 준비되어 있는지 확인하십시오.

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

VEX V5 클래스룸 스타터 키트 (최신 펌웨어 포함)

1

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

1

엔지니어링 노트

1

Clawbot (Drivetrain 2-motor, No Gyro) 템플릿

교사 팁 아이콘 교사 팁

학생이 VEXcode V5를 처음 사용하는 경우, 이 탐색 중에 언제든지 튜토리얼을 참조할 수 있습니다. 튜토리얼은 툴바에 있습니다.

튜토리얼 아이콘이 빨간색 상자에 강조 표시된 VEXcode V5 도구 모음. 왼쪽의 도구 모음에는 V5 아이콘, 지구본 아이콘, 파일, 튜토리얼이 표시됩니다. 오른쪽에는 추가 아이콘과 기능이 있습니다.

1단계: 조건문에 대한 이해부터 시작하겠습니다. 

조건으로 프로그래밍을 시작하기 전에 If Then Else 문에 대한 설명이 있는 VEX 라이브러리 문서를 읽으십시오. 이 기사는 여기에서 찾을 수 있습니다.

VEXcode V5에서 if-else 문 사용 이라는 제목의 기사를 보여주는 VEX 라이브러리의 스크린샷. If Then Else 문에서 사용할 연산자 목록은 부울에 대해 설명하는 VEX 라이브러리 문서를 참조하십시오. 이 글은 여기 에서 확인하실 수 있습니다.VEXcode V5에서 부울 사용 이라는 제목의 기사를 보여주는 VEX 라이브러리의 스크린샷.

2단계: 조건문으로 프로그래밍을 시작하겠습니다.

  • Clawbot (Drivetrain 2-motor, No Gyro) 템플릿 예시 프로젝트를 엽니다.

    상단의 Templates 필터와 Clawbot drivingetrain 2 motor no gyro 프로젝트 주위에 빨간색 상자가 있는 VEXcode V5의 예제 프로젝트 선택은 열어야 할 템플릿을 나타냅니다.

     

  • 아래에서 프로젝트를 빌드하세요.
//프로젝트 코드
int main () {
  //로봇 구성 초기화. 삭제하지 마세요!
  vexcodeInit ();

  while (true) {
    Drivetrain.drive (forward);
    if (Brain.Screen.pressing ()) {
      Drivetrain.stop ();
      waitUntil (! Brain.Screen.pressing ();
    }    
  }  
}  

엔지니어링 노트에서 다음을 수행합니다.

  • Clawbot이 수행하는 프로젝트에 대해 설명합니다. 정지 버튼을 만든다는 사실보다 더 많은 것을 설명해야 합니다. Clawbot이 어떤 지침을 따르는지 설명합니다.
  • 프로젝트가 수행하는 작업을 한 문장으로 요약하여 작성하세요.
  • Clawbot이 수행하는 프로젝트에 대한 예측이 올바른지 테스트합니다.

VEXcode V5 도구 모음의 프로젝트 이름 대화 상자에서 중지 버튼 생성 을 읽고 슬롯 1이 선택되었음을 표시합니다.

  • 프로젝트를 Clawbot의 슬롯 1에 CreatingAStopButton으로 저장하고 다운로드한 다음 실행합니다.
  • 프로젝트 다운로드에 대한 도움말은 VEXcode V5의 프로젝트 다운로드 및 실행 방법 (C + +) 을 설명하는 튜토리얼을 참조하십시오.
  • 프로젝트에 대한 설명을 확인하고 필요에 따라 수정할 수 있도록 메모를 추가하십시오.

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

이 프로젝트에서는 로봇이 계속 앞으로 구동되지만 화면을 누르면 멈춥니다. 이를 위해 FOREVER 문을 사용하여 지속적으로 운행하고 확인합니다. 화면을 누르고 있으면 (TRUE) Clawbot이 운전을 멈춥니다.중지 버튼 만들기 프로젝트에는 목적이 표시된 명령이 표시됩니다. If 명령은 빨간색으로 동그라미 표시되고 레이블이 표시됩니다. 조건이 True인지 확인합니다. 화면을 누릅니다. Drivetrain dot stop 명령에는 Runs the block if true라는 레이블이 표시됩니다. 명령에 레이블이 지정될 때까지 기다리는 것은 처리 속도를 제어합니다.

학생들은 waitUntil () 명령이 왜 사용되는지 이해하지 못할 것으로 예상됩니다. 로봇의 프로그램 흐름 속도 때문에 waitUntil () 명령이 필요하다고 설명합니다. Clawbot이 없으면 Clawbot의 모터는 사용자가 프로젝트를 반복하면서 화면을 반복해서 누르는 것처럼 작동합니다. 대신 waitUntil () 명령은 프로그램 흐름을 중지하고 사용자가 화면을 누르지 않을 때까지 프로젝트가 forever 루프를 다시 시작하도록 하지 않습니다.

의사 코드 라인은 다음과 같이 간단할 수 있습니다. 화면을 누를 때까지 앞으로 구동하십시오.

학생들의 공학 공책은 개별적으로 (Google Doc / .docx / .pdf) 또는 팀으로 (Google Doc/ .docx / .pdf) 관리하고 채점할 수 있습니다. 이전 링크는 각 접근 방식에 대해 다른 채점표를 제공합니다. 채점표가 교육 계획에 포함될 때마다 채점표를 설명하거나 적어도 활동을 시작하기 전에 학생들에게 사본을 제공하는 것이 좋습니다.

3단계: wait until () 문장을 이해합니다.

Brain의 화면을 누르면 프로젝트의 흐름이 빠르게 이동하고 프로젝트가 다음 지침인 Drivetrain.stop () 지침으로 이동합니다.

따라서, 이 프로젝트는 뇌의 화면이 해제될 때까지 로봇이 정지 상태를 유지하도록 지시하는 waitUntil () 명령이 필요합니다. 그렇지 않으면 forever 문으로 인해 프로젝트가 다시 시작됩니다.

waitUntil (! Brain.Screen.pressing ());

프로젝트 흐름의 속도 때문에 waitUntil() 명령이 필요합니다. 프로젝트가 없다면 로봇이 응답할 시간을 갖기 전에 다음 지침으로 이동할 것입니다.

4단계: 프로젝트를 변경합니다.

다음 단계는 if then 문을  if then else 문으로 변경하는 것입니다.

VEXcode V5 도구 모음의 프로젝트 이름 대화 상자에서 중지 또는 드라이브를 읽고 슬롯 1이 선택되었음을 표시합니다.

  • CreatingAStopButton을 새 프로젝트인 StopOrDrive로 저장하여 시작하십시오.
  • 프로젝트를 저장하는 데 도움이 필요하면 C + + 의 경우 여기를 클릭하십시오.
  • 그런 다음 아래에 표시된 StopOrDrive 프로젝트를 빌드합니다.
//프로젝트 코드
int main () {
  //로봇 구성 초기화. 삭제하지 마세요!
  vexcodeInit ();

  while (true) {
    Drivetrain.drive (forward);
    if (Brain.Screen.pressing ()) {
      Drivetrain.stop ();
      waitUntil (! Brain.Screen.pressing ());
    } 
    else {
      Drivetrain.drive (forward);
    }   
  }  
}  
  •  Clawbot의 슬롯 2에 StopOrDrive를 다운로드합니다.

VEXcode V5 툴바의 슬롯 선택이 열리고 슬롯 2가 선택되어 빨간색 상자로 강조 표시됩니다. 프로젝트 이름에는 Stop 또는 Drive가 표시됩니다.

  • 프로젝트 다운로드에 대한 도움말은 VEXcode V5의 프로젝트 다운로드 및 실행 방법 (C + +) 을 설명하는 튜토리얼을 참조하십시오.
  • CreatingAStopButton  (Slot 1) 을 테스트한 다음 StopOrDrive (Slot 2) 를 테스트하고 로봇의 동작에 차이가 있는지 비교합니다. 엔지니어링 노트의 차이점에 주목하세요.

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

로봇의 동작과 관련하여 CreatingAStopButton과 StopOrDrive 프로젝트 사이에 차이가   없어야  합니다.

학생들이 If-Else Statement를 이해하는 데 추가 도움이 필요하면 여기를 클릭하십시오.

두 프로젝트는 Clawbot이 동일한 방식으로 작동하도록 합니다. 유일한 차이점은 StopOrDrive 프로젝트에서 if then else 문을 사용하는 것입니다.

 If then else 문을 사용하면 예정된 활동에서 화면에 추가 버튼을 추가할 수 있습니다.

학습 연장 아이콘 학습의 폭을 넓히세요

이 STEM Lab이 진행됨에 따라 학생들은 Clawbot의 화면이 사용자 인터페이스로 기능할 수 있는 프로젝트를 개발하게 됩니다. 이에 대비하여 학생들에게 버튼처럼 작동하는 색상의 직사각형을 화면에 그리는 방법을 찾아보라고 한다. 화면의 아무 곳이나 누르는 것이 현재 상태이므로 버튼이 전체 화면을 차지해야 합니다. 학생들은 프로젝트가 시작될 때 버튼을 그리기 위해 이벤트를 브로드캐스트하도록 해야 합니다
. 학생들에게 뇌의 화면이 어떻게 좌표계로 구성되어 있는지 먼저 배우도록 한다. 사용 설명서 내에서 매개변수를 설정하려면 이를 이해해야 합니다. 사용된 좌표는 열 또는 행의 수가 아닌 픽셀 수에 해당합니다. 화면 레이아웃은 다음과 같습니다.

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

학생들은 프로젝트에 대한 이러한 변경 사항을 계획, 테스트 및 수정하는 동시에 엔지니어링 노트에 기록해야 합니다. 개별 엔지니어링 전자 필기장 채점표의 경우 다음 링크 (Google Doc / .docx / .pdf) 중 하나를 클릭하거나 팀 전자 필기장에 대한 다음 링크 (Google Doc / .docx / .pdf) 중 하나를 클릭합니다. 해결책의 예는

다음과 같습니다.

//프로젝트 코드
이벤트 draw = event ();

void drawButton () {Brain.Screen.setFillColor
  (red); Brain.Screen.drawRectangle
  (0, 0, 480, 240);
  wait (1, seconds);
}

int main () {
  //로봇 구성 초기화. 삭제하지 마세요!
  vexcodeInit ();

  draw (drawButton);

  while (true) {
    draw.broadcast ();
    Drivetrain.drive (forward);
    if (Brain.Screen.pressing ()) {
      waitUntil (! Brain.Screen.pressing ());
    } 
    else {
      Drivetrain.drive (forward);
    }   
  }  
}  

보시다시피 (0, 0) 원점에서 시작하여 480개의 가로 (x축) 픽셀과 240개의 세로 (y축) 픽셀을 모두 채우기 위해 버튼이 그려집니다.