User Manual
91
Jelikož je ACS kompletně implementován v software, vyžaduje časté volání následující funkce
z hlavní smyčky:
void task_ACS(void)
Tato funkce zcela ovládá ACS. Další zpracování se může provádět podobným způsobem jaký
byl předveden u nárazníků.
Knihovna RP6Lib poskytuje dvě proměnné:
obstacle_left a obstacle_right
Každá z nich se nastaví na TRUE, jakmile ACS detekuje překážku. Pokud se na TRUE nastaví
obě proměnné, překážka bude umístěna přímo před robotem.
Volitelně můžete použít obsluhu události ACS.
void ACS_setStateChangedHandler(void (*acsHandler)(void))
Tato funkce registruje obsluhu události, která musí mít následující tvar:
void acsStateChanged(void)
Funkci můžete pojmenovat libovolně.
Ukázkový program demonstruje, jak se funkce používá. Začínáme registrací obsluhy události
(řádek 44), pak aktivujeme všechny snímače včetně IR přijímače (řádek 46 – bez toho to
samozřejmě nefunguje) a nastavíme výkon vysílače pro ACS IR LED (řádek 47). Hlavní smyčka
opakovaně volá funkci task_ACS().
Další vyhodnocení se provede automaticky. Funkce acsStateChanged způsobí volání, jakmile
dojde ke změně stavu ACS, který se objeví při detekci překážky nebo když zase zmizí. Program
zobrazí okamžitý stav ACS textovou zprávou na terminálu a pomocí LED.