Skip to main content

로봇 팔 프로그래밍 - 파이썬

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

  • 이 탐구를 통해 학생들은 V5 클로봇의 팔 모터에 대한 기본 프로그래밍을 배우게 됩니다. 
  • 팔 모터를 프로그래밍하는 법을 배우면 학생들은 V5 클로봇의 팔 움직임을 올바르게 제어할 수 있습니다. Python 프로젝트에서 사용되는 지침에 대한 자세한 내용은 VEXcode V5 Python에 대한 도움말 정보를 참조하세요.

교사 팁 아이콘 교사 팁 - 자동완성 사용

자동완성은 VEXcode V5의 기능으로, 사용자가 입력하는 나머지 명령어를 예측해 줍니다. 학생들이 VEXcode V5로 작업할 때 Python 구문을 이해하는 데 도움이 되는 자동 완성 기능을 사용하도록 권장합니다. 명령어를 입력하기 시작하면 자동완성 기능이 나타날 수 있습니다. "위쪽" 및 "아래쪽" 키를 사용하여 원하는 이름을 선택한 다음 키보드의 "Tab" 또는 (Enter/Return) 키를 눌러 선택합니다. 이 기능에 대한 자세한 내용은 Python 문서확인하세요. VEXcode V5 Python 작업 공간에 Drivetrain 명령의 시작 부분을 입력하고, 자동 완성 창을 열어 나머지 명령에 대한 옵션을 표시합니다.

V5 클로봇이 도착할 준비가 되었습니다!

이 탐색을 통해 V5 클로봇의 팔을 사용하여 멋진 프로젝트를 만드는 데 필요한 도구를 얻을 수 있습니다.

  • 이 탐색에 사용될 VEXcode V5 Python 명령어:
    • arm_motor.spin_for(전진, 90, 도)
    • arm_motor.위치 설정(0, 도)
    • 기다림(2, 초)
  • 지침에 대한 자세한 정보를 알아보려면 명령 옆에 있는 물음표 아이콘 선택하여 자세한 정보를 확인하세요. 

    VEXcode V5는 작업 공간에 입력한 명령에 대한 드라이브를 표시하고 해당 명령에 대한 도움말을 오른쪽에 엽니다. 도움말에서는 Drive for를 정의하여 Drivetrain을 지정된 거리만큼 이동시키고 프로젝트에서 명령을 사용하는 방법을 설명합니다.

  • 필요한 하드웨어, 엔지니어링 노트북, VEXcode V5를 다운로드하여 준비하세요.
필요한 자료:
수량 필요한 재료
1

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

1

VEX코드 V5

1

엔지니어링 노트북

1

Clawbot 및 Advanced TrainingBot(드라이브트레인 2모터, 자이로 없음) 예제 프로젝트

1단계: 탐색 준비

활동을 시작하기 전에 다음 항목을 모두 준비하셨나요? 다음 각 항목을 확인하세요.

교사 팁 아이콘 교사 팁

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

2단계: 새 프로젝트 시작

프로젝트를 시작하기 전에 올바른 템플릿 프로젝트를 선택하세요. Clawbot과 Advanced TrainingBot(Drivetrain 2-motor, No Gyro) 예제 프로젝트에는 Clawbot의 모터 구성이 포함되어 있습니다. 템플릿을 사용하지 않으면 로봇이 프로젝트를 올바르게 실행하지 않습니다.

파일 메뉴가 열려 있고 예제 열기가 빨간색 상자로 강조 표시된 VEXcode V5 도구 모음입니다. 예제 열기는 새 블록 프로젝트, 새 텍스트 프로젝트, 열기 아래의 네 번째 메뉴 항목입니다.

다음 단계를 완료하세요.

  • 파일 메뉴를 엽니다.
  • 선택열기.

텍스트 위에 회색 로봇이 있는 Clawbot과 Advanced Training Bot이라는 아이콘.

  • Clawbot과 Advanced TrainingBot(Drivetrain 2-motor, No Gyro) 예제 프로젝트를 선택하여 엽니다.
  • 팔을 제어하기 위한 프로그래밍을 하게 되므로 프로젝트 이름을ArmControl바꾸세요.
  • 프로젝트를저장하세요.
  • 프로젝트 이름 ArmControl이 이제 도구 모음 중앙 창에 있는지 확인하세요.

VEXcode V5 도구 모음의 프로젝트 이름 대화 상자에 Arm Control이 표시되고 Slot 1이 선택되었음을 표시합니다.

