Блоки, специфічні для роботів#

Вступ#

Робот-герой Декс має два варіанти двигунів: датчик зору зі штучним інтелектом, оптичний датчик та датчик ігрової системи позиціонування (GPS).

Усі стандартні блоки віртуальної реальності VEXcode доступні для використання на ігровому майданчику V5 25-26 Push Back.

Нижче наведено список усіх доступних блоків, специфічних для роботів:

Трансмісія – Переміщення та поворот робота.

Рух – Переміщення та відстеження двигунів робота.

Штучний зір – захоплення та аналіз об’єктів за допомогою датчика зору зі штучним інтелектом.

Сенсорика – Використовуйте різні датчики робота.

У прикладах на цій сторінці використовується початкова позиція ігрового майданчика за замовчуванням.

Трансмісія#

Трансмісія контролює, як VR-робот керує рухом та поворотами. Трансмісія може рухатися вперед або назад, повертати ліворуч або праворуч, змінювати напрямок руху та відстежувати своє обертання.

Дії#

диск#

Блок стека drive переміщує робота вперед або назад нескінченно. Робот продовжуватиме рухатися, доки йому не буде надано іншу дію, таку як поворот або зупинка.

їхати [вперед v]

Параметри

Опис

напрямок

Напрямок руху робота: вперед або назад.

Приклад

коли запущено :: hat events
[Drive forward, then stop.]
їхати [вперед v]
чекати (2) секунд
зупинити рух

їхати за#

Блок стеку drive for переміщує робота вперед або назад на певну відстань. Проект чекатиме, поки робот завершить рух, перш ніж запуститься наступний блок у стеку.

їхати [вперед v] на (200) [мм v] ▶

Параметри

Опис

напрямок

Напрямок руху робота: вперед або назад.

відстань

Відстань, яку проїжджає робот. Це може бути ціле або десяткове число.

одиниця

Одиниця вимірювання відстані: мм (міліметри) або дюйми

і не чекай

Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу.

Приклад

коли запущено :: hat events
[Drive forward.]
їхати [вперед v] на (500) [мм v] ▶

поворот#

Блок стеку turn повертає робота ліворуч або праворуч назавжди. Робот продовжуватиме повертатися, доки йому не буде надано іншу дію, наприклад, рух або зупинку.

повернути [праворуч v]

Параметри

Опис

напрямок

Напрямок повороту робота: ліворуч або праворуч.

Приклад

коли запущено :: hat events
[Turn right, then stop.]
повернути [праворуч v]
чекати (2) секунд
зупинити рух

повернути за#

Блок стеку turn for повертає робота ліворуч або праворуч на певну кількість градусів. Поворот здійснюється відносно поточного положення робота. Проект чекатиме, поки робот завершить поворот, перш ніж запустити наступний блок у стеку.

повернути [праворуч v] на (90) градусів ▶

Параметри

Опис

напрямок

Напрямок повороту робота: ліворуч або праворуч.

кут

Кількість градусів, на яку повертається робот. Це може бути ціле або десяткове число.

і не чекай

Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу.

Приклад

коли запущено :: hat events
[Turn left, then turn around to the right.]
повернути [ліворуч v] на (90) градусів ▶
повернути [праворуч v] на (180) градусів ▶

повернути до заголовка#

Курс руху – це напрямок, у якому рухається робот, виміряний у градусах. Блок стеку поворот до курсу повертає робота обличчям до певного курсу від -359 до 359 градусів. Робот поверне у найкоротшому напрямку, щоб досягти цільового курсу.

Початковий курс — 0 градусів.

Проєкт чекатиме, поки робот завершить обертання, перш ніж запуститься наступний блок у стеку.

повернути на курс (90) градусів ▶

Параметри

Опис

заголовок

Кут, куди має дивитися робот, від -359 до 359 градусів.

і не чекай

Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу.

Приклад

коли запущено :: hat events
[Turn to face the cardinal directions.]
повернути на курс (90) градусів ▶
чекати (2) секунд
повернути на курс (180) градусів ▶
чекати (2) секунд
повернути на курс (270) градусів ▶
чекати (2) секунд
повернути на курс (0) градусів ▶
чекати (2) секунд

поворот на обертання#

