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átíme
směr. Na řádku 16 a 18 se určí okamžitý směr otáč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 jasné, ž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 umožň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 enkodéru. Nejdříve samozřejmě
musíte kalibrovat rozlišení enkodéru (viz dodatek). Následující ukázkový 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átí do programu. Robot je
pak ovládán “na pozadí” funkcí motionControl. To je užitečné pro provádění dalších úkolů, jako
je například vyhýbání překážek. Jenomže když 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á vzdálenost. 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 vš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 dá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.