Съдържание:
- Стъпка 1: Какво е програмиране, управлявано от събития?
- Стъпка 2: Логичен поток на програмиране, управлявано от събития
- Стъпка 3: Създател на събития
- Стъпка 4: Процесор за събития
Видео: Програмиране, управлявано от събития в FTC: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Тази година екипът ни свърши голяма работа с разработването на софтуер за нашия робот, управляван от събития. Тези програми позволиха на екипа да разработи точно автономни програми и дори повтарящи се телеоперационни събития. Тъй като софтуерната работа, която изисква, е сложна, решихме да споделим знанията, които сме придобили при разработването на управляван от събития код за FTC роботи.
Стъпка 1: Какво е програмиране, управлявано от събития?
Най-общо, програмирането, управлявано от събития, според Techopedia, е разработването на програми, които реагират на въвеждане от потребителя. В този смисъл много програми се считат за управлявани от събития, включително телеоперационна програма на екип, която разчита на данни от ръководен от човека контролер за извършване на каквото и да е действие. От гледна точка на работата, която екипът ни върши, програмирането, управлявано от събития, е свързано със създаването на софтуер от различни входни данни; с други думи, документираме събития въз основа на входовете на контролери и сензори, след което можем да поставим тези събития в опашка и да използваме файла, за да повторим записаното събитие.
Този метод за разработване на програми за нашия робот има няколко предимства:
- Тя ни позволява да създаваме точни автономни програми. Тъй като създаваме софтуера в реално време, докато преживяваме събитието, събраните и използвани стойности на сензора ще бъдат много точни, тъй като идват директно от първоначалното събитие.
- Тя ни позволява бързо да създаваме автономни програми. Създаването на автономни програми е толкова просто, колкото записването на поредица от събития и коригирането на събитието, ако е необходимо.
- Тя ни позволява да създаваме автоматични процеси за телеоперация. За повтарящи се действия в телеоперацията, програмирането, управлявано от събития, ни позволява да записваме тези действия и да присвояваме събитието на бутон по време на контролираните от водача периоди на мачове. Тези автоматизирани събития могат да бъдат повлияни от сензори, за да се даде възможност за точното им изпълнение.
Стъпка 2: Логичен поток на програмиране, управлявано от събития
Следното изобразява логическия поток на програма, управлявана от събития: червеното изобразява създаването на събитие, а синьото изобразява извикването на събитието. За създаване на събитие, последователност от входове се приема чрез действие на робота и се записва като събития; тези събития се записват във файл. За извикване на събитие този файл се чете и входовете се изпращат към процесор на събития, за да превърнат кода на файла в действие на робот.
Стъпка 3: Създател на събития
Създателите на събития се използват за документиране на действия или „събития“въз основа на различни сензори и бутони. Докато роботът извършва действия на полето, класът създател на събития създава паралелно събития за всяко едно от тези действия, препращайки към събитието, класифицирано в клас на събитие. След като бъде създадено, събитието се поставя в опашка от събития в класа на събитията: първото събитие заема първо място, след това второто събитие заема най -горното място и избутва всички събития под него и това продължава, докато програмата спре. Когато програмата е спряна, събитията излизат във формат за четене от човека, например JSON файл. Този файл може да се използва за по -добро подобряване на автономните процедури.
Примерният код по -горе задава параметрите за събитието, което в този случай е завой с помощта на IMU сензор. След това поставяме събитието в опашка в опашката за събития. И накрая, съкращаваме събитието, което по същество нулира събитието, така че да можем да го използваме за поставяне на бъдещи събития на опашка.
Стъпка 4: Процесор за събития
Класовете на събития вземат файла, който може да се чете от човека, създаден в класа за създаване на събития, и прави всичко, което всяко събитие, наредено в опашката, му каже да прави, като извиква методи, описани в класа на процесора на събития. След това класът на процесора на събития казва на робота какво събитие да преиграе. Независимо дали става въпрос за просто събитие „задвижване напред“или сложно събитие, пълно с разстояния, завои и премеждия, процесорът ще възпроизведе всяко събитие, дадено му. Този процес е много полезен по време на автономна работа, тъй като екип може да записва сензори и Tele-Op действия преди да съвпадат, след което просто да преиграе събитията в автономно. Този процес се нарича Memory Replay. Това позволява на автономна програма да бъде 100% конфигурирана чрез един файл. След като създателят и процесорът на събитието бъдат установени, екип може просто да смени автономните процедури чрез четения от човека файл.
Примерът по -горе първо започва с проверка на JSON файла за събитие, след което проверява това събитие с помощта на оператор case, за да види какъв вид събитие е това, в този случай завой с помощта на IMU сензор. След като може да каже, че това е ред, използващ събитието IMU, той се занимава с обработка на събитието, което обикновено включва стартиране на кода, който събитието е дошло от използването на променливи от събитието, предадени за копиране на събитието, което е било направено преди.
Препоръчано:
Стъпково меню за контрол на скоростта, управлявано за Arduino: 6 стъпки
Стъпково меню за контрол на скоростта, управлявано от Arduino: Тази библиотека SpeedStepper е пренаписана на библиотеката AccelStepper, за да позволи контрол на скоростта на стъпковия двигател. Библиотеката SpeedStepper ви позволява да променяте зададената скорост на двигателя и след това ускорява/забавя до новата зададена скорост, използвайки същия алгоритъм
Самостоятелно управлявано роботизирано превозно средство за начинаещи с избягване на сблъсък: 7 стъпки
Самостоятелно управлявано роботизирано превозно средство за начинаещи с избягване на сблъсък: Здравейте! Добре дошли в моя лесен за начинаещи Instructable за това как да си направите собствено самоуправляващо се роботизирано превозно средство с избягване на сблъсъци и GPS навигация. По -горе е видео в YouTube, демонстриращо робота. Това е модел, който демонстрира как една истинска автономия
Събития в Google Календар до ESP8266: 10 стъпки
Събития от Google Календар към ESP8266: В този урок ще обясня как да импортирам данни за събития от Google Календар в Arduino IDE за платката ESP8266. Ще импортирам крайния и началния час на обучението си от Google Календар и ще ги отпечатам в серийния монитор на Arduino IDE
Известия за събития в реално време, използващи NodeMCU (Arduino), Google Firebase и Laravel: 4 стъпки (със снимки)
Известия за събития в реално време, използващи NodeMCU (Arduino), Google Firebase и Laravel: Искали ли сте някога да бъдете уведомени, когато на вашия уебсайт се извърши действие, но имейл не е подходящ? Искате ли да чувате звук или камбана всеки път, когато правите продажба? Или има нужда от вашето незабавно внимание поради спешен случай
Серво, управлявано от Alexa: 9 стъпки (със снимки)
Серво, управлявано от Alexa: Въведение Имам лаптоп на рафт в офиса си, който наблюдава няколко камери, които са навън от къщата ми. Те ме предупреждават за доставки и посетители. Въпреки че мога да използвам уеб браузър, за да видя техните изображения, е по -лесно просто