Skip to main content
Skip to Main Content
Skip to main content
Навігація

Chapter 4: Preparing to Compete


الدرس 2: استخدام قالب مسابقة الكتل

Вітаємо у класі VEX. Мене звати Лорен, і на цьому уроці ми розглянемо шаблон конкурсу «Блоки». У попередньому уроці ми трохи загалом говорили про Шаблон змагань і про те, чому його потрібно використовувати під час матчу VEX Robotics Competition. Існують різні версії шаблону конкурсу залежно від того, яку мову програмування ви використовуєте, блоки чи текст. У цьому конкретному відео, оскільки в цьому курсі ми зосереджуємося на блоках, я розгляну шаблон конкурсу блоків у VEXcode V5.

Тепер, перш ніж ми заглибимося в усе, давайте спочатку поговоримо про матеріали. Я збираюся використовувати тут Advanced TrainingBot, щоб продемонструвати деякі функції Arm and Claw. Я також використовуватиму контролер, ігровий об'єкт та VEXcode V5, щоб показати вам цей шаблон для змагань. Для цього відео вам взагалі не знадобляться жодні матеріали. Я просто проведу для вас кілька демонстрацій. Отже, знову ж таки, вам нічого не потрібно для цього конкретного уроку.

Давайте поговоримо про мету цього уроку. Ми розглянемо різні частини шаблону конкурсу Blocks, а точніше три частини: частину «Коли запущено», яка є нашою передавтономною частиною, частину «Автономна» та частину «Керування водієм». Я розповім про це в наведеному тут прикладі коду, а потім ми фактично протестуємо його та перевіримо функціональність на нашому роботу за допомогою контролера, щоб побачити, як виглядає шаблон конкурсу в дії.

З огляду на це, давайте заглибимося в наш приклад проекту.

[Музична підказка]

Добре, щоб переглянути шаблон конкурсу, я перейду до Файл, Відкрити приклади, Шаблони, а потім до Шаблон конкурсу. Ось кілька речей. Номер один, знову ж таки, ці три розділи. Перш ніж ми заглибимося в це на моєму конкретному прикладі, я хочу зазначити, що перше, що нам насправді потрібно зробити, перш ніж ми зможемо почати заповнювати ці поля, це додати сюди конфігурацію нашого пристрою. Отже, знову ж таки, якщо ви використовуєте 2-моторний трансмісійний агрегат або у вас є двигуни типу «маніпулятор», «кігтеподібний» чи щось подібне, вам спочатку потрібно переконатися, що ви їх додали, щоб блоки розмістилися з лівого боку. Це дозволить вам знову заповнити ці розділи.

Щойно я відкрию шаблон конкурсу, мені потрібно переконатися, що я додав конфігурацію свого пристрою. Далі, одна річ, яку я хочу згадати, це те, що в цьому розділі керування драйвером ви можете бачити блок forever. Причина, чому це там є, полягає в тому, що більшу частину часу в частині керування драйвером, коли ми використовуємо контролер, нам потрібно постійно перевіряти, чи натискаються кнопки або рухаються джойстики. Ось чому блок "назавжди" там є за замовчуванням. Якщо ви хочете видалити його з якоїсь конкретної причини, ви можете це зробити, або якщо ви не використовуєте цей стек, а лише конфігурацію пристрою, ви можете просто залишити це як є.

Гаразд. Давайте розглянемо кожен із цих трьох розділів та їхнє фактичне значення на прикладі, який я навів.

[Музична підказка]

Для початку, я хочу зазначити, що наш шаблон конкурсу складається з трьох основних частин. Перший – це Коли запущено або передавтономний. Друга — це «Коли автономно» або автономна частина, а третя — це «Коли керування водієм» або частина «Керування водієм». Усі три ці блоки подій або капелюхів виконують різні частини, знову ж таки, цього шаблону конкурсу.

Давайте поговоримо про кожен розділ. Передавтономна частина або частина «Коли запущено» виконається одразу після запуску проєкту шаблону конкурсу. Це найкраще використовувати для встановлення будь-якої ініціалізації.

Дякую, що приєдналися до мене на цьому уроці. Сподіваюся, ви знайшли це корисним та інформативним. Якщо у вас є якісь запитання, звертайтеся. Щасливого програмування та успіхів у ваших проектах VEX Robotics!

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

Музична підказка

Отже, тепер, коли я це маю, це частина "Коли почався", яка стосується нашої доавтономної частини. Далі йде наша автономна частина. Автономна частина матчу триватиме 15 секунд, і цей конкретний розділ коду виконуватиметься для цієї автономної частини матчу. Щойно шаблон змагання буде запущено, передавтономна частина «Коли розпочато» почнеться в будь-якому разі. Потім запуститься 15-секундний автономний режим. Ми говорили про систему керування полем і про те, як вона регулюватиме, коли всі роботи запускатимуться та зупинятимуться, коли саме ця частина буде виконуватися в матчі, цей рядок коду буде виконуватися.

Тепер, для мого конкретного прикладу, який я маю тут, наш робот почне з ігрового об'єкта в клешні. Потім він обійде об'єкт, підніметься в повітря, проїде вперед на 200 міліметрів, опустить руку вниз і скине наш ігровий об'єкт вниз. Це може імітувати, наприклад, зарахування очок на початку матчу. Отже, ось що відбуватиметься під час моєї автономної частини. Знову ж таки, автономна частина означає, що я не можу контролювати водія, а контролер впливає на мого робота. Протягом цієї частини все відбувається автономно. Все робиться за допомогою коду.