교사 팁 아이콘 교사 팁

  • 이것은 프로그래밍의 시작 활동이므로, 교사는 단계를 모델로 보여준 다음 학생들에게 동일한 동작을 완료하도록 요청해야 합니다. 그런 다음 교사는 학생들이 단계를 올바르게 따르고 있는지 모니터링해야 합니다.
  • 학생들이 파일 메뉴에서 예제 열기를 선택했는지 확인하세요.
  • 학생들이 Clawbot과 Advanced TrainingBot(Drivetrain 2-motor, No Gyro) 예제 프로젝트를 선택했는지 확인하세요.

          학생들에게 예제 페이지에서 선택할 수 있는 항목이 여러 개 있다는 점을 알려줄 수 있습니다. 학생들이 다른 로봇을 만들고 사용하면서 다양한 템플릿을 사용할 기회를 얻게 됩니다.

  • 학생들에게 프로젝트 이름에 자신의 이니셜이나 그룹 이름을 추가하도록 요청할 수 있습니다. 학생들에게 프로젝트를 제출하도록 요청할 경우, 프로젝트를 구분하는 데 도움이 됩니다.

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

여기서 잠시 멈춰서 학생 그룹이 VEXcode V5에서 새 프로젝트를 시작하기 위해 방금 완료한 단계를 검토해 보는 것이 좋습니다.

3단계: 팔을 위로 올리세요

이제 팔을 들어올리는 동작을 프로그래밍해 보겠습니다!

# 라이브러리 가져오기
from vex import *

# 프로젝트 코드 시작
arm_motor.set_position(0, DEGREES)
  • 프로그래밍 영역에서 위에 표시된 대로 arm_motor.set_position()명령을 작성하여 팔의 시작 위치를 설정합니다.
arm_motor.위치 설정(0, 각도)
arm_motor.전진, 90, 각도로 회전
  • 위에 표시된 것처럼 arm_motor.set_position() 명령 아래에 arm_motor.spin_for()명령을 추가하여 팔을 위로 이동합니다.

프로젝트 이름 옆에 슬롯 선택이 열려 있는 VEXcode V5 도구 모음입니다. 슬롯 1이 선택되어 빨간색 상자로 강조 표시되고 프로젝트 이름은 Arm Control로 표시됩니다.

  • 슬롯 아이콘을 선택하세요. 로봇 브레인의 사용 가능한 슬롯 중 하나에 프로젝트를 다운로드할 수 있습니다. 슬롯 1을 선택하세요.

녹색 팔 아이콘 주위에 빨간색 상자가 있는 VEXcode V5의 도구 모음 이미지

  • 로봇을 컴퓨터나 태블릿에 연결합니다. 연결이 성공적으로 이루어지면 도구 모음의 Brain 아이콘이 녹색로 바뀝니다.

다운로드 버튼 주위에 빨간색 상자가 있는 VEXcode V5의 도구 모음입니다. 왼쪽에서 오른쪽으로 표시되는 아이콘은 컨트롤러, 브레인, 다운로드, 실행, 중지입니다.

  • 툴바에서다운로드버튼을 클릭하여 ArmControl 프로젝트를 로봇 브레인에 다운로드합니다.

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

학생들이 컴퓨터를 사용하고 있다면, 지금 로봇 브레인에서 USB 케이블을 분리하라고 요청하세요. 프로젝트를 실행하는 동안 로봇을 컴퓨터에 연결하면 로봇이 연결 케이블을 잡아당길 수 있습니다.

V5 Brain 홈 화면은 왼쪽 하단 모서리의 슬롯 1에 Arm Control 프로젝트를 표시합니다. 위쪽 행의 아이콘에는 드라이브, 장치, 설정, VEX가 있습니다.

  • ArmControl 프로젝트가 선택한 슬롯의 Brain에 다운로드되었는지 확인하세요.

교사 도구 상자 아이콘 교사 도구 상자 - 모델 우선

모든 학생이 한꺼번에 시도하기 전에, 먼저 학급 앞에서 프로젝트를 진행하는 모델을 만드세요. 학생들을 한곳에 모으고 클로봇이 팔을 움직일 수 있을 만큼 충분한 공간을 남겨둡니다. 프로젝트를 종료하고 클로봇의 팔을 원래 위치로 되돌리는 방법을 보여줍니다.

학생들에게 이제 그들이 프로젝트를 진행할 차례라고 말하세요. 클로봇의 팔을 안전하게 들어 올릴 수 있을 만큼 충분한 공간이 있는지 확인하세요.
 

  • Clawbot에서 프로젝트를 하려면 프로젝트가 선택되어 있는지 확인한 다음 실행 버튼을 누릅니다. 첫 번째 Claw Arm 프로젝트를 만든 것을 축하드립니다!

4단계: 다음을 시도해 보세요: 팔을 아래로 프로그래밍하세요

이제 팔을 위로 움직이도록 프로그래밍했으므로, 이제는 팔을 낮추거나 아래로 움직이도록 프로그래밍해야 합니다.

팔을 내린 V5 클로봇의 측면도

