Оглавление:
- Шаг 1. Что такое программирование, управляемое событиями?
- Шаг 2: логическая схема программирования, управляемого событиями
- Шаг 3. Создатель мероприятия
- Шаг 4: обработчик событий
Видео: Событийно-ориентированное программирование в FTC: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В этом году наша команда проделала большую работу по разработке программного обеспечения для нашего робота, основанного на событиях. Эти программы позволили команде точно разработать автономные программы и даже повторяемые дистанционные операции. Поскольку работа с программным обеспечением является сложной, мы решили поделиться знаниями, которые мы получили при разработке управляемого событиями кода для роботов FTC.
Шаг 1. Что такое программирование, управляемое событиями?
В общих чертах, согласно Techopedia, программирование, управляемое событиями, - это разработка программ, которые реагируют на ввод данных пользователем. В этом смысле многие программы считаются управляемыми событиями, в том числе командная программа удаленного управления, которая полагается на входные данные от управляемого человеком контроллера для выполнения каких-либо действий. Однако с точки зрения работы, которую выполняет наша команда, программирование, управляемое событиями, - это создание программного обеспечения из различных входных данных; Другими словами, мы документируем события на основе входных данных контроллеров и датчиков, затем мы можем поставить эти события в очередь и использовать файл для повторного запуска записанного события.
Такой способ разработки программ для нашего робота имеет ряд преимуществ:
- Это позволяет нам создавать точные автономные программы. Поскольку мы создаем программное обеспечение в режиме реального времени во время прохождения события, собранные и используемые значения датчиков будут очень точными, поскольку они поступают непосредственно из исходного события.
- Это позволяет нам быстро создавать автономные программы. Создавать автономные программы так же просто, как записывать серию событий и при необходимости корректировать событие.
- Это позволяет нам создавать автоматические процессы для телеоперации. Для повторяющихся действий в телеоперации программирование, управляемое событиями, позволяет нам записывать эти действия и назначать событие кнопке во время периодов матчей, контролируемых водителем. На эти автоматизированные события могут влиять датчики, чтобы обеспечить их точное выполнение.
Шаг 2: логическая схема программирования, управляемого событиями
Следующее изображает логический поток программы, управляемой событиями: красный цвет означает создание события, а синий цвет - вызов события. Для создания события последовательность входных данных принимается через действия робота и записывается как события; эти события записываются в файл. Для вызова события этот файл считывается, и входные данные отправляются в обработчик событий, чтобы преобразовать код файла в действие робота.
Шаг 3. Создатель мероприятия
Создатели событий используются для документирования действий или «событий» на основе различных датчиков и кнопок. Когда робот выполняет действия в поле, класс создателя событий создает события для каждого из этих действий параллельно, ссылаясь на событие, классифицированное в классе событий. После создания событие помещается в очередь событий в классе событий: первое событие занимает первое место, затем второе событие занимает первое место и выталкивает все события под ним, и это продолжается до тех пор, пока программа не остановится. Когда программа останавливается, события передаются в файл в удобном для чтения формате, например в файл JSON. Этот файл можно использовать для улучшения автономных процедур.
В приведенном выше примере кода настраиваются параметры для события, которым в данном случае является поворот с использованием датчика IMU. Затем мы помещаем событие в очередь событий. Наконец, мы обрезаем событие, которое по сути сбрасывает событие, чтобы мы могли использовать его для постановки в очередь будущих событий.
Шаг 4: обработчик событий
Классы событий берут удобочитаемый файл, созданный в классе создателя событий, и делают то, что каждое событие в очереди указывает ему делать, вызывая методы, описанные в классе обработчика событий. Затем класс обработчика событий сообщает роботу, какое событие нужно воспроизвести. Будь то простое событие «движения вперед» или сложное событие, полное расстояний, поворотов и ударов, процессор воспроизведет любое заданное ему событие. Этот процесс очень полезен во время автономной работы, так как команда может записывать датчики и действия телеоператора до совпадения, а затем просто воспроизводить события в автономном режиме. Этот процесс называется воспроизведением памяти. Это позволяет настраивать автономную программу на 100% с помощью одного файла. Как только создатель и обработчик событий установлены, команда может просто изменить автономные процедуры с помощью файла, доступного для чтения человеком.
Приведенный выше пример сначала начинается с проверки файла JSON на наличие события, а затем проверки этого события с помощью оператора case, чтобы узнать, что это за событие, в данном случае поворот с использованием датчика IMU. Как только он может сказать, что наступил черед с использованием события IMU, он затем обрабатывает событие, которое обычно включает запуск кода, из которого произошло событие, с использованием переменных из события, переданных для репликации события, которое было выполнено ранее.
Рекомендуемые:
Программирование ATmega328 с помощью Arduino IDE с использованием кристалла 8 МГц: 4 шага
Программирование ATmega328 с помощью Arduino IDE с использованием кристалла 8 МГц: в этом Instuctable я расскажу пошаговое руководство по программированию микросхемы ATmega328P (тот же микроконтроллер, что присутствует в Arudino UNO) с использованием Arduino IDE и Arduino UNO в качестве программиста, чтобы вы могли создать себе настраиваемый Arduino, чтобы ваши проекты
ATtiny85 Носимые часы с отслеживанием активности с вибрацией и программирование ATtiny85 с Arduino Uno: 4 шага (с изображениями)
ATtiny85 Носимые часы с отслеживанием активности с вибрацией и программирование ATtiny85 с Arduino Uno: как сделать носимые часы с отслеживанием активности? Это носимый гаджет, который вибрирует при обнаружении застоя. Вы проводите большую часть времени за компьютером, как я? Вы сидите часами, не осознавая этого? Тогда это устройство ф
ПРОГРАММИРОВАНИЕ AT89S52 С ПОМОЩЬЮ ARDUINO: 4 шага
ПРОГРАММИРОВАНИЕ AT89S52 С ИСПОЛЬЗОВАНИЕМ ARDUINO: внутрисистемное программирование (ISP), также известное как внутрисхемное последовательное программирование (ICSP), - это возможность программирования некоторых программируемых логических устройств, микроконтроллеров и других встроенных устройств во время их установки в полную систему, вместо того, чтобы требовать чи
Автоматическое программирование ESP-01: 4 шага
Автоматическое программирование ESP-01: я написал это руководство, потому что я нашел много статей о программировании ESP-01, но все они требуют ручных действий, таких как переключение с программирования на работу или нажатие кнопки сброса. Используя плату FTDI с контактами RTS и DTR, я сделал программист, который автом
Программирование Arduino через мобильное устройство -- Arduinodroid -- Arduino Ide для Android -- Мигание: 4 шага
Программирование Arduino через мобильное устройство || Arduinodroid || Arduino Ide для Android || Blink: Подпишитесь на мой канал на YouTube, чтобы увидеть больше видео … Arduino - это плата, которую можно программировать непосредственно через USB. Это очень просто и дешево для университетских и школьных проектов или даже в качестве прототипа продукта. Многие продукты в первую очередь основаны на нем для