VEX IQ Smart Motor имеет множество функций, которые можно использовать при кодировании в VEXcode IQ. Это может пригодиться при кодировании рычагов, захватов и воздухозаборников, а также трансмиссий и других механизмов, созданных с помощью VEX IQ. Понимание того, как можно кодировать двигатели, поможет избежать таких проблем, как остановка проектов или работа двигателей не так, как предполагалось.
Датчик двигателя
Интеллектуальный двигатель VEX IQ не только превращает электрическую энергию в механическую, как это делает большинство двигателей, но и обладает функциями, которых нет у большинства двигателей, что делает его «умным». Одной из его основных особенностей является квадратурный энкодер. Этот энкодер установлен внутри двигателя для отслеживания скорости и/или положения вала двигателя.
Отчеты энкодера VEX IQ Smart Motor позволяют узнать:
- Направление вращения двигателя (вперед/назад или открыто/закрыто).
- Положение двигателя, величина поворота и положение двигателя (в оборотах или градусах).
- Скорость вращения двигателя (в зависимости от положения энкодера с течением времени)
Поскольку энкодер сообщает о состояниях двигателя, их можно использовать в скрытых вычислениях, чтобы многие команды движения и обнаружения работали в VEXcode IQ.
Кодирование отдельных двигателей
Прежде чем приступить к кодированию отдельных интеллектуальных двигателей в VEXcode IQ, вам необходимо настроить двигатель. Отдельные двигатели часто используются для дополнительных механизмов, таких как воздухозаборники, рычаги и когти. Однако вся информация применима и к другим механизмам, использующим отдельные двигатели.
Следуйте инструкциям в этой статье чтобы настроить ваш индивидуальный двигатель в VEXcode IQ.
Если настроен один двигатель, на панели инструментов появятся команды для управления этим двигателем. Вы заметите, что существуют разные типы команд: ожидающие и не ожидающие.
Ожидающие и не ожидающие команды
Обратите внимание, что на всех изображениях здесь показаны блоки. Все эти проекты могут быть перестроены на Python или C++ и содержать ту же функциональность, что и блоки.
Команды ожидания блокируют продолжение проекта до тех пор, пока поведение не будет завершено. К ним относятся такие команды, как [Вращение для] и [Вращение в положение].
Показанный здесь проект использует шаблон Clawbot (2-моторный), и все команды находятся в режиме ожидания. Таким образом, кулачковый двигатель закрывается на 90 градусов, робот движется задним ходом, а затем рука поворачивается вверх и достигает положения 180 градусов.
Напротив, есть команды, не ожидающие. Команда, не требующая ожидания, будет выполнять данное поведение неопределенно долго или до тех пор, пока ему не будет предложено изменить поведение на другое. К ним относятся такие команды, как [Вращение].
Показанный здесь проект использует BaseBot с добавленным приемником. Здесь впускной двигатель начнет вращаться. Команда [Подождать] является командой ожидания, поэтому воздухозаборник будет продолжать вращаться до тех пор, пока не пройдут 2 секунды, а затем перейдет к следующей команде в проекте, которая является командой [Стоп]. Тогда мотор перестанет вращаться.
Тайм-ауты двигателя
При кодировании двигателя как части руки или клешни важно помнить о разнице между ожидающими и неожидающими блоками и о том, как они повлияют на движение вашего робота. Тайм-ауты двигателя позволяют установить ограничение по времени для достижения двигателем заданного целевого положения. Если по истечении времени он не достигнет этого положения, двигатель прекратит попытки вращения и проект перейдет к следующей команде.
В этом примере тайм-аут двигателя установлен на 2 секунды. Если захват не приблизится к 90 градусам в течение 2 секунд, двигатель перестанет вращаться на отметке 2 секунды, затем перейдет к следующей команде и поедет вперед.
Если вы не уверены, насколько далеко можно переместить двигатель, воспользуйтесь сенсорной панелью управления. Приборная панель сообщает положение двигателя в градусах и оборотах, поэтому при перемещении двигателя (например, открывании и закрывании захвата) цифры будут меняться. Используйте это тестирование, чтобы определить, сколько градусов или поворотов необходимо, чтобы закрыть захват, поднять руку, повернуть воздухозаборник и т. д.
Прочтите эти статьи, чтобы узнать, как использовать панель датчиков.
Кодирование интеллектуальных двигателей как части трансмиссии
Прежде чем приступить к кодированию трансмиссии в VEXcode IQ, вам необходимо настроить трансмиссию, включая используемые двигатели. Двигатели настроены в трансмиссии таким образом, чтобы ими можно было управлять с помощью тех же команд, что и [Drive] и [Drive for].
Ожидающие и неожидающие команды
При кодировании трансмиссии доступны команды ожидания и не ожидания для управления движением робота.
Команды ожидания блокируют продолжение проекта до тех пор, пока поведение не будет завершено. К ним относятся такие команды, как [Двигаться вперед] [Повернуть вперед] и [Повернуться к курсу].
Показанный здесь проект использует шаблон Clawbot (2-моторный), и все команды находятся в режиме ожидания. Таким образом, робот проедет вперед 200 миллиметров, а затем повернет направо, используя трансмиссию.
Напротив, есть команды, не ожидающие. Команда, не требующая ожидания, будет выполнять данное поведение неопределенно долго или до тех пор, пока ему не будет предложено изменить поведение на другое. К ним относятся такие команды, как [Drive].
Показанный здесь проект использует BaseBot. Здесь робот будет двигаться вперед бесконечно, пока не будет нажат переключатель бампера. Затем проект перейдет к следующей команде, и робот перестанет двигаться и повернет направо на 90 градусов.