프로그래밍 드라이브 포워드 및 리버스 - 파이썬
교사 도구 상자
개요
이 탐구를 통해 학생들에게 기본적인 전진, 후진, 대기 프로그래밍 동작을 소개합니다. 이러한 기본 기술은 학생들이 Speedbot을 사용하여 병원 바닥을 탐색할 때 이 STEM 랩의 마지막에 있는 Automed Challenge에서 성공하는 데 도움이 될 것입니다.
V5 Speedbot(구동계 2모터, 자이로 없음) 템플릿 프로젝트를 사용하면 학생들은 단 하나의 명령어만으로 Speedbot이 전진하도록 프로그래밍할 수 있습니다.
스피드봇이 움직일 준비가 되었습니다!
이 탐색을 통해 간단한 이동을 위해 스피드봇을 프로그래밍할 수 있는 도구를 얻을 수 있습니다. 이 활동이 끝나면 전진, 후진 및 대기 동작을 사용하여 농구 훈련 챌린지에 참여하게 됩니다.
교사 도구 상자
다음은 VEXcode V5의 사용자 인터페이스 개요입니다. 학생들은 이 Medbot STEM 랩의 활동을 통해 이러한 탭/버튼을 소개받게 됩니다. STEM 랩 전체에 걸쳐 이러한 탭/버튼에 대한 자세한 정보를 제공하는 링크도 제공됩니다.

- 이 탐색에 사용되는 VEXcode V5 지침:
- driveetrain.drive_for (FORWARD, 200, MM)
- wait (1, seconds)
-
지침에 대한 자세한 내용을 보려면 도움말을 선택한 다음 명령 옆에 있는 물음표 아이콘을 선택하여 자세한 정보를 확인하세요.

- 필요한 하드웨어, 엔지니어링 노트북 및 VEXcode V5를 다운로드하여 준비하십시오.
교사 팁
학생이 VEXcode V5를 처음 사용하는 경우, 탐색하는 동안 언제든지 튜토리얼을 참조할 수 있습니다. 튜토리얼은 도구 모음에 있습니다. 
| 수량 | 필요한 재료 |
|---|---|
| 1 |
스피드봇 로봇 |
| 1 |
충전된 로봇 배터리 |
| 1 |
VEXcode V5 |
| 1 |
USB 케이블 (컴퓨터를 사용하는 경우) |
| 1 |
엔지니어링 노트 |
교사 팁
학생들에게 각 문제 해결 단계를 모델로 보여줍니다.
1단계: 탐사 준비
활동을 시작하기 전에 다음 각 항목을 준비하셨나요? 다음 각 사항을 확인하세요.
- 모터가 올바른포트에 연결되어 있습니까?
- 스마트 케이블모든 모터에 완전히되어 있습니까?
- 뇌로 켜져 있나요?
- 배터리충전되어 있나요?
2단계: 새 프로젝트 시작
프로젝트를 시작하려면 다음 단계를 완료하십시오.
-
파일 메뉴를 열고 예제 열기 를 선택합니다.

-
Speedbot (Drivetrain 2-motor, No Gyro) 템플릿 프로젝트를 선택하고 엽니다. 템플릿 프로젝트에는 Speedbot의모터 구성포함되어 있습니다. 템플릿을 사용하지 않으면 로봇이 프로젝트를 올바르게 실행하지 못합니다.

- Speedbot을 앞뒤로 움직이는 작업을 하게 되므로 프로젝트 이름을Drive지정합니다. 프로젝트 이름을 클릭하고 드라이브 입력한 후 저장을 선택합니다.

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

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

교사 도구 상자
-
프로젝트 저장
-
VEXcode V5를 처음 열었을 때 창에 VEXcode 프로젝트라는 라벨이 붙어 있었다는 점을 지적하세요. VEXcode 프로젝트는 VEXcode V5를 처음 열었을 때 기본 프로젝트 이름입니다. 프로젝트 이름을 Drive로 변경하고 저장한 후 디스플레이가 업데이트되어 새 프로젝트 이름이 표시되었습니다. 도구 모음의 이 창을 사용하면 학생들이 올바른 프로젝트를 사용하고 있는지 쉽게 확인할 수 있습니다.
-
학생들에게 이제 첫 번째 프로젝트를 시작할 준비가 되었다고 말하세요. 학생들에게 몇 가지 간단한 단계만 따르면 Speedbot을 발전시킬 프로젝트를 만들고 실행할 수 있다고 설명하세요.
-
학생들에게 작업하는 동안 프로젝트를 저장하도록 상기시켜 주세요. VEX 라이브러리의 Python 섹션에서는 VEXcode V5의 저장 방법을 설명합니다.
교사 도구 상자
-
멈추고 토론하기
이 시점에서 잠시 멈춰 학생들에게 VEXcode V5에서 개별적으로 또는 그룹으로 새 프로젝트를 시작하기 위해 방금 완료한 단계를 검토하게 하는 것이 좋습니다. 학생들에게 그룹이나 전체 학급에서 공유하기 전에 개인적으로 생각해 보라고 하세요.
3단계: 전진하세요
이제 앞으로 나아갈 수 있도록 로봇 프로그래밍을 시작할 준비가 되었습니다!
-
프로그래밍을 시작하기 전에 명령이 무엇인지 이해해야 합니다. 지침에는 세 가지 부분이 있습니다. VEXcode V5 Python의 코드 색상 지정에 대한 자세한 내용은 이 문서를 하세요.

