Cuprins:
- Pasul 1: Ce este programarea bazată pe evenimente?
- Pasul 2: Fluxul logic al programării bazate pe evenimente
- Pasul 3: Creator de evenimente
- Pasul 4: Procesor de evenimente
Video: Programare bazată pe evenimente în FTC: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Anul acesta, echipa noastră a depus o mulțime de muncă cu dezvoltarea de software bazată pe evenimente pentru robotul nostru. Aceste programe au permis echipei să dezvolte cu acuratețe programe autonome și chiar evenimente tele-op repetabile. Deoarece munca software pe care o solicită este complexă, am decis să împărtășim cunoștințele pe care le-am câștigat cu privire la dezvoltarea codului bazat pe evenimente pentru roboții FTC.
Pasul 1: Ce este programarea bazată pe evenimente?
În termeni generali, programarea bazată pe evenimente, potrivit Techopedia, este dezvoltarea de programe care răspund la contribuția utilizatorului. În acest sens, multe programe sunt considerate bazate pe evenimente, inclusiv programul tele-op al unei echipe, care se bazează pe intrări de la un controler condus de oameni pentru a efectua orice acțiune. Cu toate acestea, în ceea ce privește munca pe care o desfășoară echipa noastră, programarea bazată pe evenimente se referă la crearea de software din diverse intrări; cu alte cuvinte, documentăm evenimentele pe baza intrărilor controlerelor și senzorilor, apoi putem face coada acestor evenimente și putem utiliza fișierul pentru a relua evenimentul înregistrat.
Această metodă de dezvoltare a programelor pentru robotul nostru are mai multe avantaje:
- Ne permite să creăm programe autonome precise. Întrucât creăm software-ul în timp real în timpul evenimentului, valorile senzorilor colectate și utilizate vor fi foarte exacte, deoarece provin direct din evenimentul original.
- Ne permite să creăm rapid programe autonome. Realizarea de programe autonome este la fel de simplă ca înregistrarea unei serii de evenimente și ajustarea evenimentului după cum este necesar.
- Ne permite să creăm procese automate pentru tele-op. Pentru acțiuni repetate în tele-op, programarea bazată pe evenimente ne permite să înregistrăm aceste acțiuni și să atribuim evenimentul unui buton în timpul perioadelor de meci controlate de șofer. Aceste evenimente automate pot fi influențate de senzori pentru a permite execuția lor exactă.
Pasul 2: Fluxul logic al programării bazate pe evenimente
Următoarele ilustrează fluxul logic al unui program bazat pe eveniment: roșu descrie crearea unui eveniment, iar albastru descrie chemarea evenimentului. Pentru crearea unui eveniment, o secvență de intrări este preluată prin acțiunea robotului și înregistrată ca evenimente; aceste evenimente sunt scrise într-un fișier. Pentru apelarea unui eveniment, acel fișier este citit, iar intrările sunt trimise unui procesor de evenimente pentru a transforma codul fișierului în acțiune robotică.
Pasul 3: Creator de evenimente
Creatorii de evenimente sunt folosiți pentru a documenta acțiuni sau „evenimente” bazate pe o varietate de senzori și butoane. Pe măsură ce robotul face acțiuni pe teren, o clasă de creator de evenimente creează evenimente pentru fiecare acțiune în paralel, făcând referire la evenimentul clasificat într-o clasă de evenimente. După ce a fost creat, evenimentul este pus într-o coadă de evenimente din clasa de evenimente: primul eveniment ocupă primul loc, apoi al doilea eveniment ocupă primul loc și împinge în jos orice evenimente de sub acesta, iar acest lucru continuă până când programul se oprește. Când programul este oprit, evenimentele se îndreaptă către un fișier format lizibil de către om, cum ar fi un fișier JSON. Acest fișier poate fi utilizat pentru a îmbunătăți mai bine rutinele autonome.
Exemplul de cod de mai sus setează parametrii pentru eveniment, care în acest caz este o rundă utilizând un senzor IMU. Apoi punem coada evenimentului în coada evenimentului. În cele din urmă, vom trunchia evenimentul, care în esență resetează evenimentul, astfel încât să-l putem folosi pentru a pune la coadă evenimentele viitoare.
Pasul 4: Procesor de evenimente
Clasele de evenimente iau fișierul care poate fi citit de om produs în clasa creator de evenimente și face tot ceea ce fiecare eveniment din coadă îi spune să facă apelând metodele descrise într-o clasă de procesor de evenimente. Clasa procesorului de evenimente îi spune apoi robotului ce eveniment să redea. Indiferent dacă este vorba despre un eveniment simplu „drive forward” sau un eveniment complex, plin de distanțe, viraje și balustrade, procesorul va reda orice eveniment dat acestuia. Acest proces este foarte util în timpul autonomiei, deoarece o echipă poate înregistra senzori și acțiuni Tele-Op înainte de a se potrivi, apoi redă pur și simplu evenimentele în mod autonom. Acest proces se numește Memory Replay. Acest lucru permite unui program autonom să fie 100% configurabil printr-un singur fișier. Odată ce creatorul și procesorul de evenimente sunt stabilite, o echipă poate schimba pur și simplu rutine autonome prin intermediul fișierului citibil de către om.
Exemplul de mai sus începe mai întâi prin verificarea fișierului JSON pentru un eveniment și apoi verificarea acelui eveniment folosind o instrucțiune de caz pentru a vedea ce fel de eveniment este, în acest caz o rundă folosind un senzor IMU. Odată ce poate spune că este o rundă folosind evenimentul IMU, acesta se ocupă cu procesarea evenimentului, care implică de obicei rularea codului din care a provenit evenimentul folosind variabile din eveniment, transmis pentru a reproduce evenimentul care a fost făcut anterior.
Recomandat:
Telecomandă bazată pe browser Arduino (linux): 9 pași (cu imagini)
Telecomandă bazată pe browser Arduino (linux): avem copii. Îi iubesc până la biți, dar ascund în continuare telecomanda pentru satelit și TV atunci când pun canalele pentru copii. După ce s-a întâmplat zilnic de câțiva ani și după ce draga mea soție mi-a permis să am un
Evenimente Google Calendar la ESP8266: 10 pași
Evenimente Google Calendar către ESP8266: În acest tutorial vă voi explica cum să importați datele evenimentelor Google Calendar în Arduino IDE pentru placa ESP8266. Voi importa ora de sfârșit și ora de începere a antrenamentului meu de pe Google Calendar și le voi imprima pe monitorul serial Arduino IDE. Pentru a
Programare Conducida Por El Acontecimiento En FTC: 4 Steps
Programare Conducida Por El Acontecimiento En FTC: Este anul acesta, echipa noastră a făcut o cantitate mare de lucru cu dezvoltarea de software dirijat prin evenimente pentru robotul nostru. Aceste programe au permis echipelor să dezvolte cu precizie programe autonome și chiar evenimente tele-OP rep
Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel: 4 pași (cu imagini)
Notificări de evenimente în timp real folosind NodeMCU (Arduino), Google Firebase și Laravel: Ați dorit vreodată să fiți informat când există o acțiune pe site-ul dvs., dar e-mailul nu este potrivit? Vrei să auzi un sunet sau un clopot de fiecare dată când faci o vânzare? Sau este nevoie de atenția ta imediată din cauza unei situații de urgență
Lanternă pentru proiector de evenimente: 5 pași (cu imagini)
Lanternă pentru proiector de evenimente: Toată lumea adoră sărbătorile! Dar, uneori, casa ta poate să nu aibă suficiente imagini festive. Dar aceasta este o problemă ușor de modificat. Strălucind această mașină de creștere a spiritului de sărbătoare, puteți adăuga câteva imagini festive la orice petrecere, sărbătoare sau obținere