Skip to main content

속도 탐색 - C++

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

  • 활동 개요
    이 탐구에서는 먼저 학생들에게 주행 속도 설정 방법을 소개한 다음, 로봇의 속도가 운동량에 어떤 영향을 미치는지 탐구해 보도록 합니다. 이 활동의 개요를 보려면 여기를 클릭하세요(Google / .docx / .pdf). 로봇의 운동량을 이해하는 것은 스트라이크 챌린지 볼링 게임에 적용하는 데 중요한 개념이 될 것입니다.

  • 학생들이 프로그래밍할 내용
    Speedbot(구동 장치 2개, 자이로 없음) 템플릿 프로젝트를 사용하면 학생들은 driveFor(1, 인치) 명령어에 setDriveVelocity(50, 퍼센트) 명령어를 추가하는 것만으로 Speedbot의 속도 설정을 변경할 수 있습니다. 활동의 안내 부분에서는 학생들이 Speedbot을 다양한 속도로 움직이고, 활동의 마지막 부분에서는 속도 프로그래밍 기술을 운동량과 에너지 전달 테스트에 적용하도록 요구합니다.

Speedbot은 다른 속도로 주행할 준비가 되었습니다!

이 조사를 통해 작업에 가장 적합한 속도로 주행하도록 Speedbot을 프로그래밍하는 방법에 대해 자세히 알아볼 수 있습니다. 마지막에 있는 스트라이크 챌린지에서는 스피드봇의 속도를 찾아야 합니다. 스피드봇이 좋은 각도와 큰 힘으로 공을 치기 위해서는 빠르고 큰 추진력을 가지지만 컨트롤을 유지할 수 있어야 합니다.

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

다음은 VEXcode V5의 사용자 인터페이스 개요입니다. 학생들은 Momentum Alley STEM 랩의 활동을 통해 이러한 탭/버튼을 소개받게 됩니다. STEM 랩 전체에 걸쳐 이러한 탭/버튼에 대한 자세한 정보를 제공하는 링크도 제공됩니다.

VEXcode V5 인터페이스

 

본 조사의 첫 번째 부분에서 사용되는 VEXcode V5 지침:

  • Drivetrain.setDriveVelocity (50, percent);
  • Drivetrain.driveFor (forward, 200, mm);
  • 지침에 대한 자세한 내용을 보려면 도움말을 선택한 다음 명령 옆에 있는 물음표 아이콘을 선택하여 자세한 정보를 확인하세요.

    Drive For 명령에 대한 VEXcode 도움말 메뉴. 오른쪽 상단에 있는 도움말 아이콘이 강조 표시되어 도움말 메뉴를 열기 위해 선택할 항목을 보여줍니다.

    필요한 하드웨어, 엔지니어링 노트북, VEXcode V5를 다운로드하여 준비하세요.

교사 팁 아이콘 교사 팁

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

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

각 그룹의 학생은 필요한 하드웨어와 그룹의 엔지니어링 노트북을 구해야 합니다. 그런 다음 VEXcode V5를 엽니다.

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

스피드봇 로봇

1

충전된 로봇 배터리

1

VEXcode V5

1

USB 케이블 (컴퓨터를 사용하는 경우)

1

엔지니어링 노트

1

볼 (축구공의 크기와 모양)

1

3m x 3m의 투명한 공간

1

미터 스틱 또는 눈금자

1

테이프 롤

1

데이터 테이블

교사 팁 아이콘 교사 팁

학생들에게 각 문제 해결 단계를 모델로 보여줍니다.

1단계: 탐사 준비

활동을 시작하기 전에 다음 각 항목을 준비하셨나요?

  • 모든 모터가 올바른포트에 연결되어 있습니까?

  • 스마트 케이블이 모든 모터에 완전히 삽입되어 있습니까?

  • 로 켜져 있나요?

  • 배터리충전되어 있나요?

2단계: 새 프로젝트 시작

프로젝트를 시작하려면 다음 단계를 완료하십시오.

 

 

교사 팁 아이콘 교사 팁

  • 프로젝트 이름에는 단어 사이 또는 뒤에 공백이 포함될 수 있습니다.

    도구 모음 중앙에 있는 프로젝트 이름은 빨간색 상자로 강조 표시되어 있으며 Drive Forward라고 적혀 있습니다.

  • 학생들에게 프로젝트 이름에 자신의 이니셜이나 그룹 이름을 추가하도록 요청할 수 있습니다. 학생들에게 프로젝트를 제출하도록 요청할 경우, 프로젝트를 구분하는 데 도움이 됩니다.
  • 이것은 학생들이 시도할 수 있는 첫 번째 프로그래밍 활동이므로, 단계를 모델링한 다음 학생들에게 동일한 작업을 완료하도록 요청해야 합니다. 그런 다음 교사는 학생들이 단계를 올바르게 따르고 있는지 모니터링해야 합니다.
  • 학생들이 파일 메뉴에서 예제 열기를 선택했는지 확인하세요.
  • 학생들이 Speedbot(구동계 2모터, 자이로 없음) 템플릿 프로젝트를 선택했는지 확인하세요.
  • 학생들에게 예시 페이지에서 선택할 수 있는 항목이 여러 개 있다는 점을 알려줄 수 있습니다. 학생들이 다른 로봇을 만들고 사용하면서 다양한 템플릿을 사용할 기회를 얻게 됩니다.
  • 프로젝트 이름DriveVelocity이제 도구 모음 중앙의 창에 있는지 확인하세요.

    프로젝트 이름은 도구 모음에서 드라이브 속도 를 읽고 슬롯 1이 선택됩니다.

교사 도구 상자 아이콘 교사 도구 상자 - 프로젝트 저장

  • VEXcode V5를 처음 열었을 때 창에 VEXcode 프로젝트라는 라벨이 붙어 있었다는 점을 지적하세요. VEXcode 프로젝트는 VEXcode V5를 처음 열었을 때 기본 프로젝트 이름입니다. 프로젝트 이름을 Drive로 변경하고 저장한 후 디스플레이가 업데이트되어 새 프로젝트 이름이 표시되었습니다. 도구 모음의 이 창을 사용하면 학생들이 올바른 프로젝트를 사용하고 있는지 쉽게 확인할 수 있습니다.

  • 학생들에게 이제 첫 번째 프로젝트를 시작할 준비가 되었다고 말하세요. 학생들에게 몇 가지 간단한 단계만 따르면 Speedbot을 발전시킬 프로젝트를 만들고 실행할 수 있다고 설명하세요.

  • 학생들에게 작업하는 동안 프로젝트를 저장하도록 상기시켜 주세요. VEX 라이브러리의C++섹션에서는 VEXcode V5의 저장 방법을 설명합니다.

교사 도구 상자 아이콘 교사 도구 상자 - 멈추고 토론하기

이 시점에서 잠시 멈춰 학생들에게 VEXcode V5에서 개별적으로 또는 그룹으로 새 프로젝트를 시작하기 위해 방금 완료한 단계를 검토하게 하는 것이 좋습니다. 학생들에게 그룹이나 전체 학급에서 공유하기 전에 개인적으로 생각해 보라고 하세요.

3단계: 다른 속도로 150mm 앞으로 구동

이제 다양한 속도로 전진하도록 로봇을 프로그래밍할 준비가 되었습니다!

  • 프로그래밍을 시작하기 전에 명령이 무엇인지 이해해야 합니다. 지침에는 세 부분이 있습니다. 

    C + + 명령은 구성 요소로 세분화됩니다. Drivetrain은 장치로 레이블이 지정되고, Drive for는 명령으로 레이블이 지정되며, forward, 100 및 mm는 매개변수로 집합적으로 레이블이 지정됩니다.

교사 팁 아이콘 교사 팁

명령어를 입력하기 시작하면 자동완성 기능이 나타날 수 있습니다. "위쪽" 및 "아래쪽" 키를 사용하여 원하는 이름을 선택한 다음 키보드의 "Tab" 또는 (Enter/Return) 키를 눌러 선택합니다. 이 기능에 대한 자세한 내용은C++문서를 확인하세요.

왼쪽에는 명령의 드라이브트레인 부분이 입력된 hiVEXcode V5가 표시되고, 오른쪽에는 해당 명령에 대한 자동완성 옵션의 스크롤 가능 목록이 표시됩니다.

  • 프로젝트에 지침을 추가하여 프로젝트가 다음과 같이 표시되도록 합니다.

    int main () {
      //로봇 구성 초기화. 삭제하지 마세요!
      vexcodeInit ();
      
      //프로젝트 코드 시작
      Drivetrain.driveFor (forward, 150, mm);
      Drivetrain.setDriveVelocity (25, percent);
      Drivetrain.driveFor (forward, 150, mm);
      Drivetrain.setDriveVelocity (75, percent);
      Drivetrain.driveFor (forward, 150, mm);
    
    }

교사 팁 아이콘 교사 팁

두 번째와 세 번째 명령어(29행과 30행)는 네 번째와 다섯 번째 명령어(31행과 32행)와 동일하지만 속도 매개변수가 다르다는 점에 유의하세요. 세 번째 지침을 추가한 후, 학생들은 29행과 30행을 강조 표시하고 그 아래에 있는 행을 복사하여 붙여넣어 31행과 32행을 만들 수 있습니다. 그런 다음 31번 라인의 속도를 75%로 변경할 수 있습니다.

  • 슬롯 아이콘을 선택하여 로봇 브레인에서 사용 가능한 8개의 슬롯 중 하나를 선택하고 슬롯 1을 선택합니다.

    슬롯 메뉴가 있는 VEXcode V5 도구 모음이 프로젝트 이름의 왼쪽에 열립니다. 드롭다운 메뉴에는 1부터 8까지 사용 가능한 모든 슬롯이 나열됩니다. 첫 번째 슬롯은 빨간색 상자로 강조 표시됩니다.

     

  • 마이크로 USB 케이블을 사용하여 V5 Robot Brain을 컴퓨터에 연결하고 V5 Robot Brain의 전원을 켭니다. 연결이 성공적으로 이루어지면 도구 모음의 Brain 아이콘이 녹색로 바뀝니다.

    컨트롤러와 다운로드 아이콘 사이에 있는 녹색 두뇌 아이콘 주위에 빨간색 상자가 있는 VEXcode V5 도구 모음.

  • 다운로드선택하여 프로젝트를 Brain에 다운로드하세요.

    도구 모음의 빨간색 상자에서 녹색 두뇌 아이콘과 실행 및 중지 버튼 사이에 강조 표시된 아이콘을 다운로드합니다.

     

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

  • 학생들에게 로봇 브레인에서 USB 케이블을 분리하라고 상기시킵니다. 프로젝트를 실행하는 동안 로봇을 컴퓨터에 연결하면 로봇이 연결 케이블을 잡아당길 수 있습니다.

  • 로봇 브레인의 화면을 보고 프로젝트가 다운로드되었는지 확인하세요(C++). 프로젝트 이름 DriveVelocity는 슬롯 1에 나열되어야 합니다.

    V5 브레인 홈 화면은 드라이브 아이콘 바로 아래의 왼쪽 하단 모서리에 있는 슬롯 1에 드라이브 속도 프로그램을 표시합니다.

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

  • 멈추고 토론하기
    학생들에게 이 프로젝트를 다운로드하여 Speedbot 로봇에 실행하면 어떤 일이 일어날지 예측해 보라고 합니다. 학생들에게 예측 결과를 공학 노트에 기록하라고 지시하세요. 시간이 허락한다면 각 그룹에게 예측을 공유해 달라고 요청하세요.

    학생들은 Speedbot이 먼저 기본 속도(50%)로 전진한 다음, 기본 속도보다 느리게(25%), 그리고 기본 속도보다 빠르게(75%) 이동할 것이라고 예측해야 합니다.

  • 먼저 모델을 만듭니다.
    모든 학생이 한꺼번에 시도하기 전에 학급 앞에서 프로젝트를 진행하는 모델을 만듭니다. 학생들을 한곳에 모으고, 스피드봇이 바닥에 놓여 있다면 움직일 수 있을 만큼 충분한 공간을 남겨두세요.

    학생들에게 이제 그들이 프로젝트를 진행할 차례라고 말하세요. 스피드봇들이 서로 부딪히지 않고 이동할 수 있는 길이 확보되어 있는지 확인하세요.

  • 로봇에서 프로젝트를 선택했는지 확인한 다음 로봇 브레인에서실행버튼을 눌러 프로젝트를 실행(C++)합니다. 첫 번째 프로젝트를 생성하신 것을 축하드립니다!

    드라이브 속도 프로그램이 열리고 맨 왼쪽의 실행 버튼 주위에 빨간색 상자가 있는 V5 두뇌 화면. Run 오른쪽에는 Timed Run, Match 및 Wiring 버튼이 있습니다.

4단계: 150mm 동안 다른 속도로 전진 및 후진 주행

로봇이 다른 속도로 전진하도록 프로그래밍했으므로 이제 다른 속도로 전진하고 반대로 전진하도록 프로그래밍하십시오.

  • 두 번째드라이브의 매개변수를 변경하여명령어를 반대로 하면 프로젝트는 다음과 같습니다.

    int main () {
      //로봇 구성 초기화. 삭제하지 마세요!
      vexcodeInit ();
      
      //프로젝트 코드 시작
      Drivetrain.driveFor (forward, 150, mm);
      Drivetrain.setDriveVelocity (25, percent);
      Drivetrain.driveFor (reverse, 150, mm);
      Drivetrain.setDriveVelocity (75, percent);
      Drivetrain.driveFor (forward, 150, mm);
    
    }
  • 프로젝트 이름을 선택하여 DriveVelocity에서 ReverseVelocity로 변경합니다.

    VEXcode V5의 프로젝트 이름 대화 상자는 Reverse Velocity를 읽고 슬롯 1이 선택되었음을 보여줍니다.

  • 새 슬롯을 선택하려면 슬롯 아이콘을 선택하십시오. 슬롯 2를 선택합니다.

    VEXcode V5의 슬롯 선택은 슬롯 2가 선택된 상태에서 열리고 빨간색 상자로 강조 표시됩니다.

  • 프로젝트를 다운로드하세요(C++).

    녹색 두뇌 아이콘 왼쪽과 실행 및 중지 버튼 오른쪽에 빨간색 상자가 강조 표시된 VEXcode V5의 도구 모음에서 다운로드 버튼.

  • 로봇 브레인의 화면을 보고 프로젝트가 다운로드되었는지 확인하세요(C++). 프로젝트 이름 ReverseVelocity는 Slot 2에 나열되어야 합니다.

    V5 Brain Home Screen은 Slot 1의 Drive 프로젝트 옆에 있는 하단 행의 왼쪽에서 두 번째 아이콘인 Slot 2의 Reverse Velocity 프로젝트를 보여줍니다.

  • 로봇에서 프로젝트를 선택했는지 확인한 다음 로봇 브레인에서실행버튼을 눌러 로봇에서 프로젝트를 실행(C++)합니다.

    역속도 프로젝트가 열리고 실행 버튼이 맨 왼쪽의 빨간색 상자에 강조 표시된 V5 뇌 화면. Run 오른쪽에는 Timed Run, Match 및 Wiring 버튼이 있습니다.

교사 도구 상자 아이콘 교사 도구 상자 - 4단계 완료

  • driveFor명령을forward에서reverse로 변경하려면 첫 번째 매개변수를 reverse로 변경하기만 하면 됩니다. 이렇게 하면 구동계의 모터가 반대 방향으로 움직입니다.
  • mm 수는 변경할 수 있지만, 이 예에서는 이전 단계에서 설정한 150mm로 두겠습니다.
  • 프로젝트를 실행하기 전에 학생들에게 로봇 브레인에서 USB 케이블을 분리하도록 상기시켜 주세요.
  • 학생들에게 작업하는 동안 프로젝트를 저장하도록 상기시켜 주세요. VEX 라이브러리에는 VEXcode V5의 저장 관행을 설명하는C++섹션이 있습니다.

교사 팁 아이콘 교사 팁

필요하다면 각 팀에게 테스트 구역과 공을 공유하도록 요청하지만, 각자 공을 따로 둔 테스트 구역을 여러 개 마련할 수도 있습니다. 시험 장소를 스스로 설정할지, 아니면 학생들이 설정하도록 할지 결정하세요.