Блок стеку поворот на обертання повертає робота на певний оберт.

Обертання – це кут повороту робота, виміряний у градусах. На початку проекту значення повороту встановлюється на 0 градусів. Обертання також можна встановити за допомогою блоку set drive rotation.

Значення обертання є абсолютними. Це означає, що напрямок повороту залежить від поточного обертання робота. Поворот праворуч збільшує обертання, а поворот ліворуч зменшує обертання.

Наприклад, якщо робот починає рух з кута 0 градусів, а потім повертається на 720 градусів, він двічі повернеться праворуч. Якщо потім повернути на 360 градусів, він один раз повернеться ліворуч, оскільки 360 менше за 720.

Проєкт чекатиме, поки робот завершить обертання, перш ніж запуститься наступний блок у стеку.

повернути на обертання (90) градусів ▶

Параметри

Опис

обертання

Значення повороту в градусах, до якого повернеться робот. Це може бути ціле або десяткове число.

і не чекай

Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу.

Приклад

коли запущено :: hat events
[Turn left, then spin in a circle clockwise and face right.]
повернути на обертання (-90) градусів ▶
чекати (2) секунд
повернути на обертання (450) градусів ▶

зупинити керування#

Блок стеку зупинити рух зупиняє рух робота.

зупинити рух

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено :: hat events
[Drive forward, then stop.]
їхати [вперед v]
чекати [4] секунд
зупинити рух

Налаштування#

встановити швидкість руху#

Блок стеку set drive velocity вказує роботу, з якою швидкістю рухатися. Вищий відсоток робить робот швидшим, а нижчий – повільнішим.

Кожен проєкт починається з того, що робот рухається зі швидкістю 50% за замовчуванням.

Примітка: Вища швидкість робить робот швидшим, але це може бути менш точно. Нижча швидкість робить робот повільнішим, але це може бути точнішим.

встановити швидкість руху (50) [% v]

Параметри

Опис

швидкість

Швидкість руху від 0% до 100%.

одиниця

Одиниця вимірювання швидкості: %

Приклад

коли запущено :: hat events
[Drive forward at the default velocity.]
їхати [вперед v] на (100) [мм v] ▶
чекати (1) секунд
[Move slower.]
встановити швидкість руху (20) [% v]
їхати [вперед v] на (100) [мм v] ▶
чекати (1) секунд
[Move faster.]
встановити швидкість руху (100) [% v]
їхати [вперед v] на (100) [мм v] ▶
чекати (1) секунд

встановити швидкість повороту#

Блок стеку set turn velocity вказує роботу, як швидко повертатися. Вищий відсоток змушує робота повертатися швидше, а нижчий — повільніше.

Кожен проект починається з того, що робот обертається зі швидкістю 50% за замовчуванням.

Примітка: Вища швидкість змушує робота обертатися швидше, але це може бути менш точно. Нижча швидкість змушує робота обертатися повільніше, але це може бути точніше.

встановити швидкість повороту (50) [% v]

Параметри

Опис

швидкість

Швидкість повороту від 0% до 100%.

одиниця

Одиниця вимірювання швидкості: %

Приклад

коли запущено :: hat events
[Turn at default velocity.]
повернути [праворуч v] на (100) градусів ▶
чекати (1) секунд
[Turn slower.]
встановити швидкість повороту (20)%
повернути [праворуч v] на (100) градусів ▶
чекати (1) секунд
[Turn faster.]
встановити швидкість повороту (100)%
повернути [праворуч v] на (100) градусів ▶
чекати (1) секунд

встановити заголовок диска#

Курс руху – це напрямок руху робота, що вимірюється в градусах. Блок стеку set drive heading змінює поточний курс руху робота на нове значення курсу.

Наприклад, якщо робот повернувся обличчям праворуч, встановлення курсу на 0 градусів робить це положення обличчям праворуч новим 0 градусами. Потім робот може повертатися в інші позиції на основі цього нового курсу.

встановити курс руху (0) градусів

Параметри

Опис

заголовок

Значення курсу в градусах, яке потрібно встановити для робота.

Приклад

коли запущено :: hat events
[Turn to the left.]
встановити курс руху (90) градусів
повернути на курс (0) градусів ▶

встановити обертання диска#

