User Manual
100
Funkce:
uint8_t isMovementComplete(void)
se může používat ke kontrole, zda byl dokončen pohybový příkaz. Pokud není pohybový příkaz
dokončen, bude návratová hodnota “FALSE”.
Kdykoliv byl pohybový příkaz překažený, tj. například při detekci překážky, můžete ukončit
všechny pohyby voláním funkce:
void stop(void)
který zastaví všechny pohyby.
Někdy může být výhodné použít pohybovou funkci pro otáč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ídá ú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 otáč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 vzdálenosti 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 všechny
pohybové funkce se zavolají v jediné 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čí.