Розумний двигун VEX IQ має багато функцій, які можна використовувати під час кодування у VEXcode IQ. Це може стати в нагоді під час кодування важелів, кігтів і впускних отворів, а також трансмісій та інших механізмів, створених за допомогою VEX IQ. Розуміння того, як можна закодувати двигуни, допоможе вирішити такі проблеми, як зупинка проектів або непрацездатність двигунів.
Енкодер двигуна
Розумний двигун VEX IQ не лише перетворює електричну енергію на механічну, як це робить більшість двигунів, він також має функції, яких немає у більшості двигунів, що робить його «розумним». Однією з його головних особливостей є квадратурний кодер. Цей кодер встановлюється всередині двигуна для відстеження швидкості та/або положення валу двигуна.
Звіти кодера VEX IQ Smart Motor дають змогу знати:
- Напрямок обертання двигуна (вперед/назад або відкрито/закрито)
- Положення двигуна, кількість обертів і положення двигуна (в обертах або градусах)
- Швидкість обертання двигуна (на основі положення енкодера в часі)
Оскільки кодер повідомляє про стани двигуна, їх можна використовувати в закулісних обчисленнях, щоб багато команд Motion і Sensing працювали в VEXcode IQ.
Кодування окремих двигунів
Перш ніж почати кодувати окремі розумні двигуни у VEXcode IQ, вам потрібно налаштувати двигун. Окремі двигуни часто використовуються для додаткових механізмів, таких як повітрозабірники, плечі та кігті. Проте вся інформація все ще стосується інших механізмів, які використовують окремі двигуни.
Виконайте кроки в цій статті , щоб налаштувати свій індивідуальний двигун у VEXcode IQ.
Якщо налаштовано один двигун, команди для керування цим двигуном з’являться на панелі інструментів. Ви помітите, що є різні типи команд: очікуючі та неочікуючі.
Очікування проти команд, що не очікують
Зауважте, що всі зображення тут показують блоки. Усі ці проекти можна перебудувати на Python або C++ і містити ту саму функціональність, що й блоки.
Команди очікування блокують продовження проекту до завершення поведінки. До них належать такі команди, як [Обертання для] і [Обертання до позиції].
Проект, показаний тут, використовує шаблон Clawbot (2-motor), і всі команди очікують. Таким чином, у послідовності, кігтевий двигун закриватиметься на 90 градусів, робот рухатиметься заднім ходом, а потім рука обертатиметься вгору, щоб досягти положення на 180 градусів.
На противагу цьому існують команди, які не очікують. Команда без очікування виконуватиме поведінку необмежений час або доки не буде сказано змінити поведінку на іншу. До них належать такі команди, як [Spin].
У зображеному тут проекті використовується BaseBot із доданим входом. Тут впускний двигун починає обертатися. Команда [Wait] є командою очікування, тому впускний пристрій продовжить обертатися, доки не закінчаться 2 секунди, а потім перейде до наступної команди в проекті, яка є командою [Stop]. Тоді мотор перестав обертатися.
Час очікування двигуна
Кодуючи двигун як частину руки чи кігтя, важливо пам’ятати про різницю між блоками, що очікують, і блоками, які не очікують, і про те, як вони впливатимуть на рух вашого робота. Час очікування двигуна дозволяє встановити ліміт часу, протягом якого двигун досягне запланованого цільового положення. Якщо він не досяг цієї позиції після закінчення часу, двигун припинить обертання, і проект перейде до наступної команди.
У цьому прикладі час очікування двигуна встановлено на 2 секунди. Якщо кіготь не закриється до 90 градусів протягом 2 секунд, двигун припинить обертання на позначці 2 секунди, а потім перейде до наступної команди та поїде вперед.
Якщо ви не впевнені, на яку відстань рухати двигун, скористайтеся панеллю датчиків. Приладова панель повідомляє про положення двигуна в градусах і оборотах, тож у міру того, як ви рухаєте двигун (як відкривання та закривання кігтя), цифри змінюватимуться. Використовуйте це тестування, щоб визначити, скільки градусів або обертів потрібно, щоб закрити кіготь, підняти руку, обертати всмоктування тощо.
Перегляньте ці статті, щоб дізнатися, як користуватися сенсорною панеллю.
Кодування розумних двигунів як частини трансмісії
Перед початком кодування трансмісії у VEXcode IQ вам потрібно налаштувати трансмісію, включаючи використовувані двигуни. Двигуни налаштовані в трансмісії, щоб забезпечити керування ними за допомогою тих самих команд, як [Drive] і [Drive for].
Очікуючі та неочікуючі команди
Під час кодування трансмісії доступні команди очікування та неочікування для керування рухом робота.
Команди очікування блокують продовження проекту, доки поведінка не буде завершена. До них належать такі команди, як [Їздити на] [Повернути на] і [Повернути на курс].
Проект, показаний тут, використовує шаблон Clawbot (2-motor), і всі команди очікують. Таким чином, у серійному режимі робот їхав би вперед на 200 міліметрів, а потім повертав праворуч, використовуючи трансмісії.
На противагу цьому існують команди, які не очікують. Команда без очікування виконуватиме поведінку необмежений час або доки не буде сказано змінити поведінку на іншу. До них належать такі команди, як [Drive].
Показаний тут проект використовує BaseBot. Тут робот рухався вперед нескінченно довго, доки не було натиснуто перемикач бампера. Тоді проект переходив би до наступної команди, і робот припинив рух і повернув праворуч на 90 градусів.