Obsah:
- Krok 1: Čo je programovanie na základe udalostí?
- Krok 2: Logický tok programovania riadeného udalosťami
- Krok 3: Tvorca udalostí
- Krok 4: Procesor udalostí
Video: Programovanie podľa udalostí vo FTC: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Tento rok náš tím vykonal veľký kus práce s vývojom softvéru riadeného udalosťami pre nášho robota. Tieto programy umožnili tímu presne vyvinúť autonómne programy a dokonca aj opakovateľné teleoperačné udalosti. Keďže softvérová práca, ktorú si vyžaduje, je komplexná, rozhodli sme sa podeliť sa o znalosti, ktoré sme získali pri vývoji kódu riadeného udalosťami pre FTC roboty.
Krok 1: Čo je programovanie na základe udalostí?
Vo všeobecnosti je programovanie založené na udalostiach podľa Techopedia vývoj programov, ktoré reagujú na vstupy používateľov. V tomto zmysle sa mnohé programy považujú za riadené udalosťami, vrátane tímového teleoperačného programu, ktorý pri vykonávaní akejkoľvek akcie závisí od vstupov od ovládača riadeného ľuďmi. Pokiaľ však ide o prácu, ktorú náš tím robí, programovanie založené na udalostiach je o vytváraní softvéru z rôznych vstupov; inými slovami, dokumentujeme udalosti na základe vstupov ovládačov a senzorov, potom môžeme tieto udalosti zaradiť do frontu a pomocou súboru znova spustiť zaznamenanú udalosť.
Tento spôsob vývoja programov pre nášho robota má niekoľko výhod:
- Umožňuje nám vytvárať presné autonómne programy. Pretože softvér vytvárame v reálnom čase počas akcie, zozbierané a použité hodnoty senzorov budú veľmi presné, pretože pochádzajú priamo z pôvodnej udalosti.
- Umožňuje nám rýchlo vytvárať autonómne programy. Vytváranie autonómnych programov je také jednoduché, ako zaznamenávať sériu udalostí a podľa potreby ich upravovať.
- Umožňuje nám vytvárať automatické procesy pre tele-op. Pri opakovaných akciách v rámci tele-opu nám programovanie založené na udalostiach umožňuje zaznamenať tieto akcie a priradiť udalosť tlačidlu počas období zápasov ovládaných vodičom. Tieto automatizované udalosti môžu byť ovplyvnené senzormi, aby bolo možné ich presné vykonanie.
Krok 2: Logický tok programovania riadeného udalosťami
Nasledujúci text zobrazuje logický tok programu riadeného udalosťami: červená znázorňuje vytvorenie udalosti a modrá znázorňuje vyvolanie udalosti. Na vytvorenie udalosti sa sekvencia vstupov zachytí prostredníctvom akcie robota a zaznamená sa ako udalosť; tieto udalosti sú zapísané do súboru. Na vyvolanie udalosti sa tento súbor načíta a vstupy sa odošlú do procesora udalostí, aby sa kód súboru zmenil na akciu robota.
Krok 3: Tvorca udalostí
Tvorcovia udalostí sa používajú na dokumentáciu akcií alebo „udalostí“na základe rôznych senzorov a tlačidiel. Keďže robot vykonáva akcie na poli, trieda tvorcov udalostí vytvára udalosti pre každú z týchto akcií súbežne a odkazuje na udalosť zaradenú do triedy udalostí. Po vytvorení sa udalosť zaradí do radu udalostí v triede udalostí: prvá udalosť zaujme prvé miesto, potom druhá udalosť zaujme prvé miesto a potlačí všetky udalosti pod ňou, a to pokračuje, kým sa program nezastaví. Keď je program zastavený, udalosti prejdú do súboru vo formáte čitateľnom pre človeka, napríklad do súboru JSON. Tento súbor je možné použiť na lepšie zlepšenie autonómnych rutín.
Vyššie uvedený príkladový kód nastavuje parametre pre udalosť, ktorou je v tomto prípade obrat pomocou senzora IMU. Udalosť potom zaradíme do frontu udalostí. Nakoniec udalosť skrátime, čo je v podstate resetovanie udalosti, aby sme ju mohli použiť na zaradenie do frontu budúcich udalostí.
Krok 4: Procesor udalostí
Triedy udalostí preberajú ľudsky čitateľný súbor vytvorený v triede tvorcov udalostí a robia všetko, čo im každá fronta vo fronte prikáže, volaním metód uvedených v triede procesora udalostí. Trieda procesora udalostí potom robotovi oznámi, akú udalosť má prehrať. Bez ohľadu na to, či ide o jednoduchú udalosť „vpred“alebo o komplexnú udalosť plnú vzdialeností, zákrut a bleskov, procesor prehrá akúkoľvek udalosť, ktorá mu bola zadaná. Tento proces je veľmi užitočný počas autonómnej prevádzky, pretože tím môže zaznamenávať senzory a akcie Tele-Op predtým, ako sa zhodujú, a potom jednoducho prehrávať udalosti autonómne. Tento proces sa nazýva opakovanie pamäte. To umožňuje, aby bol autonómny program 100% konfigurovateľný prostredníctvom jedného súboru. Akonáhle je vytvorený tvorca udalostí a procesor, tím môže jednoducho zmeniť autonómne rutiny prostredníctvom súboru čitateľného pre človeka.
Vyššie uvedený príklad najskôr začína kontrolou udalosti v súbore JSON a potom pomocou príkazu case skontroluje danú udalosť, aby zistil, o aký druh udalosti ide, v tomto prípade odbočenie pomocou senzora IMU. Akonáhle dokáže zistiť, že je na rade udalosť IMU, zaoberá sa spracovaním udalosti, ktorá zvyčajne zahŕňa spustenie kódu, z ktorého udalosť pochádza, pomocou premenných z udalosti odovzdaných na replikáciu udalosti, ktorá bola vykonaná predtým.
Odporúča:
Meteorologická stanica: ESP8266 s hlbokým spánkom, SQL, grafy podľa banky a vykresľovania: 3 kroky
Meteorologická stanica: ESP8266 S hlbokým spánkom, SQL, grafy podľa banky a grafu: Bolo by zábavné poznať teplotu, vlhkosť alebo intenzitu svetla na vašom balkóne? Viem, že by som. Vytvoril som teda jednoduchú meteorologickú stanicu na zhromažďovanie takýchto údajov. Nasledujúce sekcie predstavujú kroky, ktoré som vykonal pri jej zostavení. Začnime
[15 min] Weasleyho hodiny / Kto je doma Indikátor - podľa TR -064 (beta): 4 kroky (s obrázkami)
[15min] Weasley Clock / Who Is Home Indicator-Založené na TR-064 (beta): AKTUALIZÁCIA: Pozri krok 3. Dlhý príbeh (TL; DR nižšie): Pred nejakým časom som napísal do počítača malý bash skript, ktorý by prehľadajte v sieti registrované zariadenia a porovnajte ich názvy hostiteľov so zoznamom s priradenými názvami. Zakaždým, keď sa zariadenie prihlási-
Generátor hudby podľa počasia (midi generátor založený na ESP8266): 4 kroky (s obrázkami)
Generátor hudby podľa počasia (Midi generátor založený na ESP8266): Ahoj, dnes vám vysvetlím, ako si vytvoriť vlastný malý generátor hudby podľa počasia. Je založený na ESP8266, ktorý je niečo ako Arduino a reaguje na teplotu, dážď a intenzita svetla. Nečakajte, že z neho budú celé skladby alebo akordové programy
Programovanie prenosov z FTC: 4 kroky
Programovanie prenosov z FTC: Väčšina, čo sa týka vybavenia, tak aj veľké množstvo softvérových riešení pre váš robot. Programy, ktoré sú povolené, ako aj desarrolárne programy pre autonómiu a vrátane tele-OP rep
Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel: 4 kroky (s obrázkami)
Oznámenia udalostí v reálnom čase pomocou NodeMCU (Arduino), Google Firebase a Laravel: Už ste niekedy chceli byť upozornení, keď sa na vašom webe uskutoční akcia, ale e -mail nie je vhodný? Chcete pri každom predaji počuť zvuk alebo zvonček? Alebo je potrebná vaša okamžitá pozornosť kvôli vznikajúcemu