Кодирование с помощью VEX IQ Smart Motors

VEX IQ Smart Motor имеет множество функций, которые можно использовать при кодировании в VEXcode IQ. Это может пригодиться при кодировании рычагов, захватов и воздухозаборников, а также трансмиссий и других механизмов, созданных с помощью VEX IQ. Понимание того, как можно кодировать двигатели, поможет избежать таких проблем, как остановка проектов или работа двигателей не так, как предполагалось.

Датчик двигателя

Интеллектуальный двигатель VEX IQ не только превращает электрическую энергию в механическую, как это делает большинство двигателей, но и обладает функциями, которых нет у большинства двигателей, что делает его «умным». Одной из его основных особенностей является квадратурный энкодер. Этот энкодер установлен внутри двигателя для отслеживания скорости и/или положения вала двигателя.

Отчеты энкодера VEX IQ Smart Motor позволяют узнать:

  • Направление вращения двигателя (вперед/назад или открыто/закрыто).
  • Положение двигателя, величина поворота и положение двигателя (в оборотах или градусах).
  • Скорость вращения двигателя (в зависимости от положения энкодера с течением времени)

Поскольку энкодер сообщает о состояниях двигателя, их можно использовать в скрытых вычислениях, чтобы многие команды движения и обнаружения работали в VEXcode IQ.

Кодирование отдельных двигателей

Прежде чем приступить к кодированию отдельных интеллектуальных двигателей в VEXcode IQ, вам необходимо настроить двигатель. Отдельные двигатели часто используются для дополнительных механизмов, таких как воздухозаборники, рычаги и когти. Однако вся информация применима и к другим механизмам, использующим отдельные двигатели.

Меню устройств VEXcode IQ со списком подключенных устройств. Подсвечивается интеллектуальный двигатель, что означает, что его можно настроить после выбора.

Следуйте инструкциям в этой статье чтобы настроить ваш индивидуальный двигатель в VEXcode IQ.

Если настроен один двигатель, на панели инструментов появятся команды для управления этим двигателем. Вы заметите, что существуют разные типы команд: ожидающие и не ожидающие.

Ожидающие и не ожидающие команды

Обратите внимание, что на всех изображениях здесь показаны блоки. Все эти проекты могут быть перестроены на Python или C++ и содержать ту же функциональность, что и блоки.

Проект VEXcode IQ block, в котором используются команды ожидания для последовательного перемещения двигателя клешни, затем робота, а затем двигателя руки. Проект гласит: При запуске поверните ClawMotor на 90 градусов. Затем проедьте 200 мм задним ходом, а затем поверните ArmMotor в положение 180 градусов.

Команды ожидания блокируют продолжение проекта до тех пор, пока поведение не будет завершено. К ним относятся такие команды, как [Вращение для] и [Вращение в положение].

Показанный здесь проект использует шаблон Clawbot (2-моторный), и все команды находятся в режиме ожидания. Таким образом, кулачковый двигатель закрывается на 90 градусов, робот движется задним ходом, а затем рука поворачивается вверх и достигает положения 180 градусов.

VEXcode IQ блокирует проект, который использует команды без ожидания для вращения впускного двигателя ровно в течение 2 секунд. Проект гласит: При запуске запустите IntakeMotor, подождите 2 секунды, а затем остановите IntakeMotor.

Напротив, есть команды, не ожидающие. Команда, не требующая ожидания, будет выполнять данное поведение неопределенно долго или до тех пор, пока ему не будет предложено изменить поведение на другое. К ним относятся такие команды, как [Вращение].

Показанный здесь проект использует BaseBot с добавленным приемником. Здесь впускной двигатель начнет вращаться. Команда [Подождать] является командой ожидания, поэтому воздухозаборник будет продолжать вращаться до тех пор, пока не пройдут 2 секунды, а затем перейдет к следующей команде в проекте, которая является командой [Стоп]. Тогда мотор перестанет вращаться.

Тайм-ауты двигателя

При кодировании двигателя как части руки или клешни важно помнить о разнице между ожидающими и неожидающими блоками и о том, как они повлияют на движение вашего робота. Тайм-ауты двигателя позволяют установить ограничение по времени для достижения двигателем заданного целевого положения. Если по истечении времени он не достигнет этого положения, двигатель прекратит попытки вращения и проект перейдет к следующей команде.

Проект VEXcode IQ Blocks, в котором используется блок тайм-аута двигателя для поворота двигателя захвата на 90 градусов или до истечения 2 секунд перед перемещением робота. Проект гласит: При запуске установите тайм-аут ClawMotor на 2 секунды и поверните ClawMotor на 90 градусов. Наконец, проедьте задним ходом 200 мм.

В этом примере тайм-аут двигателя установлен на 2 секунды. Если захват не приблизится к 90 градусам в течение 2 секунд, двигатель перестанет вращаться на отметке 2 секунды, затем перейдет к следующей команде и поедет вперед.

Экран Brain отображается с панелью управления датчиками двигателя, открытой из меню «Устройства». Отображается информация о двигателе, такая как его команда, скорость, положение, ток и интеллектуальный порт двигателя.

Если вы не уверены, насколько далеко можно переместить двигатель, воспользуйтесь сенсорной панелью управления. Приборная панель сообщает положение двигателя в градусах и оборотах, поэтому при перемещении двигателя (например, открывании и закрывании захвата) цифры будут меняться. Используйте это тестирование, чтобы определить, сколько градусов или поворотов необходимо, чтобы закрыть захват, поднять руку, повернуть воздухозаборник и т. д.

Прочтите эти статьи, чтобы узнать, как использовать панель датчиков.

Кодирование интеллектуальных двигателей как части трансмиссии

Прежде чем приступить к кодированию трансмиссии в VEXcode IQ, вам необходимо настроить трансмиссию, включая используемые двигатели. Двигатели настроены в трансмиссии таким образом, чтобы ими можно было управлять с помощью тех же команд, что и [Drive] и [Drive for].

Ожидающие и неожидающие команды

При кодировании трансмиссии доступны команды ожидания и не ожидания для управления движением робота.

Проект блоков VEXcode IQ, который использует команды ожидания, чтобы робот двигался вперед, а затем поворачивал направо один за другим. Проект гласит: «При запуске проедьте вперед 200 мм, а затем поверните направо на 90 градусов».

Команды ожидания блокируют продолжение проекта до тех пор, пока поведение не будет завершено. К ним относятся такие команды, как [Двигаться вперед] [Повернуть вперед] и [Повернуться к курсу].

Показанный здесь проект использует шаблон Clawbot (2-моторный), и все команды находятся в режиме ожидания. Таким образом, робот проедет вперед 200 миллиметров, а затем повернет направо, используя трансмиссию.

Проект блоков VEXcode IQ, который использует не ожидающую команду для движения робота вперед до нажатия на бампер, а затем поворачивает направо. Проект гласит: «При запуске двигайтесь вперед, дождитесь нажатия кнопки Bumper3, а затем поверните направо на 90 градусов».

Напротив, есть команды, не ожидающие. Команда, не требующая ожидания, будет выполнять данное поведение неопределенно долго или до тех пор, пока ему не будет предложено изменить поведение на другое. К ним относятся такие команды, как [Drive].

Показанный здесь проект использует BaseBot. Здесь робот будет двигаться вперед бесконечно, пока не будет нажат переключатель бампера. Затем проект перейдет к следующей команде, и робот перестанет двигаться и повернет направо на 90 градусов.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: