Sisukord:
- Samm: mis on sündmustepõhine programmeerimine?
- 2. samm: sündmustepõhise programmeerimise loogiline voog
- 3. samm: sündmuste looja
- 4. samm: sündmuste protsessor
Video: Sündmuspõhine programmeerimine FTC-s: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Sel aastal on meie meeskond teinud palju tööd meie robotile mõeldud sündmustepõhise tarkvaraarendusega. Need programmid on võimaldanud meeskonnal täpselt välja töötada autonoomseid programme ja isegi korduvaid teleüritusi. Kuna tarkvaratöö, mida see nõuab, on keeruline, otsustasime jagada teadmisi, mida oleme omandanud FTC robotite sündmustepõhise koodi väljatöötamisel.
Samm: mis on sündmustepõhine programmeerimine?
Üldiselt on sündmuspõhine programmeerimine Techopedia andmetel kasutajate sisendile reageerivate programmide väljatöötamine. Selles mõttes peetakse paljusid programme sündmustepõhiseks, sealhulgas meeskonna teleprogrammi, mis põhineb mis tahes toimingute tegemisel inimese juhitud kontrolleri sisenditel. Mis puudutab aga meie meeskonna tehtud tööd, siis sündmustepõhine programmeerimine seisneb tarkvara loomises erinevatest sisenditest; teisisõnu, me dokumenteerime sündmused kontrollerite ja andurite sisendite põhjal, seejärel saame need sündmused järjekorda panna ja faili abil salvestatud sündmust uuesti käivitada.
Sellel meie robotile programmide väljatöötamise meetodil on mitmeid eeliseid:
- See võimaldab meil luua täpseid autonoomseid programme. Kuna me loome tarkvara sündmuse toimumise ajal reaalajas, on kogutud ja kasutatud andurite väärtused väga täpsed, kuna need pärinevad otse algsest sündmusest.
- See võimaldab meil kiiresti luua autonoomseid programme. Autonoomsete programmide tegemine on sama lihtne kui sündmuste seeria salvestamine ja sündmuse kohandamine vastavalt vajadusele.
- See võimaldab meil luua automaatseid protsesse tele-op. Tele-opis korduvate toimingute puhul võimaldab sündmustepõhine programmeerimine meil need toimingud salvestada ja sündmuse juhi poolt kontrollitud mänguperioodidel nupule määrata. Andurid võivad neid automatiseeritud sündmusi mõjutada, et võimaldada nende täpset täitmist.
2. samm: sündmustepõhise programmeerimise loogiline voog
Järgnev kujutab sündmustepõhise programmi loogilist voogu: punane tähistab sündmuse loomist ja sinine sündmuse kutsumist. Sündmuse loomiseks võetakse sisendite jada robotite tegevuse kaudu sisse ja registreeritakse sündmustena; need sündmused kirjutatakse faili. Sündmusele helistamiseks loetakse see fail ja sisendid saadetakse sündmuste protsessorile, et muuta failikood robotitegevuseks.
3. samm: sündmuste looja
Sündmuste loojaid kasutatakse mitmesuguste andurite ja nuppude põhjal toimingute või sündmuste dokumenteerimiseks. Kuna robot teeb väljal toiminguid, loob sündmuste looja klass iga toimingu jaoks paralleelselt sündmusi, viidates sündmuste klassi klassifitseeritud sündmusele. Pärast sündmuse loomist pannakse see sündmuste klassis sündmuste järjekorda: esimene sündmus võtab esikoha, teine sündmus võtab esikoha ja surub selle all olevad sündmused alla ning see jätkub, kuni programm peatub. Kui programm peatatakse, lähevad sündmused inimestele loetavasse vormingusse, näiteks JSON-faili. Seda faili saab kasutada autonoomsete rutiinide paremaks täiustamiseks.
Ülaltoodud näidiskood määrab sündmuse parameetrid, milleks on sel juhul IMU -andurit kasutav pööre. Seejärel paneme sündmuse järjekorda sündmuste järjekorda. Lõpuks kärbime sündmuse, mis sisuliselt lähtestab sündmuse, et saaksime seda kasutada tulevaste sündmuste järjekorda seadmiseks.
4. samm: sündmuste protsessor
Sündmuste klassid võtavad sündmuste looja klassis toodetud inimloetava faili ja teevad kõik, mida iga järjekord järjekorras käsib, helistades sündmuste töötleja klassis kirjeldatud meetoditele. Seejärel ütleb sündmuste protsessori klass robotile, millist sündmust taasesitada. Olenemata sellest, kas tegemist on lihtsa „edasiliikumise” sündmusega või keerulise sündmusega, mis on täis vahemaid, pöördeid ja rihmasid, taasesitab protsessor talle antud sündmust. See protsess on autonoomse režiimi ajal väga kasulik, kuna meeskond saab salvestada andureid ja teleoperatsiooni toiminguid enne sobitamist ning seejärel lihtsalt sündmusi autonoomses režiimis uuesti esitada. Seda protsessi nimetatakse mälu taasesituseks. See võimaldab autonoomset programmi 100% konfigureerida ühe faili kaudu. Kui sündmuse looja ja töötleja on loodud, saab meeskond lihtsalt muuta autonoomset rutiini inimloetava faili kaudu.
Ülaltoodud näide algab kõigepealt JSON -faili sündmuse kontrollimisest ja seejärel selle sündmuse kontrollimisest juhtumilause abil, et näha, milline sündmus see on, antud juhul omakorda, kasutades IMU -andurit. Kui see saab öelda, et see on IMU sündmust kasutav kord, tegeleb see sündmuse töötlemisega, mis hõlmab tavaliselt koodi käivitamist, mille sündmus sündmusest pärit muutujate abil edastati, et edastada varem tehtud sündmus.
Soovitan:
Z80-MBC2 Atmega32a programmeerimine: 6 sammu
Z80-MBC2 Atmega32a programmeerimine: Enne z80-MBC2 kasutamist, pärast selle ehitamist, peate Atmeg32 programmeerima. Need juhised näitavad teile, kuidas kasutada koodi üleslaadimiseks programmeerijana odavat arduino mini
ATmega328 programmeerimine Arduino IDE abil 8MHz kristalli abil: 4 sammu
ATmega328 programmeerimine Arduino IDE -ga, kasutades 8MHz kristalli: Selles süstitavas kirjeldan samm -sammult ATmega328P IC (sama mikrokontroller olemas Arudino UNO -l) programmeerimise juhendit, kasutades Arduino IDE -d ja Arduino UNO -d programmeerijana, et teha endale kohandatud Arduino, et oma projekte teha
Attiny85 Samaaegne programmeerimine või kõrvits mitmevärviliste silmadega: 7 sammu
Attiny85 samaaegne programmeerimine või mitmevärviliste silmadega kõrvits: See projekt näitab, kuidas juhtida kahte 10 mm kolmevärvilist ühist anood-LED-i (kõrvitsa Halloweeni sära mitmevärvilised silmad) koos kiibiga Attiny85. Projekti eesmärk on tutvustada lugejale samaaegse programmeerimise kunsti ja Adam D
ATtiny85 kantavate vibreerivate tegevuste jälgimise kell ja programmeerimine ATtiny85 koos Arduino Unoga: 4 sammu (piltidega)
ATtiny85 kantavate vibreerivate tegevuste jälgimise kell ja programmeerimine ATtiny85 koos Arduino Unoga: kuidas teha kantavat aktiivsuse jälgimise kella? See on kantav vidin, mis on loodud stagnatsiooni tuvastamisel vibreerima. Kas veedate suurema osa ajast arvutis nagu mina? Kas istute tunde, ilma et peaksite sellest aru saama? Siis on see seade
ATtiny programmeerimine Arduinoga: 7 sammu (piltidega)
ATtiny programmeerimine Arduino abil: Allpool on toodud juhised ATtiny mikrokontrollerite programmeerimiseks Arduino IDE abil. Lihtsas inglise keeles saate programmeerida 8-kontaktilisi Atmeli kiipe nagu tavaliselt Arduino puhul. See on lahe, sest ATtiny on väike ja - noh - see võimaldab