VEX IQ 스마트 모터에는 VEXcode IQ로 코딩할 때 사용할 수 있는 많은 기능이 있습니다. 이는 VEX IQ를 사용하여 생성된 구동계 및 기타 메커니즘뿐만 아니라 팔, 발톱, 흡입구를 코딩할 때 유용할 수 있습니다. 모터 코딩 방법을 이해하면 프로젝트 지연이나 모터가 의도한 대로 작동하지 않는 등의 문제를 완화하는 데 도움이 됩니다.
모터 인코더
VEX IQ 스마트 모터는 대부분의 모터처럼 전기 에너지를 기계 에너지로 변환할 뿐만 아니라 대부분의 모터에는 없는 기능도 갖추고 있어 "스마트"합니다. 주요 기능 중 하나는 직교 엔코더입니다. 이 인코더는 모터 샤프트의 속도 및/또는 위치를 추적하기 위해 모터 내부에 장착됩니다.
VEX IQ Smart Motor 인코더의 보고서를 통해 다음을 알 수 있습니다.
- 모터의 회전 방향(정/역 또는 열림/닫힘)
- 모터의 위치와 모터의 회전량 및 위치(회전 또는 각도)
- 모터 회전 속도(시간 경과에 따른 엔코더 위치 기준)
인코더는 모터의 상태를 보고하므로 비하인드 스토리 계산에 사용되어 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]와 같은 동일한 명령으로 제어되도록 드라이브트레인 내에 구성됩니다.
대기 및 비대기 명령
드라이브트레인을 코딩할 때 대기 및 비대기 명령을 사용하여 로봇의 움직임을 제어할 수 있습니다.
대기 명령은 동작이 완료될 때까지 프로젝트가 계속되는 것을 차단합니다. 여기에는 [운전] [회전] 및 [방향으로 회전]과 같은 명령이 포함됩니다.
여기에 표시된 프로젝트는 Clawbot(2모터) 템플릿을 사용하며 모든 명령이 대기 중입니다. 따라서 연속적으로 로봇은 200mm 앞으로 이동한 다음 구동계를 사용하여 모두 우회전합니다.
이와 대조적으로 대기하지 않는 명령이 있습니다. 대기하지 않는 명령은 해당 동작을 무기한으로 실행하거나 다른 동작으로 변경하라는 지시를 받을 때까지 실행합니다. 여기에는 [Drive]와 같은 명령이 포함됩니다.
여기에 표시된 프로젝트는 BaseBot을 사용합니다. 여기서 로봇은 범퍼 스위치를 누를 때까지 무한정 전진합니다. 그런 다음 프로젝트는 다음 명령으로 이동하고 로봇은 주행을 멈추고 오른쪽으로 90도 회전합니다.