Обертання – це кут повороту робота, виміряний у градусах. На початку проекту значення повороту встановлюється на 0 градусів. Блок стеку set drive rotation змінює поточне обертання робота на нове значення.

Наприклад, якщо робот зробив два повних оберти праворуч, значення його обертання становитиме 720 градусів. Встановлення обертання на 0 градусів скине це обертання з 720 до 0 градусів. Потім робот зможе повертатися до обертань на основі цього нового значення.

встановити обертання руху (0) градусів

Параметри

Опис

обертання

Значення обертання в градусах, яке потрібно встановити для робота. Це може бути ціле або десяткове число.

Приклад

коли запущено :: hat events
[Spin counterclockwise two times.]
встановити обертання руху (720) градусів
повернути на обертання (0) градусів ▶

встановити час очікування диска#

Блок стеку set drive timeout встановлює, скільки секунд робот намагатиметься завершити рух. Якщо робот не зможе завершити його за цей час, він припинить спроби та перейде до наступного блоку в стеку. Це запобігає зависанню робота на русі.

встановити тайм-аут руху (1) секунд

Параметри

Опис

час

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

Приклад

Після запуску обмежує час руху до 1 секунди, а потім повертає на 90 градусів.#
коли запущено :: hat events
[Drive forward for 1 second, then turn.]
встановити тайм-аут руху (1) секунд
їхати [вперед v] на (25) [дюйми v] ▶
повернути [праворуч v] на (90) градусів ▶

Цінності#

диск завершено#

Булевий блок drive is done повідомляє, чи завершив рух робота. Це можна використовувати для керування часом інших дій на основі руху робота.

  • Правда — Робот завершив рух.

  • Хибно — Робот все ще рухається.

Цей блок працює разом із блоками трансмісії, які мають параметр і не чекати.

<рух завершено?>

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено :: hat events
[Start spinning when the drive is complete.]
їхати [вперед v] на (200) [мм v] ◀ і не чекати
чекати до <рух завершено?>
повернути [праворуч v] на (360) градусів ▶

привід рухається#

Булевий блок привід рухається повідомляє, чи рухається робот. Це можна використовувати для керування часом інших дій на основі руху робота.

  • Правда — Робот рухається.

  • Хибно — Робот не рухається.

Цей блок працює разом із блоками трансмісії, які мають параметр і не чекати.

<рух виконується?>

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено :: hat events
[Print that the robot is moving while it is still driving.]
їхати [вперед v] на (200) [мм v] ◀ і не чекати
поки <рух виконується?>
вивести [Still Moving...] ▶
чекати (0.1) секунд
очистити екран
Кінець
вивести [Done!] ▶

напрямок руху#

Курс руху – це напрямок руху робота, що вимірюється в градусах. Блок репортера курс руху повідомляє про цей курс від 0 до 359,99 градусів.

Початковий курс робота становить 0 градусів.

(курс руху у градусах)

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено :: hat events
[Display the heading after turning.]
повернути [праворуч v] на (450) градусів ▶
вивести (курс руху у градусах) на екран ◀ і перейти до наступного рядка

обертання диска#

Обертання – це кут повороту робота, виміряний у градусах. На початку проекту значення повороту встановлюється на 0 градусів. Блок звіту обертання приводу повідомляє про поточне обертання робота.

Поворот праворуч збільшує обертання, а поворот ліворуч зменшує. Наприклад, два повних оберти праворуч призведуть до обертання на 720 градусів.

(обертання руху у градусах)

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено :: hat events
[Display the rotation after turning.]
повернути [праворуч v] на (450) градусів ▶
вивести (обертання руху у градусах) на екран ◀ і перейти до наступного рядка

швидкість руху#

Блок репортера швидкість руху повідомляє, з якою швидкістю рухається робот.

(швидкість руху у [% v])

Параметри

Опис

одиниця

Одиниця вимірювання швидкості: %

Приклад

коли запущено :: hat events
[Display the velocity after driving.]
їхати [вперед v] на (200) [мм v] ▶
вивести (швидкість руху у [% v]) на екран ◀ і перейти до наступного рядка

Рух#

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

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

Дії#

обертальний двигун#

