Блоки, специфічні для роботів#
Вступ#
Робот-герой Flex включає в себе ClawMotor, ArmMotor, датчик зору зі штучним інтелектом, датчик відстані та датчик системи позиціонування гри (GPS).
Усі стандартні блоки VR VEXcode доступні для використання на ігровому майданчику V5 26-27 Override.
Нижче наведено список усіх доступних блоків, специфічних для роботів:
Трансмісія – Переміщення та поворот робота.
Дії
drive — Рухає робота вперед або назад безперервно.
drive for — Переміщує робота вперед або назад на певну відстань.
повернути — Повертає робота ліворуч або праворуч назавжди.
повернути на — Повертає робота ліворуч або праворуч на певну кількість градусів.
повернути до напрямку — Повертає робота обличчям до певного напрямку.
повернути на обертання — Повертає робота на певний оберт.
зупинити рух — Зупиняє рух робота.
Налаштування
встановити швидкість руху — Вказує роботу, з якою швидкістю рухатися.
встановити швидкість повороту — Вказує роботу, з якою швидкістю повертатися.
встановити напрямок руху — Змінює поточний напрямок руху робота на новий.
встановити обертання приводу — Змінює поточне обертання робота на нове обертання.
встановити тайм-аут руху — Встановлює, скільки секунд робот намагатиметься завершити рух.
Значення
рух завершено — Повідомляє, чи завершив рух робота.
привід рухається — Повідомляє, чи рухається робот.
курс руху — Повідомляє поточний курс робота від 0 до 359,99 градусів.
обертання приводу — Повідомляє про поточне обертання робота.
швидкість руху — Повідомляє про швидкість руху робота.
Рух – Переміщення та відстеження двигунів робота.
Дії
обертання двигуна – Обертає двигун вперед або назад безкінечно.
обертати двигун протягом – Обертає двигун на певну відстань у градусах або обертах.
розкрутити двигун у потрібне положення – Розкрутить двигун у певне положення.
зупинити двигун – Зупиняє обертання двигуна.
Налаштування
встановити швидкість двигуна – Вказує двигуну, з якою швидкістю обертатися.
встановити тайм-аут двигуна – Встановлює час, протягом якого двигун намагатиметься завершити рух.
встановити положення двигуна – Змінює поточне положення двигуна на нове значення.
Значення
двигун готовий – Повідомляє, чи завершив рух двигуна.
двигун обертається – Повідомляє, чи обертається двигун.
положення двигуна – Повідомляє поточне положення двигуна.
швидкість двигуна – Повідомляє про швидкість обертання двигуна у відсотках від -100% до 100%.
Штучний зір – захоплення та аналіз об’єктів за допомогою датчика зору зі штучним інтелектом.
Дії
get object data – Збирає дані для певного підпису, такого як виявлена класифікація ШІ.
Налаштування
встановити елемент об’єкта – Вибирає певний об’єкт зі списку.
Значення
об’єкт існує – Повертає, чи було виявлено будь-яку класифікацію.
об’єкт є – Повертає, якщо виявлено класифікацію.
об’єкт є AprilTag – Повертає, чи є виявлений об’єкт AprilTag, що відповідає певному ідентифікатору.
кількість об’єктів – Повертає кількість виявлених об’єктів.
властивість об’єкта – Повертає такі деталі, як:
Сенсорика – Використовуйте різні датчики робота.
Відстань
Відстань знайдено до об’єкта – Повідомляє, чи виявляє датчик відстані об’єкт у межах досяжності.
відстань до об’єкта – Повідомляє відстань між датчиком відстані та найближчим виявленим об’єктом.
GPS
GPS-позиція – Повертає положення X або Y з GPS-датчика.
GPS-курс – Повертає напрямок руху робота.
У прикладах на цій сторінці використовується Початкова локація C з передматчового контрольного списку ігрового майданчика.
Трансмісія#
Трансмісія контролює, як VR-робот керує рухом та поворотами. Трансмісія може рухатися вперед або назад, повертати ліворуч або праворуч, змінювати напрямок руху та відстежувати своє обертання.
Дії#
диск#
Блок стека drive переміщує робота вперед або назад нескінченно. Робот продовжуватиме рухатися, доки йому не буде надано іншу дію, таку як поворот або зупинка.
їхати [вперед v]
Параметри |
Опис |
|---|---|
напрямок |
Напрямок руху робота: вперед або назад. |
Приклад
коли запущено :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v]
чекати (0.5) секунд
зупинити рух
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
їхати за#
Блок стеку drive for переміщує робота вперед або назад на певну відстань. Проект чекатиме, поки робот завершить рух, перш ніж запуститься наступний блок у стеку.
їхати [вперед v] на (200) [мм v] ▶
Параметри |
Опис |
|---|---|
напрямок |
Напрямок руху робота: вперед або назад. |
відстань |
Відстань, яку проїжджає робот. Це може бути ціле або десяткове число. |
одиниця |
Одиниця вимірювання відстані: мм (міліметри) або дюйми |
і не чекай |
Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу. |
Приклад
коли запущено :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
поворот#
Блок стеку turn повертає робота ліворуч або праворуч назавжди. Робот продовжуватиме повертатися, доки йому не буде надано іншу дію, наприклад, рух або зупинку.
повернути [праворуч v]
Параметри |
Опис |
|---|---|
напрямок |
Напрямок повороту робота: ліворуч або праворуч. |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
повернути [ліворуч v]
чекати (0.78) секунд
зупинити рух
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
їхати [вперед v] на (25) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути за#
Блок стеку turn for повертає робота ліворуч або праворуч на певну кількість градусів. Поворот здійснюється відносно поточного положення робота. Проект чекатиме, поки робот завершить поворот, перш ніж запустити наступний блок у стеку.
повернути [праворуч v] на (90) градусів ▶
Параметри |
Опис |
|---|---|
напрямок |
Напрямок повороту робота: ліворуч або праворуч. |
кут |
Кількість градусів, на яку повертається робот. Це може бути ціле або десяткове число. |
і не чекай |
Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу. |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
повернути [ліворуч v] на (110) градусів ▶
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
їхати [вперед v] на (25) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути до заголовка#
Курс руху – це напрямок, у якому рухається робот, виміряний у градусах. Блок стеку поворот до курсу повертає робота обличчям до певного курсу від -359 до 359 градусів. Робот поверне у найкоротшому напрямку, щоб досягти цільового курсу.
Початковий курс — 0 градусів.
Проєкт чекатиме, поки робот завершить обертання, перш ніж запуститься наступний блок у стеку.
повернути на курс (90) градусів ▶
Параметри |
Опис |
|---|---|
заголовок |
Кут, куди має дивитися робот, від -359 до 359 градусів. |
і не чекай |
Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу. |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
повернути на курс (-110) градусів ▶
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
їхати [вперед v] на (25) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
поворот на обертання#
Блок стеку поворот на обертання повертає робота на певний оберт.
Обертання – це кут повороту робота, виміряний у градусах. На початку проекту значення повороту встановлюється на 0 градусів. Обертання також можна встановити за допомогою блоку set drive rotation.
Значення обертання є абсолютними. Це означає, що напрямок повороту залежить від поточного обертання робота. Поворот праворуч збільшує обертання, а поворот ліворуч зменшує обертання.
Наприклад, якщо робот починає рух з кута 0 градусів, а потім повертається на 720 градусів, він двічі повернеться праворуч. Якщо потім повернути на 360 градусів, він один раз повернеться ліворуч, оскільки 360 менше за 720.
Проєкт чекатиме, поки робот завершить обертання, перш ніж запуститься наступний блок у стеку.
повернути на обертання (90) градусів ▶
Параметри |
Опис |
|---|---|
обертання |
Значення повороту в градусах, до якого повернеться робот. Це може бути ціле або десяткове число. |
і не чекай |
Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу. |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
повернути на обертання (-110) градусів ▶
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
їхати [вперед v] на (25) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
зупинити керування#
Блок стеку зупинити рух зупиняє рух робота.
зупинити рух
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v]
чекати (0.5) секунд
зупинити рух
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
Налаштування#
встановити швидкість руху#
Блок стеку set drive velocity вказує роботу, з якою швидкістю рухатися. Вищий відсоток робить робот швидшим, а нижчий – повільнішим.
Кожен проєкт починається з того, що робот рухається зі швидкістю 50% за замовчуванням.
Примітка: Вища швидкість робить робот швидшим, але це може бути менш точно. Нижча швидкість робить робот повільнішим, але це може бути точнішим.
встановити швидкість руху (50) [% v]
Параметри |
Опис |
|---|---|
швидкість |
Швидкість руху від 0% до 100%. |
одиниця |
Одиниця вимірювання швидкості: % |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
повернути [ліворуч v] на (110) градусів ▶
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
встановити швидкість руху (100) [% v]
їхати [вперед v] на (25) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
встановити швидкість повороту#
Блок стеку set turn velocity вказує роботу, як швидко повертатися. Вищий відсоток змушує робота повертатися швидше, а нижчий — повільніше.
Кожен проект починається з того, що робот обертається зі швидкістю 50% за замовчуванням.
Примітка: Вища швидкість змушує робота обертатися швидше, але це може бути менш точно. Нижча швидкість змушує робота обертатися повільніше, але це може бути точніше.
встановити швидкість повороту (50) [% v]
Параметри |
Опис |
|---|---|
швидкість |
Швидкість повороту від 0% до 100%. |
одиниця |
Одиниця вимірювання швидкості: % |
Приклад
коли запущено :: hat events
[Turn to face the Neutral Goal faster.]
встановити швидкість повороту (100) [% v]
повернути [ліворуч v] на (110) градусів ▶
встановити заголовок диска#
Курс руху – це напрямок руху робота, що вимірюється в градусах. Блок стеку set drive heading змінює поточний курс руху робота на нове значення курсу.
Наприклад, якщо робот повернувся обличчям праворуч, встановлення курсу на 0 градусів робить це положення обличчям праворуч новим 0 градусами. Потім робот може повертатися в інші позиції на основі цього нового курсу.
встановити курс руху (0) градусів
Параметри |
Опис |
|---|---|
заголовок |
Значення курсу в градусах, яке потрібно встановити для робота. |
Приклад
коли запущено :: hat events
[Make facing the Neutral Goal the new heading.]
встановити курс руху (110) градусів
повернути на курс (0) градусів ▶
встановити обертання диска#
Обертання – це кут повороту робота, виміряний у градусах. На початку проекту значення повороту встановлюється на 0 градусів. Блок стеку set drive rotation змінює поточне обертання робота на нове значення.
Наприклад, якщо робот зробив два повних оберти праворуч, значення його обертання становитиме 720 градусів. Встановлення обертання на 0 градусів скине це обертання з 720 до 0 градусів. Потім робот зможе повертатися до обертань на основі цього нового значення.
встановити обертання руху (0) градусів
Параметри |
Опис |
|---|---|
обертання |
Значення обертання в градусах, яке потрібно встановити для робота. Це може бути ціле або десяткове число. |
Приклад
коли запущено :: hat events
[Make facing the Neutral Goal the new rotation.]
встановити обертання руху (110) градусів
повернути на обертання (0) градусів ▶
встановити час очікування диска#
Блок стеку set drive timeout встановлює, скільки секунд робот намагатиметься завершити рух. Якщо робот не зможе завершити його за цей час, він припинить спроби та перейде до наступного блоку в стеку. Це запобігає зависанню робота на русі.
встановити тайм-аут руху (1) секунд
Параметри |
Опис |
|---|---|
час |
Кількість секунд, протягом яких робот може спробувати завершити рух. Це може бути ціле число або десятковий дроб. |
Приклад
коли запущено :: hat events
[Turn to face the Neutral Goal.]
встановити тайм-аут руху (0.8) секунд
повернути [ліворуч v] на (180) градусів ▶
Цінності#
диск завершено#
Булевий блок drive is done повідомляє, чи завершив рух робота. Це можна використовувати для керування часом інших дій на основі руху робота.
Правда — Робот завершив рух.
Хибно — Робот все ще рухається.
Цей блок працює разом із блоками трансмісії, які мають параметр і не чекати.
<рух завершено?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено :: hat events
[Score a Pin in a Neutral Goal.]
повернути [ліворуч v] на (110) градусів ▶
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
їхати [вперед v] на (25) [дюйми v] ◀ і не чекати
чекати до <рух завершено?>
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
привід рухається#
Булевий блок привід рухається повідомляє, чи рухається робот. Це можна використовувати для керування часом інших дій на основі руху робота.
Правда — Робот рухається.
Хибно — Робот не рухається.
Цей блок працює разом із блоками трансмісії, які мають параметр і не чекати.
<рух виконується?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено :: hat events
[Raise the Arm once stopped near the Goal.]
повернути [ліворуч v] на (110) градусів ▶
їхати [вперед v] на (25) [дюйми v] ◀ і не чекати
поки <рух виконується?>
чекати (0.005) секунд
Кінець
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
напрямок руху#
Курс руху – це напрямок руху робота, що вимірюється в градусах. Блок репортера курс руху повідомляє про цей курс від 0 до 359,99 градусів.
Початковий курс робота становить 0 градусів.
(курс руху у градусах)
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено :: hat events
[Turn to the Goal, then show heading.]
повернути [праворуч v] на (450) градусів ▶
вивести (курс руху у градусах) на екран ◀ і перейти до наступного рядка
обертання диска#
Обертання – це кут повороту робота, виміряний у градусах. На початку проекту значення повороту встановлюється на 0 градусів. Блок звіту обертання приводу повідомляє про поточне обертання робота.
Поворот праворуч збільшує обертання, а поворот ліворуч зменшує. Наприклад, два повних оберти праворуч призведуть до обертання на 720 градусів.
(обертання руху у градусах)
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено :: hat events
[Spin to find a Pin, then show rotation.]
повернути [праворуч v] на (450) градусів ▶
вивести (обертання руху у градусах) на екран ◀ і перейти до наступного рядка
швидкість руху#
Блок репортера швидкість руху повідомляє, з якою швидкістю рухається робот.
(швидкість руху у [% v])
Параметри |
Опис |
|---|---|
одиниця |
Одиниця вимірювання швидкості: % |
Приклад
коли запущено :: hat events
[Show speed while driving to the Goal.]
їхати [вперед v] на (150) [мм v] ▶
вивести (швидкість руху у [% v]) на екран ◀ і перейти до наступного рядка
Рух#
Flex використовує ArmMotor для підйому та опускання важеля, а ClawMotor для відкривання та закривання лапи.
Кожен двигун має власні параметри напрямку. Назви напрямків описують, як цей двигун рухається на Flex.
Дії#
обертальний двигун#
Блок стеку spin motor обертає двигун в одному з двох напрямків нескінченно. Двигун продовжуватиме обертатися, доки йому не буде надано іншу дію, наприклад, обертання в іншому напрямку або зупинка.
обертати [ArmMotor v] [вгору v]
Параметри |
Опис |
|---|---|
двигун |
Двигун для обертання: ArmMotor або ClawMotor. |
напрямок |
Напрямок обертання двигуна:
|
Приклад
коли запущено
[Raise the Arm before driving toward a Pin.]
обертати [ArmMotor v] [вгору v]
чекати (1) секунд
зупинити [ArmMotor v]
обертальний двигун для#
Блок стеку spin motor for обертає двигун на певну відстань. Обертання залежить від поточного положення двигуна. Проект чекатиме, поки двигун завершить обертання, перш ніж запуститься наступний блок у стеку.
обертати [ArmMotor v] [вгору v] на (90) [градуси v] ▶
Параметри |
Опис |
|---|---|
двигун |
Двигун для обертання: ArmMotor або ClawMotor. |
напрямок |
Напрямок обертання двигуна:
|
відстань |
Відстань, на яку обертається двигун. Градуси використовують цілі числа. Оберти можуть використовувати цілі або десяткові числа. |
одиниця |
Одиниця вимірювання відстані: градуси або повороти. |
і не чекай |
Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу. |
Приклад
коли запущено
[Raise the Arm to carry the Pin to the Goal.]
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
поверніть двигун у потрібне положення#
Блок стеку spin motor to position обертає двигун у певне положення.
Положення двигуна — це кут його обертання, що вимірюється в градусах або обертах. Один оберт дорівнює 360 градусам. На початку проекту положення ArmMotor встановлюється на 0 градусів. ClawMotor є винятком — він починає з 467 градусів (повністю закрито). Положення двигуна також можна встановити за допомогою блоку set motor position.
Значення положення є абсолютними. Це означає, що напрямок обертання залежить від поточного положення двигуна.
Наприклад, якщо двигун запускається при 0 градусах і обертається до положення 720 градусів, він обертається вперед на два оберти. Якщо він потім обертається до положення 360 градусів, він обертається назад на один оберт, оскільки 360 менше за 720.
обертати [ArmMotor v] до позиції (90) [градуси v] ▶
Параметри |
Опис |
|---|---|
двигун |
Двигун для обертання: ArmMotor або ClawMotor. |
позиція |
Значення положення, до якого обертатиметься двигун. Градуси використовують цілі числа. Оберти можуть використовувати цілі або десяткові числа. |
одиниця |
Одиниця вимірювання положення: градуси або оберти. |
і не чекай |
Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу. |
Приклад
коли запущено
[Raise the Arm, then release the Pin.]
обертати [ArmMotor v] до позиції (800) [градуси v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
зупинити двигун#
Блок стека зупинити двигун зупиняє вибраний двигун.
зупинити [ArmMotor v]
Параметри |
Опис |
|---|---|
двигун |
Двигун, який потрібно зупинити: ArmMotor або ClawMotor. |
Приклад
коли запущено
[Raise the Arm partway to hold the Pin.]
обертати [ArmMotor v] [вгору v]
чекати (1) секунд
зупинити [ArmMotor v]
Налаштування#
встановити швидкість двигуна#
Блок стека set motor velocity вказує двигуну, з якою швидкістю обертатися. Вищий відсоток змушує двигун обертатися швидше, а нижчий — повільніше.
Кожен проект починається з того, що кожен двигун обертається зі швидкістю 50% за замовчуванням.
Примітка: Вища швидкість робить двигун обертанням швидше, але це може бути менш точно. Нижча швидкість робить двигун обертанням повільніше, але це може бути точнішим.
встановити швидкість [ArmMotor v] [50] [% v]
Параметри |
Опис |
|---|---|
двигун |
Двигун для встановлення швидкості: ArmMotor або ClawMotor. |
швидкість |
Швидкість обертання двигуна. Відсоток використовує цілі числа від 0% до 100%. |
одиниця |
Одиниця вимірювання швидкості: %. |
Приклад
коли запущено
[Raise the Arm fast to release the Pin.]
встановити швидкість [ArmMotor v] [100] [% v]
обертати [ArmMotor v] [вгору v] на (800) [градуси v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
встановити тайм-аут двигуна#
Блок стеку set motor timeout встановлює час, протягом якого двигун намагатиметься завершити рух. Якщо двигун не зможе завершити рух за цей час, він припинить спроби та перейде до наступного блоку в стеку. Це запобігає зависанню двигуна на русі.
встановити тайм-аут [ArmMotor v] [1] секунд
Параметри |
Опис |
|---|---|
двигун |
Двигун для встановлення тайм-ауту: ArmMotor або ClawMotor. |
час |
Кількість секунд, протягом яких двигун може спробувати завершити рух. Це може бути ціле або десяткове число. |
Приклад
коли запущено
[Score a Pin in a Neutral Goal.]
повернути [ліворуч v] на (110) градусів ▶
встановити тайм-аут [ArmMotor v] [1] секунд
обертати [ArmMotor v] [вгору v] на (1800) [градуси v] ▶
їхати [вперед v] на (25) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
Позиція#
положення двигуна#
Положення двигуна — це на скільки він обертився, вимірюється в градусах або обертах. Один оберт дорівнює 360 градусам. Блок репортера положення двигуна повідомляє поточне положення двигуна.
На початку проекту положення ArmMotor встановлюється на 0 градусів. ClawMotor є винятком — він починається з 467 градусів (повністю закрито). Якщо двигун обертається на один повний оберт вперед, положення збільшується. Якщо двигун обертається в іншому напрямку, положення зменшується.
(позиція [ArmMotor v] у [градуси v])
Параметри |
Опис |
|---|---|
двигун |
Двигун, про положення якого потрібно повідомляти: ArmMotor або ClawMotor. |
одиниця |
Одиниця вимірювання для повідомлення про положення двигуна у: градусах або обертах. |
Приклад
коли запущено
[Raise the Arm, then release the Pin.]
поки <(позиція [ArmMotor v] у [градуси v]) < (800)>
обертати [ArmMotor v] [вгору v]
чекати (0.002) секунд
Кінець
зупинити [ArmMotor v]
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
встановити положення двигуна#
Положення двигуна — це відстань його обертання, що вимірюється в градусах або обертах. Один оберт дорівнює 360 градусам. Блок стеку встановлення позиції двигуна змінює поточне положення двигуна на нове значення.
Наприклад, якщо двигун обертався на 180 градусів, встановлення положення на 0 градусів скине це положення зі 180 на 0 градусів. Потім двигун може обертатися в положення на основі цього нового значення.
встановити позицію [ArmMotor v] (0) [градуси v]
Параметри |
Опис |
|---|---|
двигун |
Двигун для встановлення положення: ArmMotor або ClawMotor. |
позиція |
Значення положення, яке потрібно встановити для двигуна. Градуси використовують цілі числа. Оберти можуть використовувати цілі або десяткові числа. |
одиниця |
Одиниця вимірювання положення: градуси або оберти. |
Приклад
коли запущено
[Reset encoder, raise Arm, place Pin.]
встановити позицію [ArmMotor v] (0) [градуси v]
обертати [ArmMotor v] до позиції (800) [градуси v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
Цінності#
двигун готовий#
Булев блок motor is done повідомляє, чи завершив рух двигуна. Це можна використовувати для керування часом інших дій на основі руху двигуна.
Правда — Двигун завершив рух.
Хибно — Двигун все ще рухається.
Цей блок працює разом з наступними блоками руху, які мають параметр і не чекати: обертати двигун протягом та обертати двигун у потрібне положення.
<[ArmMotor v] завершено?>
Параметри |
Опис |
|---|---|
двигун |
Двигун, який має повідомляти про завершення руху: ArmMotor або ClawMotor. |
Приклад
коли запущено
[Raise the Arm while driving to the Goal.]
обертати [ArmMotor v] до позиції (800) [градуси v] ◀ і не чекати
чекати (0.1) секунд
поки <не <[ArmMotor v] завершено?>>
їхати [вперед v]
чекати (0.005) секунд
Кінець
зупинити рух
двигун обертається#
Булев блок motor is spinning повідомляє, чи обертається двигун. Це можна використовувати для керування часом інших дій на основі руху двигуна.
Правда — Двигун обертається.
Хибно — Двигун не обертається.
Цей блок працює разом з наступними блоками руху, які мають параметр і не чекати: обертати двигун протягом та обертати двигун у потрібне положення.
<[ArmMotor v] обертається?>
Параметри |
Опис |
|---|---|
двигун |
Двигун, про який слід повідомляти, чи обертається він: ArmMotor або ClawMotor. |
Приклад
коли запущено
[Raise the Arm while driving to the Goal, then release the Pin.]
обертати [ArmMotor v] до позиції (800) [градуси v] ◀ і не чекати
чекати (0.1) секунд
поки <[ArmMotor v] обертається?>
їхати [вперед v] на (20) [мм v] ▶
Кінець
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
швидкість двигуна#
Блок репортера швидкість двигуна повідомляє про швидкість обертання двигуна у відсотках від -100% до 100%.
(швидкість [ArmMotor v] у [% v] :: custom-motion)
Параметри |
Опис |
|---|---|
двигун |
Двигун, для якого потрібно повідомляти швидкість: ArmMotor або ClawMotor. |
одиниця |
Одиниця вимірювання швидкості двигуна: %. |
Приклад
коли запущено
[Show Arm Motor velocity while raising.]
встановити швидкість [ArmMotor v] [100] [% v]
обертати [ArmMotor v] до позиції (800) [градуси v] ◀ і не чекати
чекати (0.2) секунд
вивести (швидкість [ArmMotor v] у [% v] :: custom-motion) на екран ◀ і перейти до наступного рядка
Зір штучного інтелекту#
Дії#
отримати дані об’єкта#
Блок get object data фільтрує дані з кадру AI Vision Sensor до єдиного підпису — збереженого опису чогось, що датчик може розпізнати, наприклад, ігрового елемента на полі.
Набір даних зберігає об’єкти, відсортовані від найбільшого до найменшого за шириною, починаючи з індексу 0. Доступ до властивостей кожного об’єкта можна отримати за допомогою блоку AI Vision object property. Якщо не виявлено відповідних об’єктів, повертається порожній набір даних.
отримати дані [AI Classifications v] з [AIVision v]
Параметр |
Опис |
|---|---|
підпис |
Фільтрує набір даних, щоб включити лише дані заданого підпису. Доступні підписи:
|
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Turn to face the Pin.]
встановити швидкість повороту (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <(об'єкт [AIVision v] [centerX v]) < (140)> then
повернути [ліворуч v]
else if <([AIVision v] object [centerX v]) > (180)> then
повернути [праворуч v]
інакше
зупинити рух
перервати
Кінець
Кінець
Кінець
Налаштування#
елемент об’єкта встановлення#
Блок set object item встановлює, який елемент у наборі даних використовувати.
встановити елемент об'єкта [AIVision v] на [1]
Параметри |
Опис |
|---|---|
елемент |
Номер елемента в наборі даних, який потрібно використовувати. |
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
отримати дані [AI Classifications v] з [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
якщо <об'єкт [AIVision v] існує?> тоді
[If any AI Classification is detected, check if any of them are a specific game element.]
якщо <об'єкт [AIVision v] є [RedBluePin v]?> тоді
вивести [RedBluePin detected.] ▶
інакше
вивести [No RedBluePin detected.] ▶
Кінець
Кінець
Цінності#
об’єкт існує#
Блок об’єкт існує повертає логічне значення, яке вказує, чи виявлено будь-який об’єкт у наборі даних.
True – Набір даних містить виявлений об’єкт.
Хибно – Набір даних не містить жодних виявлених об’єктів.
<об'єкт [AIVision v] існує?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
отримати дані [AI Classifications v] з [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
якщо <об'єкт [AIVision v] існує?> тоді
вивести (кількість об'єктів [AIVision v]) ◀ і перейти до наступного рядка
Кінець
об’єкт є#
Блок object is повертає логічне значення, яке вказує, чи відповідає виявлений об’єкт певній класифікації.
True – Елемент у наборі даних є певним об’єктом.
Хибно – Елемент у наборі даних не є конкретним об’єктом.
<об'єкт [AIVision v] є [RedBluePin v]?>
Параметр |
Опис |
|---|---|
об’єкт |
З яким об’єктом порівняти предмет:
|
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <об'єкт [AIVision v] є [RedBluePin v]?> тоді
вивести [RedBluePin detected.] ▶
інакше
вивести [No RedBluePin detected.] ▶
Кінець
Кінець
об’єктом є AprilTag#
Блок object is AprilTag повертає логічне значення, яке вказує, чи є виявлений об’єкт AprilTag, що відповідає певному ідентифікатору.
True – Виявлений об’єкт є AprilTag із заданим ідентифікатором.
False – Виявлений об’єкт не є AprilTag із заданим ідентифікатором.
<об'єкт [AIVision v] є AprilTag [0]?>
Параметр |
Опис |
|---|---|
Ідентифікатор тегу квітня |
Ідентифікаційний номер для порівняння з виявленим AprilTag. |
Приклад
коли запущено
[Report if AprilTag 3 is detected.]
отримати дані [AprilTags v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <об'єкт [AIVision v] є AprilTag [3]?> тоді
вивести [That is 3!] ▶
інакше
вивести [That isn't 3!] ▶
Кінець
Кінець
кількість об’єктів#
Блок object count повертає кількість виявлених об’єктів у наборі даних у вигляді цілого числа.
(кількість об'єктів [AIVision])
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
вивести (кількість об'єктів [AIVision v]) ◀ і перейти до наступного рядка
Кінець
властивість об’єкта#
Існує шість властивостей, які додаються до кожного об’єкта (показано нижче), що зберігаються після використання блоку get object data.
(об'єкт [AIVision v] [ширина v])
Усі значення властивостей описують положення та розмір виявленого об’єкта в області зору сенсора штучного інтелекту в момент використання блоку get object data. Ці значення вимірюються в пікселях, виходячи з роздільної здатності сенсора 320 на 240 пікселів.
Параметр |
Опис |
|---|---|
власність |
Яку властивість виявленого об’єкта використовувати: |
ширина#
Властивість width повідомляє ширину виявленого об’єкта в пікселях як ціле число від 1 до 320.
(об'єкт [AIVision v] [ширина v])
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Approach the next Cup and Pin.]
встановити швидкість руху (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <([AIVision v] object [width v]) > (140)> then
зупинити рух
перервати
інакше
їхати [вперед v]
Кінець
Кінець
Кінець
висота#
Властивість height повідомляє висоту виявленого об’єкта в пікселях як ціле число від 1 до 240.
(об'єкт [AIVision v] [висота v])
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Approach the next Cup and Pin.]
встановити швидкість руху (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <([AIVision v] object [height v]) > (200)> then
зупинити рух
перервати
інакше
їхати [вперед v]
Кінець
Кінець
Кінець
центрX#
Властивість centerX повідомляє x-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 320.
(об'єкт [AIVision v] [centerX v])
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Turn and approach the next Cup and Pin.]
встановити швидкість повороту (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <(об'єкт [AIVision v] [centerX v]) < (140)> then
повернути [ліворуч v] на (5) градусів ▶
інакше
їхати [вперед v] на (25) [дюйми v] ▶
перервати
Кінець
Кінець
Кінець
центрY#
Властивість centerY повідомляє y-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 240.
(об'єкт [AIVision v] [centerY v])
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Approach the next Cup and Pin.]
встановити швидкість руху (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <([AIVision v] object [centerY v]) > (230)> then
зупинити рух
перервати
інакше
їхати [вперед v]
Кінець
Кінець
Кінець
походженняX#
Властивість originX повідомляє x-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 320.
(об'єкт [AIVision v] [originX v])
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Turn and approach the next Cup and Pin.]
встановити швидкість повороту (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <(об'єкт [AIVision v] [originX v]) < (100)> then
повернути [ліворуч v] на (5) градусів ▶
інакше
їхати [вперед v] на (25) [дюйми v] ▶
перервати
Кінець
Кінець
Кінець
походженняY#
Властивість originY повідомляє y-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 240.
(об'єкт [AIVision v] [originY v])
Приклад
коли запущено
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
повернути [ліворуч v] на (70) градусів ▶
[Approach the next Cup and Pin.]
встановити швидкість руху (30) [% v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
if <([AIVision v] object [originY v]) > (140)> then
зупинити рух
перервати
інакше
їхати [вперед v]
Кінець
Кінець
Кінець
Зондування#
Відстань#
Відстань знайденого об’єкта#
Логічний блок Відстань знайдено до об’єкта повідомляє, чи датчик відстані наразі виявляє об’єкт у межах 2000 мм.
Правда — Датчик відстані виявляє об’єкт.
Хибно — Датчик відстані не виявляє об’єкт.
<[FrontDistance v] знайшов об'єкт?>
Параметри |
Опис |
|---|---|
датчик відстані |
Датчик відстані для використання. Виберіть один із датчиків відстані, доступних для Flex. |
Приклад
коли запущено :: hat events
[Turn until something is detected, then release the Pin.]
повернути [праворуч v]
чекати до <[FrontDistance v] знайшов об'єкт?>
зупинити рух
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
відстань до об’єкта#
Блок звіту відстані до об’єкта повідомляє відстань між датчиком відстані та найближчим виявленим об’єктом.
(відстань [FrontDistance v] у [мм v])
Параметри |
Опис |
|---|---|
датчик відстані |
Датчик відстані для використання. Виберіть один із датчиків відстані, доступних для Flex. |
одиниця |
Одиниця вимірювання відстані: мм або дюйми. |
Приклад
коли запущено :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
їхати [вперед v]
чекати до <(відстань [FrontDistance v] у [мм v]) < (200)>
зупинити рух
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
GPS#
Положення GPS#
Блок позиції GPS повертає зміщення позиції точки відліку повороту робота відносно центру поля за допомогою датчика GPS (Система позиціонування гри™).
(позиція [GPS v] [X v] у [мм v])
Параметри |
Опис |
|---|---|
вісь |
Яку вісь відображати:
|
одиниці |
Одиниця вимірювання для позначення положення: мм або дюйми |
Приклад
коли запущено :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
зупинити рух
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
GPS-курс#
Блок GPS heading повертає напрямок руху робота на основі показань датчика GPS (Game Positioning System™) з польового коду GPS VEX від 0,00 до 359,99 градусів.
(курс [GPS v] у градусах)
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
обертати [ArmMotor v] [вгору v] на (300) [градуси v] ▶
їхати [вперед v] на (10) [дюйми v] ▶
обертати [ClawMotor v] [ВІДЧИНЕНО v] на (180) [градуси v] ▶
[Turn left to face the Neutral Goal.]
встановити швидкість повороту (30) [% v]
повернути [ліворуч v]
чекати до <(курс [GPS v] у градусах) < (18)>
зупинити рух