5단계: 테스트 영역 설정

수평 눈금을 따라 0cm, 50cm, 100cm, 150cm, 200cm, 250cm 및 3m로 표시된 거리를 나타내는 균등하게 이격된 수직선을 보여주는 다이어그램

테스트 영역 레이아웃 예시

  • 테이프와 미터 스틱을 사용하여 위 이미지에 표시된 수평선처럼 바닥에 3m 선을 만듭니다.
    • 라인이 생성된 후 테이프와 미터 스틱을 다시 한 번 사용하여 위의 이미지의 수직선처럼 3m 라인에 걸쳐 1m 라인을 생성합니다. 0cm에서 시작하여 수직선의 50cm마다 1m 선을 테이프로 붙입니다.
    • 더 짧은 수평선은 더 긴 수직선에 중심을 두어야 합니다.
  • 영역을 설정하는 동안 한두 명의 팀원이 Momentum이라는 새 프로젝트를 생성해야 합니다. 속도를 50% 로 설정하고 Speedbot 드라이브를 첫 번째 라인으로 50cm 앞으로 이동시킵니다. 1cm = 10mm이므로 로봇이 50cm 또는 500mm 앞으로 이동합니다.

교사 도구 상자 아이콘 교사 도구 상자 - 왜 이 활동을 하나요?

  • 데이터 수집 및 분석, 심지어 간단한 패턴 인식까지도 기본적인 과학 기술입니다. 이 활동은 흔히 발생하는 실수를 방지하여 데이터 분석에 구조를 추가합니다.

  • 이 설명서에는 학생들에게 로봇의 속도를 변화시키는 것과 함께 로봇의 주행 거리를 변화시키라는 내용이 없다는 점에 유의하세요. 이는 과학자들이 변수 제어 전략이라고 부르는 것을 의도적으로 적용한 것입니다. 초보 조사자에게 한 번에 한 가지 변수(이 경우 속도)를 조작하여 두 번째 변수(충돌 후 공이 이동하는 거리)에 미치는 영향을 파악하는 방법을 가르치는 것은 중요합니다. 왜냐하면 이 방법은 학생들이 추측과 확인 방식보다 자발적으로 채택할 만한 방법이 아니기 때문입니다. 전형적인 추측-확인 방식은 종종 한 번에 두 개 이상의 변수를 조작(즉, 속도와 로봇의 이동 거리를 모두 변경)하고 회전 후 공이 이동하는 거리에 미치는 합류점의 영향을 관찰합니다. 이 활동은 변수 간의 관계가 모호해지기 때문에 학생들이 그런 것에서 벗어나도록 안내합니다. 공이 더 멀리 가는 이유는 로봇의 속도가 빠른 것, 로봇이 더 멀리 주행하는 것, 아니면 둘 다 때문일까요? 두 변수를 동시에 조작하면 이 질문에 답할 수 없습니다.

  • 하지만 팀은 자발적으로 로봇을 다른 거리로 운전해 볼 수도 있습니다. 이러한 현상이 관찰되면 원래 500mm 거리를 두고 실험했을 때와 마찬가지로 속도는 그대로 유지하면서 거리만 바꾸도록 요청하세요. 이런 식으로 로봇의 주행 거리가 공의 이동 거리에 영향을 미치는지 확인하기 위해 동일한 속도를 다른 주행 거리와 비교할 수 있습니다.

6단계: 충돌 시 에너지 전달 테스트

왼쪽에 있는 로봇이 수평 눈금으로 0cm 위치에 있고 공이 50cm 표시에 놓여 있는 것을 보여주는 도표입니다. 수직선은 0cm에서 3m까지 50cm 간격으로 그립니다.

로봇과 공이 있는 볼링 챌린지 테스트 구역

공을 수평선 50cm에 맞추고 로봇의 앞면이 수평선 0cm에 맞도록 로봇을 배치합니다. 로봇의 앞면이 볼의 방향을 향하도록 하십시오. 속도를 50%로 설정한 첫 번째 Momentum 프로젝트를 실행하고 로봇이 공과 충돌할 때 주의 깊게 관찰하세요.

이 데이터 표에 설정된 속도, 이동 거리, 공이 이동한 거리를 기록하세요(Google / .pdf). 표의 첫 번째 행은 이전 단계에서 작업한 Momentum 프로젝트를 기반으로 시작되었습니다. 다른 속도를 설정하면서 이 표에 데이터를 계속 추가하십시오. 그런 다음 다른 팀의 데이터를 추가하여 조사 결과를 토론할 수 있습니다.

교사 팁 아이콘 교사 팁

  • 공이 다양한 방향으로, 다양한 거리로 튀어 오를 수 있도록 공간을 준비하세요. 필요에 따라 문 및/또는 창문을 닫으세요.

  • 속도 탐구 표는 아래에서 저장할 수 있고, 학생들은 공학 노트에서 표를 다시 만들 수도 있습니다.

  • 팀 엔지니어링 노트북을 평가하기 위한 기준은 여기에서 찾을 수 있습니다(Google / .docx / .pdf). 개별 노트북을 평가하기 위한 기준은 여기에서 찾을 수 있습니다(Google / .docx / .pdf). 학생의 작업을 평가 기준에 따라 평가하려는 경우, 프로젝트 작업을 시작하기 전에 반드시 학생과 평가 기준을 공유하세요.

스피드봇이 구동하는 거리, 스피드봇의 속도 설정, 공이 이동한 거리라는 세 개의 열이 있는 테이블입니다. 스피드봇이 구동한 거리 아래의 첫 세 행은 500mm로 채워지고, 스피드봇의 속도 설정 아래의 첫 행은 50% 로 채워지고, 볼이 이동한 거리 열은 비어 있습니다.

데이터를 수집할 때 엔지니어링 노트에 있는 아래 질문에 대해 생각하고 응답하십시오.

  • 충돌 중에 로봇의 운동량이 공에 에너지를 전달했는지 어떻게 알 수 있습니까? 자세한 내용을 설명하세요.
  • 최소 두 번 더 테스트를 반복하십시오. 50% 미만의 속도를 시도하십시오. 볼을 제 위치에 리셋하고 볼이 얼마나 멀리 이동하는지 테이블에 기록합니다. 또한 50% 이상의 속도를 시도하십시오. 볼을 제 위치에 리셋하고 볼이 얼마나 멀리 이동하는지 테이블에 기록합니다.
  • 모든 그룹이 세 가지 테스트를 완료하면 다른 그룹이 선택한 속도와 테스트에서 공이 얼마나 이동했는지에 대해 논의하십시오. 팀이 데이터를 공유할 때 조사 결과를 테이블에 추가하세요.
  • 데이터에서 패턴을 찾습니다. 설정된 속도가 증가함에 따라 볼이 이동하는 거리가 증가하거나 감소합니까?

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

  1. 공의 움직임은 로봇이 충돌하는 동안 에너지를 전달했다는 증거입니다. 학생들은 충격 후 공의 속도나 이동 방향을 증거로 설명할 수도 있습니다.

  2. 공이 이동하는 거리는 사용된 공의 질량/무게와 로봇에 설정된 속도에 따라 달라집니다.

  3. 학생들은 속도가 높을수록 공이 낮은 속도보다 더 멀리 날아간다는 것을 알아야 합니다. 이것을 로봇의 운동량과 명확하게 연결하세요. 로봇의 무게는 변하지 않고 속도만 변한다는 점을 강조하고, 둘 다 로봇의 운동량에 영향을 미친다는 점을 강조합니다. 로봇이 더 무거우면 공이 그만큼 멀리 날아갈 것 같냐고 물어보세요. 아마도 그럴 것이다. 다음 자료에서는 충돌 시 공의 질량이 미치는 영향에 대해 더 자세히 설명합니다.

  4. 학생 그룹은 매우 다양한 속도를 선택했을 수 있지만, 전반적인 학습 목표는 학생들이 더 높은 속도가 더 큰 운동량으로 이어지고, 이는 충돌 시 공에 더 많은 에너지를 전달한다는 것을 인식하는 것입니다.