Блок стеку spin motor обертає двигун в одному з двох напрямків нескінченно. Двигун продовжуватиме обертатися, доки йому не буде надано іншу дію, наприклад, обертання в іншому напрямку або зупинка.

обертати [ConveyorMotor v] [вгору v]

Параметри

Опис

двигун

Двигун, що обертається: КонвеєрнийДвигун або ВпускнийДвигун.

напрямок

Напрямок обертання двигуна:

  • ДвигунКонвеєра — вгору або вниз
  • ДвигунВпуску — впуск або випуск

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [350] [мм v] ▶

обертальний двигун для#

Блок стеку spin motor for обертає двигун на певну відстань. Обертання залежить від поточного положення двигуна. Проект чекатиме, поки двигун завершить обертання, перш ніж запуститься наступний блок у стеку.

обертати [ConveyorMotor v] [вгору v] на (90) [градуси v] ▶

Параметри

Опис

двигун

Двигун, що обертається: КонвеєрнийДвигун або ВпускнийДвигун.

напрямок

Напрямок обертання двигуна:

  • ДвигунКонвеєра — вгору або вниз
  • ДвигунВпуску — впуск або випуск

відстань

Відстань, на яку обертається двигун. Градуси використовують цілі числа. Оберти можуть використовувати цілі або десяткові числа.

одиниця

Одиниця вимірювання відстані: градуси або повороти.

і не чекай

Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу.

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [350] [мм v] ▶

поверніть двигун у потрібне положення#

Блок стеку spin motor to position обертає двигун у певне положення.

Положення двигуна – це відстань, на яку він обертувався, вимірюється в градусах або обертах. Один оберт дорівнює 360 градусам. На початку проекту положення двигуна встановлюється на 0 градусів. Положення двигуна також можна встановити за допомогою блоку set motor position.

Значення положення є абсолютними. Це означає, що напрямок обертання залежить від поточного положення двигуна.

Наприклад, якщо двигун запускається при 0 градусах і обертається до положення 720 градусів, він обертається вперед на два оберти. Якщо він потім обертається до положення 360 градусів, він обертається назад на один оберт, оскільки 360 менше за 720.

обертати [ConveyorMotor v] до позиції (90) [градуси v] ▶

Параметри

Опис

двигун

Двигун, що обертається: КонвеєрнийДвигун або ВпускнийДвигун.

позиція

Значення положення, до якого обертатиметься двигун. Градуси використовують цілі числа. Оберти можуть використовувати цілі або десяткові числа.

одиниця

Одиниця вимірювання положення: градуси або оберти.

і не чекай