팔을 내린 VEX V5 클로봇의 이미지

  • ArmControl 프로젝트에 두 번째 arm_motor.spin_for()명령을 추가하여 팔이 90도까지 올라가고 2초간 기다린 후 다시 내려가도록 합니다.
    • 힌트:명령 내에서 방향을 변경해야 합니다.
  • wait명령이 실행되는 동안 팔이 위치를 유지하는 것을 확인하세요. 모터는 배터리에서 전력을 얻어 중력에 맞서 팔을 들어올립니다. 모터를 멈추는 기본 설정이보류설정이기 때문입니다. 정지를 위한 다른 설정은 두 가지가 있습니다.브레이크코스팅. 이에 대해서는 다른 연구실에서 배우게 될 겁니다.

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

이 과제에 대한 해결책은 아래와 같습니다. 팔을 낮추려면 학생들은 추가된 arm_motor.spin_for()명령에서 "FORWARD" 매개변수를 "REVERSE"로 변경해야 했습니다.

# 프로젝트 코드 시작
arm_motor.set_position(0, DEGREES)
arm_motor.spin_for(FORWARD, 90, DEGREES)
wait(2, SECONDS)
arm_motor.spin_for(REVERSE, 90, DEGREES)

5단계: 비행 교통 관제사 챌린지 완료

팔을 위로 들어올리고 그 아래에 위아래 동작을 나타내는 화살표가 있는 V5 클로봇의 측면도.

V5 클로봇의 팔이 위아래를 가리키는 빨간색 화살표와 함께 들어올려져 있는 이미지로 클로봇이 팔을 어떻게 들어올리고 내릴 수 있는지 보여줍니다. 비행 교통 관제사 챌린지에서 클로봇은 팔을 90도 동안 위아래로 한 번 움직여야 하고, 3초간 기다린 다음, 팔을 45도 동안 위아래로 두 번 움직여야 하고, 5초간 기다린 다음, 팔을 90도 동안 위아래로 세 번 움직여야 합니다.

클로봇의 동작 목록은 다음과 같습니다.

  • 팔을 위로, 그리고 아래로 90도 각도로 움직입니다.
  • 3초간 기다리세요.
  • 팔을 위로, 그리고 아래로 45도 움직입니다.
  • 팔을 위로, 그리고 아래로 45도 움직입니다.
  • 5초간 기다리세요.
  • 팔을 위로, 그리고 아래로 90도 각도로 움직입니다.
  • 팔을 위로, 그리고 아래로 90도 각도로 움직입니다.
  • 팔을 위로, 그리고 아래로 90도 각도로 움직입니다.

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

이 챌린지 내의 대부분의 명령은 arm_motor.spin_for()입니다. 팔을 위로 움직이는 명령과 아래로 움직이는 명령을 추가한 후, 두 명령을 강조 표시하고 마우스 오른쪽 버튼을 클릭한 다음, 필요한 만큼 복사하여 붙여넣을 수 있습니다. 그런 다음 매개변수를 변경하여 과제를 충족할 수 있으며 대기명령을 추가할 수 있습니다.작업 공간에서 VEXcode V5 Python 프로젝트를 보면 블록에 대한 두 개의 스핀이 강조 표시되어 있고 오른쪽에 상황에 맞는 메뉴가 열려 있습니다. 상황에 맞는 메뉴에서 복사 옵션이 강조 표시됩니다. 복사는 잘라내기와 붙여넣기 사이에 나타납니다.

  • 여기에서 비행 교통 관제사 챌린지 솔루션의 예를 검토해 보세요. 
# 프로젝트 코드 시작
arm_motor.set_position(0, DEGREES)
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)
wait(3, SECONDS)
arm_motor.spin_for(FORWARD, 45, DEGREES)
arm_motor.spin_for(REVERSE, 45, DEGREES)
arm_motor.spin_for(FORWARD, 45, DEGREES)
arm_motor.spin_for(REVERSE, 45, DEGREES)
wait(5, SECONDS)
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)
arm_motor.spin_for(전진, 90도, 도)
arm_motor.spin_for(후진, 90도, 도)
arm_motor.spin_for(전진, 90도, 도)
arm_motor.spin_for(후진, 90도, 도)

더 높은 단계의 학생은 루프를 사용하여 솔루션을 단순화할 수 있습니다.

# 프로젝트 코드 시작
arm_motor.set_position(0, DEGREES)
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)
wait(3, SECONDS)
for repeat_count in range(2): 
    arm_motor.spin_for(FORWARD, 45, DEGREES)
    arm_motor.spin_for(REVERSE, 45, DEGREES)
wait(5, SECONDS)
for repeat_count in range(3):
    arm_motor.spin_for(FORWARD, 90, DEGREES)
    arm_motor.spin_for(REVERSE, 90, DEGREES)