Chapter 4: Preparing to Compete
الدرس 2: استخدام قالب مسابقة الكتل
Здравствуйте и добро пожаловать в учебный класс VEX. Меня зовут Лорен, и на этом уроке мы рассмотрим использование шаблона для конкурса Blocks Competition Template. В предыдущем уроке мы более подробно обсудили шаблон соревнований и то, почему его необходимо использовать во время матчей VEX Robotics Competition. Существуют разные версии шаблона для соревнований в зависимости от используемого языка программирования, будь то блочный или текстовый шаблон. В этом видео, поскольку в рамках этого курса мы сосредоточимся на блоках, я расскажу о шаблоне конкурса блоков в VEXcode V5.
Прежде чем мы углубимся во все детали, давайте сначала поговорим о материалах. Здесь я буду использовать Advanced TrainingBot, чтобы продемонстрировать некоторые функциональные возможности манипулятора Arm and Claw. Я также буду использовать контроллер, игровой объект и VEXcode V5, чтобы наглядно продемонстрировать вам этот шаблон для соревнований. Для просмотра этого видео вам не понадобятся никакие материалы. Я просто проведу для вас несколько демонстраций. Повторюсь, для этого урока вам ничего не понадобится.
Давайте обсудим цель этого урока. Мы рассмотрим различные части шаблона Blocks Competition Template, а точнее, три части: этап запуска (предварительный этап автономного управления), этап автономного управления и этап управления водителем. Я расскажу об этом в приведенном здесь примере кода, а затем мы протестируем его и посмотрим, как работает наш робот с помощью контроллера, чтобы увидеть, как выглядит шаблон соревнований в действии.
Итак, давайте перейдем к рассмотрению примера нашего проекта.
[Музыкальная вставка]
Хорошо, чтобы просмотреть шаблон конкурса, я перейду в меню «Файл», «Открыть примеры», «Шаблоны», а затем выберу «Шаблон конкурса». Здесь пара замечаний. Во-первых, опять же, эти три раздела. Прежде чем мы перейдем к рассмотрению этого конкретного примера, хочу отметить, что первое, что нам нужно сделать, прежде чем мы сможем начать заполнять эти поля, — это добавить здесь конфигурацию нашего устройства. Итак, еще раз, если вы используете двухмоторную трансмиссию или у вас есть двигатели для манипуляторов или захватов, или что-то подобное, вам сначала нужно убедиться, что вы добавили их, чтобы блоки отобразились с левой стороны. Это позволит вам снова заполнить эти разделы.
Как только я открою шаблон конкурса, мне нужно будет обязательно добавить конфигурацию своего устройства. Далее, я хочу отметить, что в разделе «Управление водителем» вы можете увидеть блокировку «навсегда». Причина, по которой это там присутствует, заключается в том, что большую часть времени при использовании контроллера в части управления водителем нам необходимо постоянно проверять, нажаты ли кнопки или перемещены ли джойстики. Вот почему блокировка "навсегда" присутствует там по умолчанию. Если вам нужно удалить его по какой-либо конкретной причине, вы можете это сделать, или, если вы не используете этот стек и просто используете конфигурацию устройства, то можете оставить все как есть.
Хорошо. Давайте рассмотрим каждый из этих трех разделов и их значение на примере, который я привел.
[Музыкальная вставка]
Для начала хочу отметить, что наш шаблон конкурса состоит из трех основных частей. Первый вариант — это когда система запущена или находится в доавтономном состоянии. Второй раздел — это «Когда автономный режим» или автономная часть, а третий — «Когда управление водителем» или часть, управляемая водителем. Все три этих блока событий или блоков, связанных с головными уборами, выполняют разные части, опять же, этого шаблона конкурса.
Давайте обсудим каждый раздел. Предварительно автономная часть, или этап запуска, будет выполнена сразу после запуска проекта Competition Template. Этот метод лучше всего подходит для установки любых параметров инициализации.
Спасибо, что присоединились ко мне на этом уроке. Надеюсь, эта информация оказалась для вас полезной и информативной. Если у вас возникнут какие-либо вопросы, не стесняйтесь обращаться. Удачного программирования и успехов в ваших проектах VEX Robotics!
Итак, если мне нужно что-то вывести на экран компьютера перед началом автономной части проекта, если мне нужно откалибровать гироскоп, если я хочу распечатать данные в этом конкретном примере, поскольку я использую манипулятор и клешню, я установлю их двигатели в режим удержания. Это означает, что если я подниму руку или открою клешню, двигатели останутся в этом конкретном положении и не опустятся, например, под действием силы тяжести. Так что я просто задаю себе предварительные параметры автономной работы своих двигателей. В этом конкретном примере мы посмотрим, как это выглядит на примере демонстрации.
Музыкальная подсказка
Итак, теперь, когда у меня есть эта информация, переходим к этапу "Когда всё началось", нашему периоду до автономного управления. Далее следует наша автономная часть. Автономная часть матча продлится 15 секунд, и этот конкретный фрагмент кода будет выполняться в течение этой автономной части матча. Как только будет запущен шаблон конкурса, на этапе "При запуске" до запуска автономной системы начнется действие, независимо от исходных данных. Затем запустится 15-секундный автопилот. Мы обсудили систему управления полем и то, как она будет регулировать запуск и остановку всех роботов, а также то, когда будет выполняться конкретная часть матча, эта строка кода.
Теперь, в моем конкретном примере, наш робот начнет работу с игровым объектом в захвате. Затем механизм обхватит объект, поднимется в воздух, продвинется вперед на 200 миллиметров, опустит манипулятор и сбросит игровой объект вниз. Это может, например, имитировать забитый гол в начале матча. Вот что будет происходить во время моей автономной части проекта. Опять же, автономная часть означает, что я не могу управлять роботом с помощью контроллера, который оказывает на него влияние. На этом этапе все процессы протекают автономно. Всё делается с помощью кода.
Взгляните на эту третью часть, вот здесь, у меня находится панель управления водителем. Хочу отметить, что в конфигурации нашего устройства я могу настроить и привод, и контроллер, а это значит, что я могу назначить разные конфигурации привода джойстикам, а также назначить разные кнопки для управления разными двигателями. Однако, допустим, у меня закончились кнопки на контроллере или мне нужно управлять какими-то другими элементами. Я могу добавить в этот блок событий "Когда управление осуществляется водителем" определенные действия, к которым у меня, возможно, нет доступа в конфигурации устройства, или, например, я хочу установить скорость трансмиссии, или что-то подобное.
Итак, вот мой конкретный пример кода, касающийся управления драйвером: он позволит мне управлять моей клешней с помощью одной кнопки на контроллере. Посмотрим, как это будет выглядеть. Таким образом, при использовании раздела «Управление драйвером» я могу одновременно использовать как конфигурацию устройства с контроллером, так и раздел управления драйвером. Или я могу использовать либо один, либо другой вариант. Если вы не используете ни один из этих трех режимов — предавтономный (при запуске), автономный или режим управления водителем — вы можете оставить эти поля пустыми.
Музыкальная подсказка
Все в порядке. Теперь, когда все это сказано, давайте посмотрим, как это будет выглядеть на практике, когда я буду запускать это на своем роботе. Все в порядке. Давайте посмотрим на это на моем контроллере. Я могу перейти в раздел программ и увидеть там свой проект «Шаблон для конкурса», который я уже скачал в свою память. А если навести на него курсор, появится опция для запуска на время. Это позволит смоделировать систему управления полем, о которой я говорил ранее, и показать, как всё в ней контролируется. Таким образом, когда фактически начнётся соревновательный проект, когда будет управляться автономная часть матча, и когда будет управляться часть, связанная с управлением водителем, я смогу смоделировать это с помощью этого хронометрированного запуска на контроллере.
Благодарственное письмо
Спасибо, что уделили время и обсудили этот процесс со мной. Надеюсь, эта демонстрация была полезной.
Заключительное сообщение
Не стесняйтесь обращаться к нам, если у вас возникнут вопросы или потребуется дополнительная информация. Удачного программирования и успехов в ваших проектах по робототехнике!
Итак, если я выберу этот вариант, мне здесь покажут 15 секунд для автономного режима, одну минуту и 45 секунд для режима управления водителем. А когда я нажму эту кнопку ещё раз, он действительно начнёт работать. Когда я запущу его, он начнет обратный отсчет 3-2-1, как в обычном матче. А затем мы начнём.
Таким образом, как только я нажму кнопку «Старт», запустится автономная часть, или же сначала запустится предавтономная часть, независимо от обстоятельств. Затем немедленно начнётся автономный этап. Я покажу вам, как только начнётся автономная часть процесса. Даже если я поверну контроллер, чтобы робот двигался, он не сдвинется с места, потому что, опять же, во время автономной части я не могу управлять роботом с помощью контроллера.
[Музыкальная вставка]
Давайте посмотрим, как именно это произойдет. Итак, начнём. Все в порядке. До завершения автономного режима осталось еще несколько секунд. Как видите, даже когда я двигаю контроллер, ничего не происходит, потому что я не могу управлять роботом с помощью контроллера в автономном режиме. Но как только переключается в режим управления водителем, я наконец-то могу управлять своим роботом.
Итак, я продолжу, потому что, помните, когда мы переходили к проекту для части, посвященной управлению водителем, я мог управлять этими различными частями. Итак, у меня осталось одна минута и 25 секунд. Сейчас я подъеду, ориентируясь на конфигурацию управления: эта кнопка управляет трансмиссией, эта — манипулятором, эта кнопка — захватом. Одно нажатие кнопки позволит мне брать предметы в руки. Здесь я могу нажать две кнопки, чтобы поднять и опустить рычаг. Для управления клешней используется одна кнопка. Закрыто, Открыто.
Однако в конфигурации устройства такой опции нет, поэтому мне пришлось написать этот код самостоятельно, именно поэтому я использовал блок событий управления драйвером, который вы можете увидеть в этом конкретном примере. Обратный отсчет будет продолжаться до конца моей части, посвященной управлению автомобилем. Но, как вы видите, я собираюсь это прекратить. После завершения этапа управления водителем все отключается, и на этом матч заканчивается.
Вы можете увидеть три разные части шаблона. Ещё раз, мы проходим раздел, который запускается в процессе предварительной автономной работы, независимо от того, какой это раздел. Если мы работаем в режиме автономного вождения или управления водителем, то переходим к автономной части. В этот момент я не могу пользоваться контроллером. После этого начнётся этап управления роботом, где я смогу непосредственно управлять им с помощью контроллера. Этот этап продлится одну минуту и 45 секунд до конца. Затем, как я уже упоминал, используя систему управления на месте, все роботы будут запускаться и останавливаться одновременно.
[Музыкальная вставка]
Все в порядке. Давайте вкратце вспомним, что мы обсуждали в этом видео. Мы изучили шаблон конкурса Blocks Competition. Существует три разных части. Когда система запускалась, она была доавтономной, и будет работать в любом случае. Это необходимо для инициализации переменных, возможно, для настройки и калибровки гироскопа, печати данных с экрана компьютера, установки положений двигателя, таких как удержание, или даже для подъема руки в определенное положение. Всё это делается до начала автономной части матча.
Затем мы переходим к автономной части, к автономному стеку, который мы там видели, — это когда в течение 15 секунд робот движется полностью программно, без какого-либо взаимодействия с контроллером или драйвером. После завершения этого раздела мы переходим к части управления роботом, которая может осуществляться либо через конфигурацию устройства, которую мы рассматривали ранее, назначая определенные двигатели и другие элементы кнопкам джойстика и тому подобное на контроллере, либо через специальный стек, где я могу написать немного более пользовательский код для своего робота. Вы можете использовать один из них, или другой, или оба.
Как я уже упоминал, если вы не используете ни один из этих трех разделов в своей программе, вы также можете оставить стеки в блоках событий пустыми.
Спасибо за просмотр, надеюсь, это поможет вам лучше понять шаблон конкурса.
Повторюсь, причина использования этого шаблона заключается в том, чтобы во время матча все роботы начинали и останавливались одновременно. Это потому, что на поле будет четыре робота, и мы хотим убедиться, что все роботы начнут и остановятся одновременно.
Надеюсь, вся эта информация была полезна вам при изучении шаблона соревнований и подготовке к участию в матче VEX Robotics Competition. Я так рада!
Поздравляю, вы закончили четвертую главу, и увидимся в следующем видео!
Прежде чем мы углубимся во все детали, давайте сначала поговорим о материалах. Здесь я буду использовать Advanced TrainingBot, чтобы продемонстрировать некоторые функциональные возможности манипулятора Arm and Claw. Я также буду использовать контроллер, игровой объект и VEXcode V5, чтобы наглядно продемонстрировать вам этот шаблон для соревнований. Для просмотра этого видео вам не понадобятся никакие материалы. Я просто проведу для вас несколько демонстраций. Повторюсь, для этого урока вам ничего не понадобится.
Давайте обсудим цель этого урока. Мы рассмотрим различные части шаблона Blocks Competition Template, а точнее, три части: этап запуска (предварительный этап автономного управления), этап автономного управления и этап управления водителем. Я расскажу об этом в приведенном здесь примере кода, а затем мы протестируем его и посмотрим, как работает наш робот с помощью контроллера, чтобы увидеть, как выглядит шаблон соревнований в действии.
Итак, давайте перейдем к рассмотрению примера нашего проекта.
[Музыкальная вставка]
Хорошо, чтобы просмотреть шаблон конкурса, я перейду в меню «Файл», «Открыть примеры», «Шаблоны», а затем выберу «Шаблон конкурса». Здесь пара замечаний. Во-первых, опять же, эти три раздела. Прежде чем мы перейдем к рассмотрению этого конкретного примера, хочу отметить, что первое, что нам нужно сделать, прежде чем мы сможем начать заполнять эти поля, — это добавить здесь конфигурацию нашего устройства. Итак, еще раз, если вы используете двухмоторную трансмиссию или у вас есть двигатели для манипуляторов или захватов, или что-то подобное, вам сначала нужно убедиться, что вы добавили их, чтобы блоки отобразились с левой стороны. Это позволит вам снова заполнить эти разделы.
Как только я открою шаблон конкурса, мне нужно будет обязательно добавить конфигурацию своего устройства. Далее, я хочу отметить, что в разделе «Управление водителем» вы можете увидеть блокировку «навсегда». Причина, по которой это там присутствует, заключается в том, что большую часть времени при использовании контроллера в части управления водителем нам необходимо постоянно проверять, нажаты ли кнопки или перемещены ли джойстики. Вот почему блокировка "навсегда" присутствует там по умолчанию. Если вам нужно удалить его по какой-либо конкретной причине, вы можете это сделать, или, если вы не используете этот стек и просто используете конфигурацию устройства, то можете оставить все как есть.
Хорошо. Давайте рассмотрим каждый из этих трех разделов и их значение на примере, который я привел.
[Музыкальная вставка]
Для начала хочу отметить, что наш шаблон конкурса состоит из трех основных частей. Первый вариант — это когда система запущена или находится в доавтономном состоянии. Второй раздел — это «Когда автономный режим» или автономная часть, а третий — «Когда управление водителем» или часть, управляемая водителем. Все три этих блока событий или блоков, связанных с головными уборами, выполняют разные части, опять же, этого шаблона конкурса.
Давайте обсудим каждый раздел. Предварительно автономная часть, или этап запуска, будет выполнена сразу после запуска проекта Competition Template. Этот метод лучше всего подходит для установки любых параметров инициализации.
Спасибо, что присоединились ко мне на этом уроке. Надеюсь, эта информация оказалась для вас полезной и информативной. Если у вас возникнут какие-либо вопросы, не стесняйтесь обращаться. Удачного программирования и успехов в ваших проектах VEX Robotics!
Итак, если мне нужно что-то вывести на экран компьютера перед началом автономной части проекта, если мне нужно откалибровать гироскоп, если я хочу распечатать данные в этом конкретном примере, поскольку я использую манипулятор и клешню, я установлю их двигатели в режим удержания. Это означает, что если я подниму руку или открою клешню, двигатели останутся в этом конкретном положении и не опустятся, например, под действием силы тяжести. Так что я просто задаю себе предварительные параметры автономной работы своих двигателей. В этом конкретном примере мы посмотрим, как это выглядит на примере демонстрации.
Музыкальная подсказка
Итак, теперь, когда у меня есть эта информация, переходим к этапу "Когда всё началось", нашему периоду до автономного управления. Далее следует наша автономная часть. Автономная часть матча продлится 15 секунд, и этот конкретный фрагмент кода будет выполняться в течение этой автономной части матча. Как только будет запущен шаблон конкурса, на этапе "При запуске" до запуска автономной системы начнется действие, независимо от исходных данных. Затем запустится 15-секундный автопилот. Мы обсудили систему управления полем и то, как она будет регулировать запуск и остановку всех роботов, а также то, когда будет выполняться конкретная часть матча, эта строка кода.
Теперь, в моем конкретном примере, наш робот начнет работу с игровым объектом в захвате. Затем механизм обхватит объект, поднимется в воздух, продвинется вперед на 200 миллиметров, опустит манипулятор и сбросит игровой объект вниз. Это может, например, имитировать забитый гол в начале матча. Вот что будет происходить во время моей автономной части проекта. Опять же, автономная часть означает, что я не могу управлять роботом с помощью контроллера, который оказывает на него влияние. На этом этапе все процессы протекают автономно. Всё делается с помощью кода.
Взгляните на эту третью часть, вот здесь, у меня находится панель управления водителем. Хочу отметить, что в конфигурации нашего устройства я могу настроить и привод, и контроллер, а это значит, что я могу назначить разные конфигурации привода джойстикам, а также назначить разные кнопки для управления разными двигателями. Однако, допустим, у меня закончились кнопки на контроллере или мне нужно управлять какими-то другими элементами. Я могу добавить в этот блок событий "Когда управление осуществляется водителем" определенные действия, к которым у меня, возможно, нет доступа в конфигурации устройства, или, например, я хочу установить скорость трансмиссии, или что-то подобное.
Итак, вот мой конкретный пример кода, касающийся управления драйвером: он позволит мне управлять моей клешней с помощью одной кнопки на контроллере. Посмотрим, как это будет выглядеть. Таким образом, при использовании раздела «Управление драйвером» я могу одновременно использовать как конфигурацию устройства с контроллером, так и раздел управления драйвером. Или я могу использовать либо один, либо другой вариант. Если вы не используете ни один из этих трех режимов — предавтономный (при запуске), автономный или режим управления водителем — вы можете оставить эти поля пустыми.
Музыкальная подсказка
Все в порядке. Теперь, когда все это сказано, давайте посмотрим, как это будет выглядеть на практике, когда я буду запускать это на своем роботе. Все в порядке. Давайте посмотрим на это на моем контроллере. Я могу перейти в раздел программ и увидеть там свой проект «Шаблон для конкурса», который я уже скачал в свою память. А если навести на него курсор, появится опция для запуска на время. Это позволит смоделировать систему управления полем, о которой я говорил ранее, и показать, как всё в ней контролируется. Таким образом, когда фактически начнётся соревновательный проект, когда будет управляться автономная часть матча, и когда будет управляться часть, связанная с управлением водителем, я смогу смоделировать это с помощью этого хронометрированного запуска на контроллере.
Благодарственное письмо
Спасибо, что уделили время и обсудили этот процесс со мной. Надеюсь, эта демонстрация была полезной.
Заключительное сообщение
Не стесняйтесь обращаться к нам, если у вас возникнут вопросы или потребуется дополнительная информация. Удачного программирования и успехов в ваших проектах по робототехнике!
Итак, если я выберу этот вариант, мне здесь покажут 15 секунд для автономного режима, одну минуту и 45 секунд для режима управления водителем. А когда я нажму эту кнопку ещё раз, он действительно начнёт работать. Когда я запущу его, он начнет обратный отсчет 3-2-1, как в обычном матче. А затем мы начнём.
Таким образом, как только я нажму кнопку «Старт», запустится автономная часть, или же сначала запустится предавтономная часть, независимо от обстоятельств. Затем немедленно начнётся автономный этап. Я покажу вам, как только начнётся автономная часть процесса. Даже если я поверну контроллер, чтобы робот двигался, он не сдвинется с места, потому что, опять же, во время автономной части я не могу управлять роботом с помощью контроллера.
[Музыкальная вставка]
Давайте посмотрим, как именно это произойдет. Итак, начнём. Все в порядке. До завершения автономного режима осталось еще несколько секунд. Как видите, даже когда я двигаю контроллер, ничего не происходит, потому что я не могу управлять роботом с помощью контроллера в автономном режиме. Но как только переключается в режим управления водителем, я наконец-то могу управлять своим роботом.
Итак, я продолжу, потому что, помните, когда мы переходили к проекту для части, посвященной управлению водителем, я мог управлять этими различными частями. Итак, у меня осталось одна минута и 25 секунд. Сейчас я подъеду, ориентируясь на конфигурацию управления: эта кнопка управляет трансмиссией, эта — манипулятором, эта кнопка — захватом. Одно нажатие кнопки позволит мне брать предметы в руки. Здесь я могу нажать две кнопки, чтобы поднять и опустить рычаг. Для управления клешней используется одна кнопка. Закрыто, Открыто.
Однако в конфигурации устройства такой опции нет, поэтому мне пришлось написать этот код самостоятельно, именно поэтому я использовал блок событий управления драйвером, который вы можете увидеть в этом конкретном примере. Обратный отсчет будет продолжаться до конца моей части, посвященной управлению автомобилем. Но, как вы видите, я собираюсь это прекратить. После завершения этапа управления водителем все отключается, и на этом матч заканчивается.
Вы можете увидеть три разные части шаблона. Ещё раз, мы проходим раздел, который запускается в процессе предварительной автономной работы, независимо от того, какой это раздел. Если мы работаем в режиме автономного вождения или управления водителем, то переходим к автономной части. В этот момент я не могу пользоваться контроллером. После этого начнётся этап управления роботом, где я смогу непосредственно управлять им с помощью контроллера. Этот этап продлится одну минуту и 45 секунд до конца. Затем, как я уже упоминал, используя систему управления на месте, все роботы будут запускаться и останавливаться одновременно.
[Музыкальная вставка]
Все в порядке. Давайте вкратце вспомним, что мы обсуждали в этом видео. Мы изучили шаблон конкурса Blocks Competition. Существует три разных части. Когда система запускалась, она была доавтономной, и будет работать в любом случае. Это необходимо для инициализации переменных, возможно, для настройки и калибровки гироскопа, печати данных с экрана компьютера, установки положений двигателя, таких как удержание, или даже для подъема руки в определенное положение. Всё это делается до начала автономной части матча.
Затем мы переходим к автономной части, к автономному стеку, который мы там видели, — это когда в течение 15 секунд робот движется полностью программно, без какого-либо взаимодействия с контроллером или драйвером. После завершения этого раздела мы переходим к части управления роботом, которая может осуществляться либо через конфигурацию устройства, которую мы рассматривали ранее, назначая определенные двигатели и другие элементы кнопкам джойстика и тому подобное на контроллере, либо через специальный стек, где я могу написать немного более пользовательский код для своего робота. Вы можете использовать один из них, или другой, или оба.
Как я уже упоминал, если вы не используете ни один из этих трех разделов в своей программе, вы также можете оставить стеки в блоках событий пустыми.
Спасибо за просмотр, надеюсь, это поможет вам лучше понять шаблон конкурса.
Повторюсь, причина использования этого шаблона заключается в том, чтобы во время матча все роботы начинали и останавливались одновременно. Это потому, что на поле будет четыре робота, и мы хотим убедиться, что все роботы начнут и остановятся одновременно.
Надеюсь, вся эта информация была полезна вам при изучении шаблона соревнований и подготовке к участию в матче VEX Robotics Competition. Я так рада!
Поздравляю, вы закончили четвертую главу, и увидимся в следующем видео!
Learning Objectives
Learning Objectives Section
- حدد العناصر الرئيسية لقالب مسابقة الكتل في VEXcode V5، بما في ذلك أقسام متى بدأت والقيادة الذاتية والتحكم في السائق.
Summary
Summary Section
هذا هو الفيديو الثاني لمقدمة الدورة التدريبية VEX V5 الفصل 4. إذا لم تكن قد شاهدت الفيديو الأول بعد، فارجع وشاهد الدرس 1: ميكانيكا مباراة مسابقة الروبوتات VEX.
في الدرس 2، ستتعرف على كل عنصر من العناصر الرئيسية الثلاثة لقالب مسابقة الكتل في VEXcode V5 من خلال عرض مثال عملي.
للمناقشات والأسئلة، انضم إلى موضوع PD+ Community المخصص للتعلم والاستكشاف الجماعي.
تهانينا، لقد أكملت دورة مقدمة إلى VEX V5 التدريبية!