Виберіть стрілку (▶), щоб розгорнути блок і сказати і не чекайте, тоді наступний блок у стеку запуститься одразу.

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] до позиції [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [350] [мм v] ▶

зупинити двигун#

Блок стека зупинити двигун зупиняє вибраний двигун.

зупинити [ConveyorMotor v]

Параметри

Опис

двигун

Двигун, який потрібно зупинити: ДвигунКонвеєра або ДвигунВпуску.

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [350] [мм v] ▶
зупинити [IntakeMotor v]

Налаштування#

встановити швидкість двигуна#

Блок стека set motor velocity вказує двигуну, з якою швидкістю обертатися. Вищий відсоток змушує двигун обертатися швидше, а нижчий — повільніше.

Кожен проект починається з того, що кожен двигун обертається зі швидкістю 50% за замовчуванням.

Примітка: Вища швидкість робить двигун обертанням швидше, але це може бути менш точно. Нижча швидкість робить двигун обертанням повільніше, але це може бути точнішим.

встановити швидкість [ConveyorMotor v] [50] [% v]

Параметри

Опис

двигун

Двигун для встановлення швидкості: КонвеєрнийДвигун або ВпускнийДвигун.

швидкість

Швидкість обертання двигуна. Відсоток використовує цілі числа від 0% до 100%.

одиниця

Одиниця вимірювання швидкості: %.

Приклад

коли запущено
[Pick up a second Block.]
встановити швидкість [ConveyorMotor v] [100] [% v]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [400] [мм v] ▶

встановити тайм-аут двигуна#

Блок стеку set motor timeout встановлює час, протягом якого двигун намагатиметься завершити рух. Якщо двигун не зможе завершити рух за цей час, він припинить спроби та перейде до наступного блоку в стеку. Це запобігає зависанню двигуна на русі.

встановити тайм-аут [ConveyorMotor v] [1] секунд

Параметри

Опис

двигун

Двигун для встановлення часу очікування: ДвигунКонвеєра або ДвигунВпуску.

час

Кількість секунд, протягом яких двигун може спробувати завершити рух. Це може бути ціле або десяткове число.

Приклад

коли запущено
[Pick up a second Block.]
встановити тайм-аут [ConveyorMotor v] [0.5] секунд
обертати [ConveyorMotor v] до позиції [1000] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [400] [мм v] ▶

Позиція#

положення двигуна#

Положення двигуна — це на скільки він обертився, вимірюється в градусах або обертах. Один оберт дорівнює 360 градусам. Блок репортера положення двигуна повідомляє поточне положення двигуна.

На початку проекту положення двигуна встановлюється на 0 градусів. Якщо двигун обертається на один повний оберт вперед, положення становитиме 360 градусів або 1 оберт. Якщо двигун обертається в іншому напрямку, положення буде від’ємним.

(позиція [ConveyorMotor v] у [градуси v])

Параметри

Опис

двигун

Двигун, про положення якого потрібно повідомляти: ДвигунКонвеєра або ДвигунВпуску.

одиниця

Одиниця вимірювання для повідомлення про положення двигуна у: градусах або обертах.

Приклад

коли запущено
[Pick up a second Block.]
поки <(позиція [ConveyorMotor v] у [градуси v]) [math_less_than v] [200]>
обертати [ConveyorMotor v] [вгору v]
Кінець
зупинити [ConveyorMotor v]
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [400] [мм v] ▶

встановити положення двигуна#

Положення двигуна — це відстань його обертання, що вимірюється в градусах або обертах. Один оберт дорівнює 360 градусам. Блок стеку встановлення позиції двигуна змінює поточне положення двигуна на нове значення.

Наприклад, якщо двигун обертався на 180 градусів, встановлення положення на 0 градусів скине це положення зі 180 на 0 градусів. Потім двигун може обертатися в положення на основі цього нового значення.

встановити позицію [ConveyorMotor v] (0) [градуси v]

Параметри

Опис

двигун

Двигун для встановлення положення: ДвигунКонвеєра або ДвигунВпуску.

позиція

Значення положення, до якого обертатиметься двигун. Градуси використовують цілі числа. Оберти можуть використовувати цілі або десяткові числа.

одиниця

Одиниця вимірювання положення: градуси або оберти.

Приклад

коли запущено
[Pick up a second Block.]
встановити позицію [ConveyorMotor v] [-200] [градуси v]
обертати [ConveyorMotor v] до позиції [0] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [400] [мм v] ▶

Цінності#

двигун готовий#

Булев блок motor is done повідомляє, чи завершив рух двигуна. Це можна використовувати для керування часом інших дій на основі руху двигуна.

  • Правда — Двигун завершив рух.

  • Хибно — Двигун все ще рухається.

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

<[ConveyorMotor v] завершено?>

Параметри

Опис

двигун

Двигун, який має повідомляти про завершення руху: ConveyorMotor або IntakeMotor.

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] до позиції [300] [градуси v] ◀ і не чекати
їхати [вперед v]
обертати [IntakeMotor v] [споживання v]
чекати до <[ConveyorMotor v] завершено?>
зупинити рух
зупинити [IntakeMotor v]

двигун обертається#

Булев блок motor is spinning повідомляє, чи обертається двигун. Це можна використовувати для керування часом інших дій на основі руху двигуна.

  • Правда — Двигун обертається.

  • Хибно — Двигун не обертається.

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

<[ConveyorMotor v] обертається?>

Параметри

Опис

двигун

Двигун, про який потрібно повідомляти, чи обертається він: КонвеєрнийДвигун або ВпускнийДвигун.

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] до позиції [300] [градуси v] ◀ і не чекати
чекати [0.1] секунд
поки <[ConveyorMotor v] обертається?>
їхати [вперед v] на [200] [мм v] ▶
обертати [IntakeMotor v] [споживання v]

швидкість двигуна#

Блок репортера швидкість двигуна повідомляє про швидкість обертання двигуна у відсотках від -100% до 100%.