Дивлячись на цю третю частину, у мене є мій Driver Control. Тепер, хочу зазначити, що в конфігурації нашого пристрою я, очевидно, можу налаштувати трансмісію та контролер, а це означає, що я можу призначати різні конфігурації трансмісії своїм джойстикам, а також призначати різні кнопки для керування різними двигунами. Однак, припустимо, що у мене закінчилися кнопки на контролері або є різні речі, якими я хочу маніпулювати. Я можу додати до цієї події "Коли керування водієм" блокувати певні речі, які я хочу зробити, але до яких, можливо, у мене немає доступу в конфігурації пристрою, або, можливо, я хочу встановити швидкість трансмісії чи щось подібне.

Отже, мій конкретний приклад коду знову ж таки, для частини керування драйвером, це дозволить мені керувати моїм Claw однією кнопкою на контролері. Подивимося, як це виглядатиме. Отже, знову ж таки, коли я використовую частину керування драйвером, я можу одночасно використовувати конфігурацію пристрою з контролером та частину керування драйвером. Або я можу використовувати один або інший. Якщо ви не використовуєте жодного з цих трьох стеків: передавтономний "під час запуску", автономний або керування драйвером, ви можете залишити їх порожніми.

Музична підказка

Гаразд. Тепер, після всього сказаного, давайте подивимося, як це виглядатиме, коли я збираюся запустити це на своєму роботі. Гаразд. Давайте розглянемо це на моєму контролері. Я можу перейти до програм і побачити там свій шаблон конкурсного проєкту, який я вже завантажив собі на мозок. І якщо я прогорну на один із них, там з'явиться опція для запуску з обмеженим часом. Це буде імітувати систему керування полем, про яку я говорив раніше, як усе контролюється цією системою керування полем. Тож коли змагальний проєкт фактично починається, це контролюється цим, коли автономна частина матчу контролюється цим, і коли частина керування водієм контролюється цим, я можу імітувати це, використовуючи цей таймерний запуск на контролері.

Подячна записка

Дякую, що знайшли час дослідити цей процес разом зі мною. Сподіваюся, ця демонстрація була корисною.

Заключне повідомлення

Не соромтеся звертатися, якщо у вас є якісь запитання або потрібні додаткові роз'яснення. Щасливого програмування та успіхів у ваших проектах з робототехніки!

Отже, якщо я це оберу, і мені тут буде написано 15 секунд для автономної частини, одну хвилину, 45 секунд для керування водієм. І коли я знову натисну цю кнопку, воно справді запуститься. Коли я його запускаю, він відраховуватиме 3-2-1, як у матчі. А потім ми почнемо.

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

[Музична підказка]

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

Тож я продовжу, бо пам'ятаю, що ви прийшли до проєкту для нашої частини керування драйверами, я можу керувати цими різними частинами. Отже, у мене залишилася одна хвилина і 25 секунд. Я зараз під'їду, виходячи з конфігурації водія: це керує трансмісією, це керує важелем, ця кнопка керує «Клешнями». Одне натискання кнопки дозволить мені захоплювати предмети. Я можу підняти та опустити важіль, натиснувши дві кнопки. Одна кнопка для керування Кігтем. Закрито, Відкрито.

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

Ви можете побачити три різні частини шаблону. Знову ж таки, ми проходимо через розділ «Коли запущено» попереднього автономного режиму, і він працюватиме незалежно від того, який саме розділ. Якщо ми займаємося автономним режимом або режимом керування водієм, тоді ми переходимо до автономного розділу. Я не можу користуватися своїм контролером, коли це відбувається. Після цього воно перейде до розділу керування водієм, де я зможу керувати своїм роботом за допомогою контролера, і він працюватиме одну хвилину 45 секунд, поки не закінчиться. Тоді, як я вже згадував раніше, за допомогою системи керування полем усі роботи запускатимуться та зупинятимуться одночасно.

[Музична підказка]

Гаразд. Давайте коротко підсумуємо те, що ми розглянули в цьому відео. Ми розглянули шаблон конкурсу «Блоки». Є три різні порції. Коли запущено, попередньо автономне, яке працюватиме незалежно від цього. Це призначено для ініціалізації змінних, можливо, налаштування та калібрування гіроскопа, друку завдяки екрану мозку, встановлення положень двигуна, таких як утримання, або навіть підняття руки в певне положення. Все це робиться перед автономною частиною матчу.

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

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

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

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

Сподіваюся, що вся ця інформація була корисною для вас, коли ви вивчатимете шаблон змагань та будете готуватися до участі у змаганнях з робототехніки VEX. Я так схвильований/а.

Вітаю, ви завершили четвертий розділ, і побачимося в іншому відео.

Learning Objectives

Learning Objectives Section
  • حدد العناصر الرئيسية لقالب مسابقة الكتل في VEXcode V5، بما في ذلك أقسام متى بدأت والقيادة الذاتية والتحكم في السائق.

Summary

Summary Section

هذا هو الفيديو الثاني لمقدمة الدورة التدريبية VEX V5 الفصل 4. إذا لم تكن قد شاهدت الفيديو الأول بعد، فارجع وشاهد الدرس 1: ميكانيكا مباراة مسابقة الروبوتات VEX.

في الدرس 2، ستتعرف على كل عنصر من العناصر الرئيسية الثلاثة لقالب مسابقة الكتل في VEXcode V5 من خلال عرض مثال عملي.

للمناقشات والأسئلة، انضم إلى موضوع PD+ Community المخصص للتعلم والاستكشاف الجماعي.

تهانينا، لقد أكملت دورة مقدمة إلى VEX V5 التدريبية!