User Manual

100
Funkce:
uint8_t isMovementComplete(void)
se může používat ke kontrole, zda byl dokončen pohybo příkaz. Pokud není pohybový příkaz
dokončen, bude vratová hodnota FALSE.
Kdykoliv byl pohybo příkaz překažený, tj. například při detekci překážky, můžete ukončit
echny pohyby voláním funkce:
void stop(void)
který zastaví echny pohyby.
Někdy může být hodné použít pohybovou funkci pro očení jednoduchým nastavením
směrového parametru na LEFT nebo RIGHT místo FWD nebo BWD a zadáním vhodné
hodnoty vzdálenosti, která odpoví úhlu natočení. Tato metoda je poněkud neohrabaná a není
příliš výkonná. Z tohoto důvodu nabízíme specializovanou funkci pro očení na místě:
void rotate(uint8_t desired_speed,uint8_t dir,uint16_t angle,uint8_t blocking)
Tato funkce se chová stejně jako příkaz move, pouze se místo vzlenosti určí úhel natočení.
Parametr blokování se může používat také v této funkci.
Následující program ukazuje, jak se používají obě funkce:
Robot se pojede 30 cm dopředu, otočí se o 180° doleva, přejede 30 cm dozadu, otočí se o 180°
doprava a začne od začátku. Pokud byste nastavili blokování všech parametrů na FALSE,
program nemusí vůbec fungovat. Hlavní smyčka nevolá funkci task_motionControl a echny
pohybové funkce se zavolají v jedi posloupnosti. Změna pouze jednoho blokovacího
parametru na FALSE způsobí, že program více měně nefunguje tak, jak jste zamýšleli. Jedna
pohybová fáze se úplně přeskočí.