Кодування за допомогою VEX IQ Smart Motors

Розумний двигун VEX IQ має багато функцій, які можна використовувати під час кодування у VEXcode IQ. Це може стати в нагоді під час кодування важелів, кігтів і впускних отворів, а також трансмісій та інших механізмів, створених за допомогою VEX IQ. Розуміння того, як можна закодувати двигуни, допоможе вирішити такі проблеми, як зупинка проектів або непрацездатність двигунів.

Енкодер двигуна

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

Звіти кодера VEX IQ Smart Motor дають змогу знати:

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

Оскільки кодер повідомляє про стани двигуна, їх можна використовувати в закулісних обчисленнях, щоб багато команд Motion і Sensing працювали в VEXcode IQ.

Кодування окремих двигунів

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

Меню пристроїв VEXcode IQ зі списком підключених пристроїв. Розумний двигун виділено, вказуючи на те, що його можна налаштувати після вибору.

Виконайте кроки в цій статті , щоб налаштувати свій індивідуальний двигун у VEXcode IQ.

Якщо налаштовано один двигун, команди для керування цим двигуном з’являться на панелі інструментів. Ви помітите, що є різні типи команд: очікуючі та неочікуючі.

Очікування проти команд, що не очікують

Зауважте, що всі зображення тут показують блоки. Усі ці проекти можна перебудувати на Python або C++ і містити ту саму функціональність, що й блоки.

VEXcode IQ блокує проект, який використовує команди очікування для переміщення двигуна кігтів, потім робота, а потім двигуна руки один за одним. У проекті написано: Коли запущено, закрутіть ClawMotor на 90 градусів. Потім проведіть заднім ходом 200 мм, а потім розкрутіть ArmMotor на 180 градусів.

Команди очікування блокують продовження проекту до завершення поведінки. До них належать такі команди, як [Обертання для] і [Обертання до позиції].

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

VEXcode IQ блокує проект, який використовує команди без очікування для обертання впускного двигуна рівно 2 секунди. У проекті написано «Після запуску запустіть IntakeMotor, зачекайте 2 секунди, а потім зупиніть IntakeMotor».

На противагу цьому існують команди, які не очікують. Команда без очікування виконуватиме поведінку необмежений час або доки не буде сказано змінити поведінку на іншу. До них належать такі команди, як [Spin].

У зображеному тут проекті використовується BaseBot із доданим входом. Тут впускний двигун починає обертатися. Команда [Wait] є командою очікування, тому впускний пристрій продовжить обертатися, доки не закінчаться 2 секунди, а потім перейде до наступної команди в проекті, яка є командою [Stop]. Тоді мотор перестав обертатися.

Час очікування двигуна

Кодуючи двигун як частину руки чи кігтя, важливо пам’ятати про різницю між блоками, що очікують, і блоками, які не очікують, і про те, як вони впливатимуть на рух вашого робота. Час очікування двигуна дозволяє встановити ліміт часу, протягом якого двигун досягне запланованого цільового положення. Якщо він не досяг цієї позиції після закінчення часу, двигун припинить обертання, і проект перейде до наступної команди.

VEXcode IQ блокує проект, у якому використовується блок тайм-ауту двигуна, щоб обертати мотор із кігтями закритим на 90 градусів або доки не пройде 2 секунди, перш ніж перемістити робота. У проекті написано «Після запуску встановіть час очікування ClawMotor на 2 секунди та закрутіть ClawMotor на 90 градусів». Нарешті, проїдьте заднім ходом 200 мм.

У цьому прикладі час очікування двигуна встановлено на 2 секунди. Якщо кіготь не закриється до 90 градусів протягом 2 секунд, двигун припинить обертання на позначці 2 секунди, а потім перейде до наступної команди та поїде вперед.

Екран мозку відображається з панеллю датчиків двигуна, відкритою в меню «Пристрої». Відображається така інформація про двигун, як його команда, швидкість, положення, струм і розумний порт двигуна.

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

Перегляньте ці статті, щоб дізнатися, як користуватися сенсорною панеллю.

Кодування розумних двигунів як частини трансмісії

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

Очікуючі та неочікуючі команди

Під час кодування трансмісії доступні команди очікування та неочікування для керування рухом робота.

VEXcode IQ блокує проект, який використовує команди очікування, щоб рухати робота вперед, а потім повертати праворуч один за одним. На проекті написано «Після запуску проїдьте вперед на 200 мм, а потім поверніть праворуч на 90 градусів».

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

Проект, показаний тут, використовує шаблон Clawbot (2-motor), і всі команди очікують. Таким чином, у серійному режимі робот їхав би вперед на 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: