User Manual

99
V tomto ukázkovém programu RP6 se nejprve rozjede dopředu to je výchozí nastavení
pohybu po reset. Použijeme jedny stopky pro měření 4 sekundového čekání a pak obráme
směr. Na řádku 16 a 18 se určí okamžitý směr očení a určí příslušné změny. To se opakuje
ve 4 sekundových intervalech, které způsobí, že se robot stále pohybuje dopředu a dozadu.
Je jas, že robot stále ignoruje jakékoliv překážky!
Pomocí funcí, které jsme dosud probrali, není snadné ujet specifikovanou vzdálenost. K tomuto
účelu slouží dvě speciální funkce:
void move(uint8_t desired_speed,uint8_t dir,uint16_t distance,uint8_t blocking)
Funkce move umňuje, aby robot ujel specifikovanou vzdálenost. Musíme předat
požadovanou rychlost, směr (FWD nebo BWD) a vzdálenost v počtu enkodérových přírustků.
Makro:
DIST_MM(DISTANCE)
je užitečné pro převod vzdálenosti z milimetrů na přírustky enkoru. Nejdříve samozřejmě
musíte kalibrovat rozlišení enkodéru (viz dodatek). Následující ukázko příklad ukazuje, jak se
makro používá.
Robot se pokusí ujet požadovanou vzdálenost co nejpřesněji. Funkce motionControl začne
zrychlovat na nastavenou rychlost a krrátce před dosažením požadované vzdálenosti zpomalí,
aby ji nepřejel. Přesnost je kolem 5 mm, což můžeme obvykle považovat za docela dobrou.
Funkce nepodporuje pohyb na velmi krátkou vzdálenost pod 5 cm, ale to lze samozřejmě
zlepšit!
Parametr dráhy, nazvaný blokování je speciální vlastnost, kterou není třeba podrobně
popisovat.
Funkce obvykle nastaví pouze několik proměnných a okamžitě se vrá do programu. Robot je
pak ovládán na pozadí funkcí motionControl. To je užiteč pro provádění dalších úkolů, jako
je například vyhýbání překážek. Jenomže kd má robot pouze sledovat předem určenou
geometrický obrazec, můžete to změnit parametrem blokování.
Nastavení parametru na TRUE (to znamená 1), bude funkce ve smyčce volat funkci
motionControl dokud se nedosáhne zadaná vzlenost. Program nedokáže tuto funkci opustit
místo toho bude na potřebnou dobu blokovat normální průběh programu.
Nastavení parametru na FALSE způsobí, že funkce bude provádět e, co již bylo popsáno.
Po nastavení příkazu zahájení přesunu do definované vzdálenosti se okamžitě vrátí do
hlavního programu. Pokud zavoláte další funkce, které nastavují rychlost nebo vají další
pohybové příkazy, nemusí se program chovat korektně. Raději počkejte na dokončení
původního pohybového příkazu nebo můžete alternativně zrušit příkaz.