클로 프로그래밍 - 파이썬
교사 도구 상자
개요
-
이 탐구를 통해 학생들은 V5 클로봇의 클로 모터에 대한 기본 프로그래밍을 배우게 됩니다.
-
클로 모터를 프로그래밍하는 법을 배우면 학생들은 V5 클로봇이 주변 환경에서 물체를 잡는 방식을 적절하게 제어할 수 있습니다.
V5 Clawbot을 파악할 준비가 되었습니다!
이 탐색을 통해 V5 Clawbot의 발톱을 사용하여 물체를 파악하는 멋진 프로젝트를 만들 수 있습니다.
- 이 탐색에 사용될 VEXcode V5 Python 명령은 다음과 같습니다.
- claw_motor.set_position (0, DEGREES)
- claw_motor.spin_for (FORWARD, 90, DEGREES)
- claw_motor.set_timeout (2, 초)
-
명령에 대한 자세한 내용을 보려면 명령 옆에 있는 물음표 아이콘을 선택하여 자세한 정보를 확인합니다.

- 필요한 하드웨어, 엔지니어링 노트북 및 VEXcode V5를 다운로드하여 준비하십시오.
| 수량 | 필요한 재료 |
|---|---|
| 1 |
VEX V5 클래스룸 스타터 키트 (최신 펌웨어 포함) |
| 1 |
VEXcode V5 |
| 1 |
엔지니어링 노트 |
| 1 |
Clawbot 및 Advanced TrainingBot(드라이브트레인 2모터, 자이로 없음) 예제 프로젝트 |
| 1 |
알루미늄 캔 |
1단계: 탐험 준비하기
활동을 시작하기 전에 다음 각 항목을 준비하셨나요? 다음 각 사항을 확인하세요.
-
모터가 올바른 포트에 연결되어 있습니까?
-
스마트 케이블모든 모터에 완전히되어 있습니까?
-
배터리충전되어 있나요?
교사 팁
학생들에게 각 문제 해결 단계를 모델로 보여줍니다.
2단계: 새 프로젝트 시작
프로젝트를 시작하기 전에 올바른 템플릿 프로젝트를 선택하십시오. Clawbot과 Advanced TrainingBot(Drivetrain 2-motor, No Gyro) 예제 프로젝트에는 Clawbot의 모터 구성이 포함되어 있습니다. 템플릿을 사용하지 않으면 로봇이 프로젝트를 올바르게 실행하지 못합니다.
다음 단계를 완료한다.
- 파일 메뉴를 엽니다.
- 선택열기예.
- Clawbot과 Advanced TrainingBot(Drivetrain 2-motor, No Gyro) 예제 프로젝트를 선택하여 엽니다.
- 클로를 제어하기 위한 프로그래밍을 하게 되므로 프로젝트 이름을ClawControl바꾸세요.
- 프로젝트를저장하세요.
- 이제 프로젝트 이름 ClawControl이 도구 모음 중앙의 창에 있는지 확인하십시오.
교사 팁
- 이것은 프로그래밍의 시작 활동이므로, 교사는 단계를 모델로 보여준 다음 학생들에게 동일한 동작을 완료하도록 요청해야 합니다. 그런 다음 교사는 학생들이 단계를 올바르게 따르고 있는지 모니터링해야 합니다.
- 학생들이 파일 메뉴에서 예제 열기를 선택했는지 확인하세요.
- 학생들이 Clawbot과 Advanced TrainingBot(Drivetrain 2-motor, No Gyro) 예제 프로젝트를 선택했는지 확인하세요. 학생들에게 예제 페이지에서 선택할 수 있는 항목이 여러 개 있다는 점을 알려줄 수 있습니다. 학생들이 다른 로봇을 만들고 사용하면서 다양한 템플릿을 사용할 기회를 얻게 됩니다.
- 학생들에게 프로젝트 이름에 자신의 이니셜이나 그룹 이름을 추가하도록 요청할 수 있습니다. 학생들에게 프로젝트를 제출하도록 요청할 경우, 프로젝트를 구분하는 데 도움이 됩니다.
교사 도구 상자
-
멈추고 토론하기
여기서 잠시 멈춰서 학생 그룹이 VEXcode V5에서 새 프로젝트를 시작하기 위해 방금 완료한 단계를 검토해 보는 것이 좋습니다.
3단계: V5 Claw를 열도록 프로그래밍
이제 발톱을 열도록 프로그래밍하는 것부터 시작하겠습니다!
# vex
가져오기에서 라이브러리 가져오기 *
# 프로젝트 코드 claw_motor.set_position
(0, DEGREES) 시작- 프로그래밍 영역에서 위에 표시된 대로claw_motor.set_position()명령을 작성하여 클로의 시작 위치를 설정합니다.
claw_motor.set_position (0, DEGREES)
claw_motor.set_timeout (2, SECONDS)- 위에 표시된 대로claw_motor.set_timeout()명령을 추가합니다.
- 이 명령어는claw_motor.spin_for()명령보다 앞에 나타납니다. 그 목적은 Claw 모터가 작동할 수 있는 시간을 설정하고 그 시간 이후에 정지시키는 것입니다. 따라서 모터가 60도까지 움직이지 않더라도 프로젝트는 2초가 지나면 Claw 모터를 정지시킵니다.
claw_motor.set_position (0, DEGREES)
claw_motor.set_timeout (2, SECONDS)
claw_motor.spin_for (REVERSE, 60, DEGREES)- 위에 표시된 대로claw_motor.spin_for()명령을 작성하여 클로를 60도 엽니다.
- 사용 가능한 모든 프로젝트 슬롯을 열고 원하는 슬롯을 선택하려면 상자 모양의 1 아이콘을 선택하여 V5 로봇 두뇌에서 프로젝트가 다운로드될 슬롯을 선택하십시오.
- 로봇을 컴퓨터나 태블릿에 연결합니다. 연결이 성공적으로 이루어지면 도구 모음의 Brain 아이콘이 녹색로 바뀝니다.
- 장치 정보 아이콘 옆에 있는 다운로드 아이콘을 클릭하여 프로젝트를 V5 로봇 브레인에 다운로드합니다.