-
프로젝트에 지침을 추가하면 프로젝트가 다음과 같이 표시됩니다.
# VEX 가져오기에서 라이브러리 가져오기 * # 프로젝트 코드 시작 driveetrain.drive_for (FORWARD, 100, MM)
교사 팁
명령어를 입력하기 시작하면 자동완성 기능이 나타날 수 있습니다. "위쪽" 및 "아래쪽" 키를 사용하여 원하는 이름을 선택한 다음 키보드의 "Tab" 또는 (Enter/Return) 키를 눌러 선택합니다. 이 기능에 대한 자세한 내용은 Python 문서를 확인하세요.

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

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

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

교사 도구 상자
- 학생들에게 로봇 브레인에서 USB 케이블을 분리하라고 상기시킵니다. 프로젝트를 실행하는 동안 로봇을 컴퓨터에 연결하면 로봇이 연결 케이블을 잡아당길 수 있습니다.
교사 도구 상자
-
멈추고 토론하기
학생들에게 이 프로젝트를 다운로드하여 Speedbot에 실행하면 어떤 일이 일어날지 예측해 보라고 합니다. 학생들에게 예측 결과를 공학 노트에 기록하라고 지시하세요. 시간이 허락한다면 각 그룹에게 예측을 공유해 달라고 요청하세요.
-
로봇 브레인의 화면을 보고 프로젝트가 다운로드되었는지 확인하세요(Python). 프로젝트 이름 드라이브는 슬롯 1에 나열되어야 합니다.

교사 도구 상자
-
모델 우선
- 모든 학생이 한꺼번에 시도하기 전에, 먼저 학급 앞에서 프로젝트를 진행하는 모델을 만드세요. 학생들을 한곳에 모으고, 스피드봇이 바닥에 놓여 있다면 움직일 수 있을 만큼 충분한 공간을 남겨두세요.
- 학생들에게 이제 그들이 프로젝트를 진행할 차례라고 말하세요. 스피드봇들이 서로 부딪히지 않고 이동할 수 있는 길이 확보되어 있는지 확인하세요.
-
로봇에서 프로젝트를 실행하려면 프로젝트가 선택있는지 확인한 다음브레인에서실행버튼을 누릅니다. 첫 번째 프로젝트를 생성하신 것을 축하드립니다!

4단계: 후진 주행
로봇이 앞으로 주행하도록 프로그래밍했으므로 이제 반대로 주행하도록 프로그래밍하겠습니다.
-
드라이브 명령어의 매개변수를 FORWARD, 대신 REVERSE로 변경하면 프로젝트가 다음과 같이 표시됩니다.
# VEX 가져오기에서 라이브러리 가져오기 * # 프로젝트 코드 시작 driveetrain.drive_for (REVERSE, 100, MM) -
드라이브에서 역방향으로 변경할 프로젝트 이름을 선택합니다 .

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

-
프로젝트를 다운로드하세요(Python).

-
로봇 브레인의 화면을 보고 프로젝트가 다운로드되었는지 확인하세요(Python). 프로젝트 이름 역방향은 슬롯 2에 나열되어야 합니다.

-
로봇에서 프로젝트를 실행하려면 프로젝트가 선택있는지 확인한 다음브레인에서실행버튼을 누릅니다.