(швидкість [ConveyorMotor v] у [% v] :: custom-motion)

Параметри

Опис

двигун

Двигун, швидкість якого потрібно виміряти: КонвеєрнийДвигун або ВпускнийДвигун.

одиниця

Одиниця вимірювання швидкості двигуна: %.

Приклад

коли запущено
[Pick up a second Block.]
встановити швидкість [ConveyorMotor v] [100] [% v]
обертати [ConveyorMotor v] до позиції [300] [градуси v] ◀ і не чекати
чекати [0.2] секунд
вивести (швидкість [ConveyorMotor v] у [% v] :: custom-motion) ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [400] [мм v] ▶

Зір штучного інтелекту#

Дії#

отримати дані об’єкта#

Блок get object data фільтрує дані з кадру AI Vision Sensor до єдиного підпису — збереженого опису чогось, що датчик може розпізнати, наприклад, ігрового елемента на полі.

Набір даних зберігає об’єкти, відсортовані від найбільшого до найменшого за шириною, починаючи з індексу 0. Доступ до властивостей кожного об’єкта можна отримати за допомогою блоку AI Vision object property. Якщо не виявлено відповідних об’єктів, повертається порожній набір даних.

Блок стека даних об’єкта Get.#
отримати дані [AI Classifications v] з AI Vision

Параметр

Опис

підпис

Фільтрує набір даних, щоб включити лише дані заданого підпису. Доступні підписи:

  • Класифікації ШІ - Виявляє червоні та сині блоки.

Приклад

коли запущено
[If an object is detected, pick it up.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
чекати до <[Bumper v] натиснуто?>
зупинити рух
перервати

Налаштування#

елемент об’єкта встановлення#

Блок set object item встановлює, який елемент у наборі даних використовувати.

Блок стека елементів об’єкта Set AI Vision.#
встановити елемент об'єкта [AIVision v] на [1]

Параметри

Опис

елемент

Номер елемента в наборі даних, який потрібно використовувати.

Приклад

коли запущено
[Display what object is farthest away.]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
встановити елемент об'єкта [AIVision v] на (кількість об'єктів [AIVision v])
очистити всі рядки
якщо <об'єкт [AIVision v] є [BlueBlock v]?> тоді
вивести [Blue Block farthest away.] ▶
інакше
вивести [Red Block farthest away.] ▶

Цінності#

об’єкт існує#

Блок об’єкт існує повертає логічне значення, яке вказує, чи виявлено будь-який об’єкт у наборі даних.

  • True – Набір даних містить виявлений об’єкт.

  • Хибно – Набір даних не містить жодних виявлених об’єктів.

Об’єкт AI Vision існує як логічний блок.#
<об'єкт [AIVision v] існує?>

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено
[If an an object is detected, pick it up.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
чекати до <[Bumper v] натиснуто?>
зупинити рух
перервати

об’єкт є#

Блок Об’єкт AI Vision is повертає логічне значення, яке вказує, чи відповідає виявлений об’єкт певній класифікації.

  • True – Елемент у наборі даних є певним об’єктом.

  • Хибно – Елемент у наборі даних не є конкретним об’єктом.

Об’єкт AI Vision є логічним блоком.#
<об'єкт [AIVision v] є [BlueBlock v]?>

Параметр

Опис

об’єкт

З яким об’єктом порівняти елемент:

  • BlueBlock
  • RedBlock

Приклад

коли запущено
[Display what object is farthest away.]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
встановити елемент об'єкта [AIVision v] на (кількість об'єктів [AIVision v])
очистити всі рядки
якщо <об'єкт [AIVision v] є [BlueBlock v]?> тоді
вивести [Blue Block farthest away.] ▶
інакше
вивести [Red Block farthest away.] ▶

кількість об’єктів#

Блок object count повертає кількість виявлених об’єктів у наборі даних у вигляді цілого числа.

Блок стека елементів об’єкта Set AI Vision.#
(кількість об'єктів [AIVision])

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено
[Display what object is farthest away.]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
встановити елемент об'єкта [AIVision v] на (кількість об'єктів [AIVision v])
очистити всі рядки
якщо <об'єкт [AIVision v] є [BlueBlock v]?> тоді
вивести [Blue Block farthest away.] ▶
інакше
вивести [Red Block farthest away.] ▶