- ClawControl 프로젝트가 선택한 슬롯의 뇌에 다운로드되었는지 확인하십시오.
교사 도구 상자
-
모델 우선
모든 학생이 한꺼번에 시도하기 전에, 먼저 학급 앞에서 프로젝트를 진행하는 모델을 만드세요. 학생들을 한곳에 모으고 클로봇의 발톱을 모두가 볼 수 있는 위치에 놓습니다. 한 번 이상 시연할 계획이라면, 시연 사이에 클로를 살짝 밀어 닫아주면 됩니다.
학생들에게 이제 그들이 프로젝트를 진행할 차례라고 말하세요.
- Clawbot에서 프로젝트를하려면 프로젝트가 선택되어 있는지 확인한 다음 실행 버튼을 누릅니다. 발톱 이동을 위한 첫 번째 프로젝트를 생성하신 것을 축하드립니다!
4단계: 시도: V5 클로 닫기
이제 클로가 열리도록 프로그래밍했으므로 클로가 닫히도록 프로그래밍합니다.

이제 발톱을 열 수 있으므로 발톱도 닫아야 합니다.
- ClawControl 프로젝트로 돌아가서claw_motor.spin_for()명령추가하여 Claw Motor가 30도 동안 닫히도록 합니다. 발톱은 원래 60도 동안 열려 있기 때문에 발톱의 절반을 닫아야 합니다.
- ClawControl 프로젝트를 다운로드하고 실행하여 수정된 프로젝트에 발톱이 60도 동안 열려 있고 30도 동안 닫혀 있는지 테스트합니다.
교사 도구 상자
-
솔루션
이전에는 클로가 60도까지 열렸습니다. 해당 프로젝트에는 모터 타임아웃 지침이 포함되었는데, 조작기의 움직임이 어떤 식으로든 제한될 수 있는 조작기에 전원을 공급할 때 타임아웃을 설정하는 것이 중요한 관행이기 때문입니다. 타임아웃을 설정하면 모터의 불필요한 마모를 방지할 수 있습니다.
이 단계의 솔루션은 다음과 같습니다.
# 프로젝트 코드 시작
claw_motor.set_position(0, DEGREES)
claw_motor.set_timeout(2, SECONDS)
claw_motor.spin_for(REVERSE, 60, DEGREES)
claw_motor.spin_for(FORWARD, 30, DEGREES)
5단계: 시도: 여러 동작 순서 지정

발톱으로 집는 모든 것이 같은 크기인 것은 아닙니다. 동작 범위를 따라 발톱을 다른 위치로 열어보세요.
- 모터를 회전하여 다음을 수행합니다.
- 70도까지 개방
- 20도 동안 닫기
- 10도까지 열림
- 30도로 닫기
- 25도 동안 닫기
- 클로 모터가 0도에서 시작하면 프로젝트가 끝날 때 클로 모터가 몇 도 열려 있습니까?
- 클로 모터를 닫은 상태에서 시작하십시오.
교사 도구 상자
-
솔루션
이 단계에 대한 해결책은 아래와 같습니다.
프로젝트가 끝날 때 Claw Motor는 여전히 5도 열려 있습니다. 70 - 20 = 50 --> 50 + 10 = 60 --> 60 - 30 = 30 --> 30 - 25 = 5도.
# 프로젝트 코드
시작 # Claw의 현재 위치를 0으로 설정합니다.
claw_motor.set_position(0, DEGREES)
# Claw의 시간 제한을 설정합니다.
claw_motor.set_timeout(2, SECONDS)
claw_motor.spin_for(REVERSE, 70, DEGREES)
claw_motor.spin_for(FORWARD, 20, DEGREES)
claw_motor.spin_for(REVERSE, 10, DEGREES)
claw_motor.spin_for(FORWARD, 30, DEGREES)
claw_motor.spin_for(FORWARD, 25, DEGREES)
6단계: Lock Tight Challenge 완료

락 타이트 챌린지
- Clawbot이 측면을 부수지 않고 빈 12온스 알루미늄 캔에 발톱을 단단히 닫도록 프로그래밍하십시오.
- Clawbot이 팔을 45도 올리거나 내리는 동안 캔을 잡도록 하십시오.
- 그런 다음 Clawbot은 캔을 풀고 뒤로 물러나야 합니다.
- 열린 발톱과 그 안에 빈 캔으로 도전을 시작하십시오.
교사 팁
- 학생들에게 열린 발톱과 그 안에 빈 캔이 있는 상태로 도전을 시작하게 하세요.
- 캔이 으깨지거나 집게발에서 떨어지면 프로젝트를 조정한 후 도전을 다시 시작해야 합니다.
교사 도구 상자
-
솔루션
다음은 해결책의 예입니다.
# 프로젝트 코드
시작 # Claw의 현재 위치를 0으로 설정합니다.
claw_motor.set_position(0, DEGREES)
# Claw의 시간 초과를 설정합니다.
claw_motor.set_timeout(2, SECONDS)
claw_motor.spin_for(FORWARD, 170, DEGREES)
arm_motor.spin_for(FORWARD, 45, DEGREES)
arm_motor.spin_for(REVERSE, 45, DEGREES)
claw_motor.spin_for(REVERSE, 150, DEGREES)
drivetrain.drive_for(REVERSE, 150, MM)