Sadržaj:
- Korak 1: Šta je programiranje zasnovano na događajima?
- Korak 2: Logički tok programiranja zasnovanog na događajima
- Korak 3: Kreator događaja
- Korak 4: Procesor događaja
Video: Programiranje na osnovu događaja u FTC-u: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Ove godine, naš tim je obavio veliki posao s razvojem softvera za našeg robota upravljanog događajima. Ovi programi su omogućili timu da precizno razvije autonomne programe, pa čak i ponavljajuće tele-op događaje. Kako je rad na softveru koji zahtijeva složen, odlučili smo podijeliti znanje koje smo stekli o razvoju koda za FTC robote koji se zasniva na događajima.
Korak 1: Šta je programiranje zasnovano na događajima?
Uopšteno govoreći, programiranje zasnovano na događajima, prema Techopedia, je razvoj programa koji reaguju na unos korisnika. U tom smislu, mnogi programi se smatraju upravljanim događajima, uključujući i tele-op program tima, koji se oslanja na ulazne podatke upravljača koje vodi čovjek za provođenje bilo koje radnje. Međutim, u smislu posla koji je naš tim obavljao, programiranje zasnovano na događajima odnosi se na stvaranje softvera iz različitih ulaza; drugim riječima, dokumentujemo događaje na osnovu ulaza kontrolera i senzora, zatim možemo te događaje staviti u red i koristiti datoteku za ponavljanje snimljenog događaja.
Ova metoda razvoja programa za našeg robota ima nekoliko prednosti:
- Omogućuje nam stvaranje preciznih autonomnih programa. Budući da softver stvaramo u stvarnom vremenu dok smo u toku događaja, prikupljene i korištene vrijednosti senzora bit će vrlo točne jer dolaze izravno iz izvornog događaja.
- Omogućuje nam brzo stvaranje autonomnih programa. Izrada autonomnih programa jednostavno je kao snimanje niza događaja i prilagođavanje događaja prema potrebi.
- Omogućuje nam stvaranje automatskih procesa za tele-op. Za ponovljene radnje u teleoperaciji, programiranje zasnovano na događajima omogućava nam snimanje ovih radnji i dodjeljivanje događaja dugmetu tokom perioda utakmica koje kontroliše vozač. Senzori mogu utjecati na ove automatizirane događaje kako bi se omogućilo njihovo točno izvršavanje.
Korak 2: Logički tok programiranja zasnovanog na događajima
Sledeće prikazuje logički tok programa vođenog događajem: crvena prikazuje kreiranje događaja, a plava prikazuje pozivanje događaja. Za kreiranje događaja, niz unosa se uzima kroz radnju robota i bilježi kao događaji; ti se događaji zapisuju u datoteku. Za pozivanje događaja ta se datoteka čita, a ulazi se šalju procesoru događaja kako bi kod datoteke pretvorili u robotsku akciju.
Korak 3: Kreator događaja
Kreatori događaja koriste se za dokumentovanje radnji ili „događaja“na osnovu različitih senzora i dugmadi. Dok robot vrši radnje na terenu, klasa kreatora događaja paralelno stvara događaje za svaku od tih radnji, pozivajući se na događaj klasifikovan u klasu događaja. Nakon stvaranja, događaj se stavlja u red događaja u klasi događaja: prvi događaj zauzima prvo mjesto, zatim drugi događaj zauzima prvo mjesto i gura sve događaje ispod njega, a to se nastavlja sve dok se program ne zaustavi. Kada se program zaustavi, događaji izlaze u datoteku formata čitljivu za čovjeka, poput JSON datoteke. Ova datoteka se može koristiti za bolje poboljšanje autonomnih rutina.
Gornji primjer koda postavlja parametre događaja, koji je u ovom slučaju okret pomoću IMU senzora. Zatim stavimo događaj u red događaja u red događaja. Konačno, skraćujemo događaj, koji u suštini poništava događaj tako da ga možemo koristiti za stavljanje budućih događaja u red.
Korak 4: Procesor događaja
Klase događaja uzimaju datoteku koju može čitati čovjek proizvedenu u klasi kreatora događaja i čini sve što joj svaki događaj u redu kaže da učini pozivajući metode navedene u klasi procesora događaja. Klasa procesora događaja tada govori robotu koji događaj treba ponoviti. Bilo da se radi o jednostavnom događaju "vožnja naprijed" ili o složenom događaju punom udaljenosti, zavoja i poteškoća, procesor će ponoviti svaki događaj koji mu je dan. Ovaj proces je vrlo koristan za vrijeme autonomije, jer tim može snimiti senzore i radnje Tele-Op-a prije nego što se podudaraju, a zatim jednostavno ponoviti događaje u autonomnom režimu. Ovaj proces se naziva Reprodukcija memorije. Ovo omogućava da se autonomni program 100% konfigurira kroz jednu datoteku. Nakon što se kreira kreator i procesor događaja, tim može jednostavno promijeniti autonomne rutine kroz datoteku čitljivu za ljude.
Gornji primjer prvo započinje provjerom JSON datoteke za događaj, a zatim provjerom tog događaja pomoću izraza slučaja da se vidi o kakvom se događaju radi, u ovom slučaju skretanjem pomoću IMU senzora. Nakon što može reći da je riječ o zaokretu pomoću IMU događaja, tada se bavi obradom događaja, što obično uključuje pokretanje koda koji je događaj došao pomoću varijabli iz događaja, proslijeđenih za replikaciju događaja koji je već učinjen.
Preporučuje se:
Visinomer (mjerač visine) Na osnovu atmosferskog pritiska: 7 koraka (sa slikama)
Visinomer (mjerač nadmorske visine) na osnovu atmosferskog pritiska: [uredi]; Pogledajte verziju 2 u koraku 6 s ručnim unošenjem osnovne visine. Ovo je opis zgrade visinomjera (mjerača nadmorske visine) zasnovanog na Arduino Nano i Bosch BMP180 senzoru atmosferskog tlaka. Dizajn je jednostavan, ali mjerenja
Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka
Mood Speaker- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: Zdravo! Za moj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametni Bluetooth zvučnik s različitim senzorima, LCD-om i WS2812b LED traka uključena. Zvučnik pušta muziku u pozadini na osnovu temperature, ali može
Odbrojavanje nadolazećih događaja: 5 koraka
Tajmer za odbrojavanje nadolazećih događaja: Pregled: Sat za odbrojavanje događaja sličan je komercijalnim proizvodima, s nekoliko zaokreta: a) Čitljivo sa cijelog ekrana prostorije. B) Prilagodljiva slika događaja.c) Kako se vrijeme događaja odbrojava, preostali dani se mijenjaju boja - zelena - > žuto
RPi-Zero IoT indikator događaja / lampa u boji: 6 koraka (sa slikama)
RPi-Zero IoT indikator događaja / lampa u boji: Nema dodatnog mikrokontrolera & Nije potreban HAT dodatni modul. RPi-Zero radi sve. Još bolje, upotrijebite RPi-Zero W! Primjer upotrebe: Indikator stanja web usluge (npr. Praćenje DowJonesIndex), Indikator statusa političkih ili sportskih događaja, svjetlo raspoloženja
Svjetiljka za projektor događaja: 5 koraka (sa slikama)
Svjetiljka za projektore događaja: Svi vole praznike! Ali ponekad vaš dom možda nema dovoljno svečanih slika. No, to je pitanje koje se lako može promijeniti. Osvjetljavajući ovu mašinu za povećanje blagdanskog duha, možete dodati neke svečane slike bilo kojoj zabavi, proslavi ili prigodnom prigodu