교사 도구 상자
-
4단계 완료
-
drive_for명령을forward에서reverse로 변경하려면 첫 번째 매개변수를 REVERSE로 변경하기만 하면 됩니다. 이렇게 하면 구동계의 모터가 반대 방향으로 움직입니다.
-
mm 수는 변경할 수 있지만, 이 예에서는 이전 단계에서 설정한 100mm로 두겠습니다.
-
프로젝트를 실행하기 전에 로봇 브레인에서 USB 케이블을 분리하도록 상기시켜 주세요.
-
학생들에게 작업하는 동안 프로젝트를 저장하도록 상기시켜 주세요. VEX 라이브러리의 Python섹션에서는 VEXcode V5의 저장 방법을 설명합니다.
5단계: 기다린 후 후진 주행
이제 로봇이 앞으로 주행하도록 프로그래밍한 다음 역으로 대기 지침을 추가하여 로봇이 역으로 주행하기 전에 일정 시간을 기다리도록 할 수 있습니다.
- Drive_for 명령 앞에 대기 명령을 추가합니다. 대기가 drive_ for 명령과 일치하도록 들여쓰기되고 모든 명령이 "프로젝트 코드 시작" 코멘트 아래에 있는지 확인하십시오. 이렇게 하면 로봇이 역주행하기 전에 3초 동안 기다리라는 메시지가 표시됩니다.
-
wait (3, SECONDS) drivingetrain.drive_for (REVERSE, 100, MM) -
프로젝트 이름을 선택하여 역방향에서 WaitReverse로 변경합니다.

-
새 슬롯을 선택하려면 슬롯 아이콘을 선택하십시오. 슬롯 3을 선택합니다.
-
프로젝트를 다운로드하세요(Python).

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

-
프로젝트가 선택되었는지 확인한 다음실행버튼을 눌러 로봇에서 프로젝트를 실행(Python)합니다.

교사 도구 상자
-
5단계 완료
- wait 명령을 사용해도 프로젝트는 종료되지 않고 로봇의 움직임만 일시 정지합니다.
- 학생들이 컴퓨터를 사용하는 경우, 프로젝트를 실행하기 전에 Robot Brain에서 USB 케이블을 분리하도록 상기시켜 주세요.
- 학생들에게 작업하는 동안 프로젝트를 저장하도록 상기시켜 주세요. VEX 라이브러리의 Python 섹션에서는 VEXcode V5의 저장 방법을 설명합니다.
6단계: 농구 훈련 챌린지를 완료하세요!

농구 훈련 챌린지 레이아웃
농구 훈련 챌린지에서 로봇은 서로 다른 거리에서 일련의 선을 탐색할 수 있어야 합니다. 로봇은 시작 위치에서 10cm 떨어진 첫 번째 라인으로 이동한 다음 1초 동안 기다렸다가 같은 라인으로 되돌아갑니다. 그런 다음 로봇은 두 번째 라인까지 20cm 앞으로 이동하여 작업을 반복하고 1초간 기다린 다음 원래 시작 라인까지 뒤로 이동합니다. 로봇은 40cm 거리를 두고 세 번째 줄까지 전진한 후 1초간 기다린 후 마지막으로 시작선으로 돌아와 챌린지를 완료합니다.
로봇을 프로그래밍하기 전에 엔지니어링 노트북에 로봇의 경로와 동작을 계획하세요.
농구 챌린지를 완료한 후에는 전진 및 후진 동작을 추가 로봇 동작과 결합하여 더욱 고급 챌린지를 완료할 수 있습니다.
1cm = 10mm를 프로그래밍할 때 명심하십시오.
교사 도구 상자
-
솔루션
아래에서 샘플 솔루션을 확인하세요.
# 라이브러리 가져오기
from vex import *
# 프로젝트 코드 시작
# 10cm 전진
drivetrain.drive_for(FORWARD, 100, MM)
# 1초간 대기
wait(1, SECONDS)
# 시작 라인으로 후진
drivetrain.drive_for(REVERSE, 100, MM)
# 20cm 전진
drivetrain.drive_for(FORWARD, 200, MM)
# 1초간 대기
wait(1, SECONDS)
# 시작 라인으로 후진
drivetrain.drive_for(REVERSE, 200, MM)
# 40cm 전진
drivetrain.drive_for(FORWARD, 400, MM)
# 1초간 대기
wait(1, SECONDS)
# 시작 라인으로 후진
구동계.구동_용(역방향, 400, MM)
교사 도구 상자
-
멈추고 토론하기
학생들에게 전체 학급에서 논의하기 전에 짝을 지어 해결책을 공유하도록 요청하세요. 다음과 같은 질문을 통해 토론을 촉진하세요.
- 이 챌린지를 프로그래밍하면서 어려움을 겪었나요?
- 프로젝트를 기반으로 로봇이 예상한 대로 동작했나요? 왜 그럴까? 아니면 왜 그렇지 않을까?
- 도전을 다시 할 수 있다면 다르게 했을 것이 있나요?