властивість об’єкта#

Існує шість властивостей, які додаються до кожного об’єкта (показано нижче), що зберігаються після використання блоку get object data.

Блок звіту про властивості об’єкта AI Vision.#
(об'єкт [AIVision v] [ширина v])

Усі значення властивостей описують положення та розмір виявленого об’єкта в області зору сенсора штучного інтелекту в момент використання блоку get object data. Ці значення вимірюються в пікселях, виходячи з роздільної здатності сенсора 320 на 240 пікселів.

Параметр

Опис

власність

Яку властивість виявленого об’єкта використовувати:

ширина#

Властивість width повідомляє ширину виявленого об’єкта в пікселях як ціле число від 1 до 320.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на ширину.#
(об'єкт [AIVision v] [ширина v])

Приклад

коли запущено
[If an an object is detected, approach and pick it up.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <(об'єкт [AIVision v] [ширина v]) [math_greater_than v] [65]> тоді
зупинити рух
перервати
інакше
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
висота#

Властивість height повідомляє висоту виявленого об’єкта в пікселях як ціле число від 1 до 240.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на висоту.#
(об'єкт [AIVision v] [висота v])

Приклад

коли запущено
[If an an object is detected, approach and pick it up.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <(об'єкт [AIVision v] [висота v]) [math_greater_than v] [55]> тоді
зупинити рух
перервати
інакше
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
центрX#

Властивість centerX повідомляє x-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 320.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на centerX.#
(об'єкт [AIVision v] [centerX v])

Приклад

коли запущено
[Pick up a Block from the top left group.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
повернути [ліворуч v] на [80] градусів ▶
їхати [вперед v] на [100] [мм v] ▶
встановити швидкість повороту [20] [% v]
повернути [ліворуч v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <<[140] [math_less_than v] (об'єкт [AIVision v] [centerX v])> та <(об'єкт [AIVision v] [centerX v]) [math_less_than v] [180]>> тоді
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
чекати до <[Bumper v] натиснуто?>
зупинити рух
центрY#

Властивість centerY повідомляє y-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 240.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на centerY.#
(об'єкт [AIVision v] [centerY v])

Приклад

коли запущено
[If an an object is detected, approach and pick it up.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <(об'єкт [AIVision v] [centerY v]) [math_greater_than v] [140]> тоді
зупинити рух
перервати
інакше
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
походженняX#

Властивість originX повідомляє x-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 320.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на originX.#
(об'єкт [AIVision v] [originX v])

Приклад

коли запущено
[Pick up a Block from the top left group.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
повернути [ліворуч v] на [80] градусів ▶
їхати [вперед v] на [100] [мм v] ▶
встановити швидкість повороту [20] [% v]
повернути [ліворуч v]
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <<[100] [math_less_than v] (об'єкт [AIVision v] [originX v])> та <(об'єкт [AIVision v] [originX v]) [math_less_than v] [140]>> тоді
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
чекати до <[Bumper v] натиснуто?>
зупинити рух
походженняY#

Властивість originY повідомляє y-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 240.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на originY.#
(об'єкт [AIVision v] [originY v])

Приклад

коли запущено
[If an an object is detected, approach and pick it up.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
назавжди
отримати дані [AI Classifications v] з [AIVision v]
якщо <об'єкт [AIVision v] існує?> тоді
якщо <[120] [math_less_than v] (об'єкт [AIVision v] [originY v])> тоді
зупинити рух
перервати
інакше
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
Кінець
Кінець

Зондування#

Оптичний#

Оптичний знайшов об’єкт#

Логічний блок Оптичний датчик знайдено об’єкт повідомляє, чи виявляє оптичний датчик об’єкт у межах досяжності.

  • Правда — Оптичний датчик виявляє об’єкт.

  • Хибно — Оптичний датчик не виявляє об’єкт.

<[Optical v] знайшов об'єкт?>

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено
[Move the preloaded Block to the top of the Conveyor.]
обертати [ConveyorMotor v] [вгору v]
чекати до <[Optical v] знайшов об'єкт?>
зупинити [ConveyorMotor v]

Оптичне розпізнавання кольору#

Логічний блок Optical detects color повідомляє, чи виявляє оптичний датчик заданий колір, на основі виявленого значення відтінку.

  • Правда – Датчик виявляє заданий колір.

  • Хибно – Датчик не розпізнає вказаний колір.

<[Optical v] виявляє [червоний v]?>

Параметри

Опис

колір

Який колір шукати:

  • червоний – Виявлене значення відтінку між 340° - 20°.
  • зелений – Виявлене значення відтінку між 80° - 140°.
  • синій – Виявлене значення відтінку між 200° - 240°.
  • жовтий – Виявлене значення відтінку між 40° - 60°.
  • помаранчевий – Виявлене значення відтінку між 20° - 40°.
  • фіолетовий – Виявлене значення відтінку між 240° - 280°.
  • блакитний – Виявлене значення відтінку між 140° - 200°.

Приклад

коли запущено
[Pick up and move a Blue Block to the top of the Conveyor.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [360] [мм v] ▶
обертати [ConveyorMotor v] [вгору v]
чекати до <[Optical v] виявляє [синій v]?>
зупинити [ConveyorMotor v]

Оптична яскравість#

Блок репортера Оптична яскравість повідомляє, скільки світла відбивається назад до оптичного датчика, у відсотках від 0% до 100%.

(яскравість [Optical v] у %)

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено
[Move the preloaded Block to the top of the Conveyor.]
обертати [ConveyorMotor v] [вгору v]
чекати до <[0] [math_less_than v] (яскравість [Optical v] у %)>
зупинити [ConveyorMotor v]

Оптичний відтінок#

Блок репортера Оптичний відтінок повідомляє відтінок, виявлений оптичним датчиком, у вигляді числа від 0 до 359 градусів.

Відтінок – це спосіб опису кольору за допомогою чисел на колірному колі.

Кругле колірне колесо, що відображає повний спектр відтінків, позначених значеннями градусів по периметру, що збільшуються з кроком 30 градусів від 0° зверху до 360°.

(відтінок [Optical v] у градусах)

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено
[Pick up and move a Blue Block to the top of the Conveyor.]
обертати [ConveyorMotor v] [вгору v] на [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v] на [360] [мм v] ▶
обертати [ConveyorMotor v] [вгору v]
чекати до <[240] [math_equal v] (відтінок [Optical v] у градусах)>
зупинити [ConveyorMotor v]

коли оптичний#

Блок when Optical запускає приєднаний стек блоків щоразу, коли оптичний датчик виявляє або втрачає об’єкт.

коли [Optical v] [виявляє v] об'єкт

Параметри

Опис

стан

Коли запуститься приєднаний стек блоків: detects запускається, коли виявлено невиявлений об’єкт, тоді як loses запускається, коли виявлений об’єкт більше не виявляється.

GPS#

Положення GPS#

Блок позиції GPS повертає зміщення позиції точки відліку повороту робота відносно центру поля за допомогою датчика GPS (Система позиціонування гри™).

(позиція [GPS v] [X v] у [мм v])

Параметри

Опис

вісь

Яку вісь відображати:

  • X
  • Y

одиниці

Одиниця вимірювання для позначення положення: мм або дюйми

Приклад

коли запущено
[Pick up a second Block.]
обертати [ConveyorMotor v] до позиції [200] [градуси v] ▶
обертати [IntakeMotor v] [споживання v]
їхати [вперед v]
чекати до <[-450] [math_greater_than v] (позиція [GPS v] [Y v] у [мм v])>
зупинити рух

GPS-курс#

Блок GPS heading повертає напрямок руху робота на основі показань датчика GPS (Game Positioning System™) з польового коду GPS VEX від 0,00 до 359,99 градусів.

(курс [GPS v] у градусах)

Параметри

Опис

Цей блок не має параметрів.

Приклад

коли запущено
[Score the preloaded Block into a Center Goal.]
повернути [ліворуч v]
чекати до <[40] [math_greater_than v] (курс [GPS v] у градусах)>
їхати [вперед v] на [1000] [мм v] ▶
повернути [праворуч v]
чекати до <(курс [GPS v] у градусах) [math_greater_than v] [310]>
їхати [назад v] на [200] [мм v] ▶
обертати [ConveyorMotor v] [вгору v]