VEX IQ 스마트 모터에는 VEXcode IQ에서 코딩할 때 사용할 수 있는 많은 기능이 있습니다. 이것은 VEX IQ를 사용하여 생성된 구동계 및 기타 메커니즘뿐만 아니라 팔, 발톱, 흡입구를 코딩할 때 유용할 수 있습니다. 모터를 코딩하는 방법을 이해하면 프로젝트 중단 또는 모터가 의도한 대로 작동하지 않는 것과 같은 문제를 완화하는 데 도움이 됩니다.
모터 인코더
VEX IQ 스마트 모터는 대부분의 모터처럼 전기 에너지를 기계 에너지로 전환할 뿐만 아니라 대부분의 모터에 없는 기능을 갖추고 있어 "스마트"합니다. 주요 기능 중 하나는 구적 엔코더입니다. 이 엔코더는 모터 샤프트의 속도 및/또는 위치를 추적하기 위해 모터 내부에 장착됩니다.
VEX IQ 스마트 모터의 엔코더 보고서를 통해 다음을 알 수 있습니다.
- 모터 회전 방향(정/역 또는 열림/닫힘)
- 모터의 위치와 모터의 회전량 및 위치(회전 또는 각도)
- 모터 회전 속도(시간 경과에 따른 엔코더 위치 기준)
인코더는 모터의 상태를 보고하기 때문에 VEXcode IQ 내에서 많은 동작 및 감지 명령이 작동하도록 하는 배후 계산에 사용될 수 있습니다.
개별 모터 코딩
VEXcode IQ에서 개별 스마트 모터 코딩을 시작하기 전에 모터를 구성해야 합니다. 개별 모터는 흡입구, 암 및 클로와 같은 추가 메커니즘에 자주 사용됩니다. 그러나 모든 정보는 여전히 개별 모터를 사용하는 다른 메커니즘에 적용됩니다.
이 기사 의 단계에 따라 VEXcode IQ에서 개별 모터를 구성하십시오.
단일 모터가 구성되면 해당 모터를 제어하는 명령이 도구 상자에 나타납니다. 대기 및 비대기 등 다양한 유형의 명령이 있음을 알 수 있습니다.
대기 대 대기하지 않는 명령
여기에 있는 모든 이미지는 블록을 보여줍니다. 이러한 모든 프로젝트는 Python 또는 C++로 다시 빌드할 수 있으며 블록과 동일한 기능을 포함합니다.
대기 명령은 동작이 완료될 때까지 프로젝트가 계속되지 않도록 차단합니다. 여기에는 [Spin for] 및 [Spin to position]과 같은 명령이 포함됩니다.
여기에 표시된 프로젝트는 Clawbot(2-모터) 템플릿을 사용하며 모든 명령이 대기 중입니다. 따라서 직렬로 클로 모터가 90도 닫히고 로봇이 역방향으로 운전한 다음 팔이 회전하여 180도 위치에 도달합니다.
대조적으로 대기하지 않는 명령이 있습니다. 대기하지 않는 명령은 동작을 무기한으로 실행하거나 다른 동작으로 변경하라는 지시를 받을 때까지 실행합니다. 여기에는 [Spin]과 같은 명령이 포함됩니다.
여기에 표시된 프로젝트는 흡입구가 추가된 BaseBot을 사용합니다. 여기서 흡기 모터가 회전하기 시작합니다. [Wait] 명령은 대기 명령이므로 흡기는 2초가 될 때까지 계속 회전한 다음 [Stop] 명령. 그러면 모터가 회전을 멈춥니다.
모터 타임아웃
모터를 팔이나 발톱의 일부로 코딩할 때 대기 블록과 대기하지 않는 블록의 차이와 이러한 블록이 로봇의 움직임에 어떤 영향을 미치는지 기억하는 것이 중요합니다. 모터 시간 제한을 사용하면 모터가 의도한 목표 위치에 도달하는 시간 제한을 설정할 수 있습니다. 시간이 만료될 때 해당 위치에 도달하지 않으면 모터가 회전을 멈추고 프로젝트가 다음 명령으로 이동합니다.
이 예에서 모터 시간 초과는 2초로 설정됩니다. 클로가 2초 이내에 90도까지 닫히지 않으면 모터는 2초 지점에서 회전을 멈추고 다음 명령으로 이동하여 전진합니다.
모터를 얼마나 멀리 움직여야 할지 잘 모르겠다면 센서 대시보드를 사용하십시오. 대시보드는 각도와 회전수로 모터의 위치를 보고하므로 모터를 움직이면(집게발을 열고 닫는 것과 같이) 숫자가 변경됩니다. 이 테스트를 사용하여 집게발을 닫고, 팔을 올리고, 흡입구를 돌리는 데 필요한 각도 또는 회전 수를 결정합니다.
센서 대시보드를 사용하는 방법을 알아보려면 이 문서를 참조하십시오.
구동계의 일부로 스마트 모터 코딩
VEXcode IQ에서 구동계 코딩을 시작하기 전에 사용되는 모터를 포함하여 구동계를 구성해야 합니다. 모터는 [Drive] 및 [Drive for]와 같은 동일한 명령으로 제어되도록 구동계 내에서 구성됩니다.
대기 및 대기하지 않는 명령
드라이브 트레인을 코딩할 때 로봇의 움직임을 제어하기 위해 대기 및 비대기 명령을 사용할 수 있습니다.
대기 명령은 동작이 완료될 때까지 프로젝트가 계속되지 않도록 차단합니다. 여기에는 [Drive for] [Turn for] 및 [Turn to heading]과 같은 명령이 포함됩니다.
여기에 표시된 프로젝트는 Clawbot(2-모터) 템플릿을 사용하며 모든 명령이 대기 중입니다. 따라서 연속적으로 로봇은 200밀리미터 동안 전진한 다음 구동계를 사용하여 모두 우회전합니다.
대조적으로 대기하지 않는 명령이 있습니다. 대기하지 않는 명령은 동작을 무기한으로 실행하거나 다른 동작으로 변경하라는 지시를 받을 때까지 실행합니다. 여기에는 [Drive]과 같은 명령이 포함됩니다.
여기에 표시된 프로젝트는 BaseBot을 사용합니다. 여기서 로봇은 범퍼 스위치를 누를 때까지 무한정 전진합니다. 그런 다음 프로젝트는 다음 명령으로 이동하고 로봇은 운전을 멈추고 오른쪽으로 90도 회전합니다.