Innholdsfortegnelse:
- Trinn 1: Hva er hendelsesstyrt programmering?
- Trinn 2: Logisk flyt av hendelsesdrevet programmering
- Trinn 3: Event Creator
- Trinn 4: Hendelsesprosessor
Video: Hendelsesstyrt programmering i FTC: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
I år har teamet vårt jobbet mye med hendelsesdrevet programvareutvikling for roboten vår. Disse programmene har gjort det mulig for teamet å nøyaktig utvikle autonome programmer og til og med repeterbare tele-op-hendelser. Siden programvarearbeidet det krever er komplekst, bestemte vi oss for å dele kunnskapen vi har fått om å utvikle hendelsesdrevet kode for FTC-roboter.
Trinn 1: Hva er hendelsesstyrt programmering?
Generelt sett er hendelsesdrevet programmering, ifølge Techopedia, utviklingen av programmer som reagerer på brukerens innspill. I denne forstand regnes mange programmer som hendelsesdrevne, inkludert et teams tele-op-program, som er avhengig av innspill fra en kontrollert av mennesker for å utføre enhver handling. Når det gjelder arbeidet vårt team har gjort, handler hendelsesdrevet programmering imidlertid om å lage programvare fra forskjellige innganger; med andre ord, vi dokumenterer hendelser basert på inngangene til kontrollere og sensorer, så kan vi stille disse hendelsene i kø og bruke filen til å kjøre den registrerte hendelsen på nytt.
Denne metoden for å utvikle programmer for vår robot har flere fordeler:
- Det lar oss lage nøyaktige autonome programmer. Siden vi lager programvaren i sanntid mens vi gjennomgår hendelsen, vil sensorverdiene samlet og brukt være veldig nøyaktige, ettersom de kommer direkte fra den opprinnelige hendelsen.
- Det lar oss lage autonome programmer raskt. Å lage autonome programmer er like enkelt som å spille inn en serie hendelser og justere hendelsen etter behov.
- Det lar oss lage automatiske prosesser for tele-op. For gjentatte handlinger i tele-op tillater hendelsesdrevet programmering oss å registrere disse handlingene og tilordne hendelsen til en knapp i de førerkontrollerte kampene. Disse automatiserte hendelsene kan påvirkes av sensorer for å muliggjøre nøyaktig utførelse.
Trinn 2: Logisk flyt av hendelsesdrevet programmering
Følgende viser den logiske flyten til et hendelsesdrevet program: rødt viser opprettelsen av en hendelse, og blå viser den som kaller hendelsen. For å lage en hendelse blir en sekvens av innspill tatt inn gjennom robothandling og registrert som hendelser; disse hendelsene skrives til en fil. For å ringe en hendelse leses den filen, og inngangene sendes til en hendelsesprosessor for å gjøre filkoden til robothandling.
Trinn 3: Event Creator
Hendelsesskapere brukes til å dokumentere handlinger eller "hendelser" basert på en rekke sensorer og knapper. Når roboten utfører handlinger på feltet, oppretter en hendelsesskaperklasse hendelser for hver av disse handlingene parallelt, og refererer til hendelsen som er klassifisert i en hendelsesklasse. Etter å ha blitt opprettet, blir hendelsen satt i en kø med hendelser i hendelsesklassen: den første hendelsen tar topplasseringen, deretter tar den andre hendelsen topplasseringen og skyver ned eventuelle hendelser under den, og dette fortsetter til programmet stopper. Når programmet stoppes, går hendelsene ut til en fil som kan leses av mennesker, for eksempel en JSON-fil. Denne filen kan brukes til å bedre autonome rutiner.
Eksempelkoden ovenfor setter opp parametrene for hendelsen, som i dette tilfellet er en sving ved hjelp av en IMU -sensor. Vi legger deretter hendelsen i kø i hendelseskøen. Til slutt avkorter vi hendelsen, som i hovedsak tilbakestiller hendelsen slik at vi kan bruke den til å stille fremtidige hendelser i kø.
Trinn 4: Hendelsesprosessor
Arrangementsklasser tar den menneskelesbare filen som er produsert i hendelsesskaperklassen, og gjør hva hver hendelse i kø forteller den å gjøre ved å ringe til metoder som er beskrevet i en hendelsesprosessorklasse. Hendelsesprosessorklassen forteller deretter roboten hvilken hendelse den skal spille på nytt. Enten det er en enkel "drive forward" -hendelse eller en kompleks hendelse full av avstander, svinger og straffer, vil prosessoren spille av alle hendelser som er gitt den. Denne prosessen er veldig nyttig under autonome, siden et team kan registrere sensorer og Tele-Op-handlinger før de matcher, og deretter bare spille av hendelsene på nytt i autonome. Denne prosessen kalles Memory Replay. Dette gjør at et autonomt program kan konfigureres 100% gjennom en enkelt fil. Når eventskaperen og prosessoren er etablert, kan et team ganske enkelt endre ut autonome rutiner gjennom den lesbare filen.
Eksemplet ovenfor starter først med å sjekke JSON -filen for en hendelse, og deretter kontrollere den hendelsen ved hjelp av en saksuttalelse for å se hva slags hendelse det er, i dette tilfellet en sving ved hjelp av en IMU -sensor. Når den kan fortelle at det er en sving som bruker IMU -hendelsen, behandler den deretter behandlingen av hendelsen, som vanligvis innebærer å kjøre koden som hendelsen kom fra ved å bruke variabler fra hendelsen, sendt inn for å replikere hendelsen som ble gjort før.
Anbefalt:
Z80-MBC2 Programmering av Atmega32a: 6 trinn
Z80-MBC2 Programmering av Atmega32a: Før du kan bruke z80-MBC2, må du programmere Atmeg32 etter at du har bygget den. Denne instruksjonen viser deg hvordan du bruker en billig arduino mini som programmerer for å laste opp koden
Lag en ENKEL Infinity Mirror Cube - INGEN 3D -utskrift og INGEN programmering: 15 trinn (med bilder)
Lag en ENKEL Infinity Mirror Cube | INGEN 3D -utskrift og INGEN programmering: Alle liker en god uendelig terning, men de ser ut til å være vanskelige å lage. Målet mitt med denne Instructable er å vise deg trinn-for-trinn hvordan du lager en. Ikke bare det, men med instruksjonene jeg gir deg, kan du lage en
Programmering av ATmega328 med Arduino IDE ved bruk av 8MHz Crystal: 4 trinn
Programmering av ATmega328 med Arduino IDE ved bruk av 8MHz Crystal: I denne Instuctable vil jeg dekke en trinnvis veiledning for programmering av en ATmega328P IC (Den samme mikrokontrolleren som er tilstede på Arudino UNO) ved hjelp av Arduino IDE og en Arduino UNO som programmerer for å lage deg en tilpasset Arduino, for å lage prosjektene dine
Attiny85 Samtidig programmering eller gresskar med flerfargede øyne: 7 trinn
Attiny85 samtidig programmering eller gresskar med flerfargede øyne: Dette prosjektet viser hvordan du kan kontrollere to 10 mm trefargede vanlige anode-LED-er (flerfargede øyne til Pumpkin Halloween Glitter) med Attiny85-brikke. Målet med prosjektet er å introdusere leseren til kunsten med samtidig programmering og bruk av Adam D
Objektorientert programmering: Lage objekter Læring/undervisningsmetode/teknikk ved hjelp av Shape Puncher: 5 trinn
Objektorientert programmering: Lage objekter Lærings-/undervisningsmetode/teknikk ved hjelp av Shape Puncher: Lærings-/undervisningsmetode for studenter som er ny i objektorientert programmering. Dette er en måte å la dem visualisere og se prosessen med å lage objekter fra klasser. Deler: 1. EkTools 2-tommers stor slag; solide former er best.2. Papir eller c