Enkodéry 
Martin Dlouhý a Zbyněk Winkler, 2003-10-30
senzory pro detekci pohybu kol
Robot nám vesele náhodně pobíhá po podlaze, ale přitom o tom vůbec
neví. Vysvětlíme si tedy, jak může detekovat, zda (a případně jak
rychle a na jakou stranu) se mu točí kolečka. Nejčastěji používaným
zařízením pro tento účel jsou optické enkodéry. Jak fungují, či jak si
takový enkodér postavit doma, se dozvíte právě dnes.
Základním principem funkce enkodérů je měření přítomnosti či nepřítomnosti
nějakého dobře detekovatelného materiálu na otáčejícím se kolečku. V případě
tachometru pro jízdní kolo je to magnet, v případě kuličkové myši je to díra
v kolečku atp.

Signál jednoduchého enkodéru
|
V robotické praxi se nejčastěji setkáváme s enkodéry optickými. V případě
reflexních (odrazových)
enkodérů jsou zdroj „světla” i jeho přijímač společně umístěny na jedné
straně kolečka, na kterém jsou reflexní a matné plošky. Jejich střídání
před přijímačem při otáčení kolečka na něm způsobuje změny napětí v důsledku
změny množství detekovaného světla. Zprahováním napětí na přijímači (o
oprahování jsme se zmiňovali v kapitole
Co je to
robot?) získáme obdélníkový
signál (viz. kapitola
Řízení serva — změna napětí v čase), kde každý
obdélník odpovídá jedné reflexní či matné ploše. Při jejich rovnoměrném
rozmístění po obvodu kolečka odpovídá jeden obdélník otočení vždy o shodný počet
stupňů. Enkodérům generující takovýto pravidelný obdélníkový signál říkáme
inkrementální. U
transmisivních enkodérů jsou zdroj a přijímač umístěny na opačných
stranách děravého kolečka. Reflexní plošky jsou zde suplovány dírami.

Signál dvojtého enkodéru
|
Pokud máme zaručeno, že vždy víme, na kterou stranu se kolečko otáčí, tak z
výše uvedených informací poměrně snadno získáme ujetou vzdálenost. Zkalibrovat
enkodéry můžeme například tak, že necháme robota kousek popojet, přesně změříme
ujetou vzdálenost, spočítáme počet „obdélníků” naměřených během tohoto pohybu
a změřenou vzdálenost vydělíme tímto počtem. Získáme tím „délku” jednoho
„obdélníku” (často se tomuto údaji říká
enkodérový tik).
V případě, že infomaci o směru otáčení nemáme, z výše popsaného enkodéru ji
nezískáme. Pro zjištění směru otáčení potřebujeme na kolečku ještě jeden
senzor, který je v ideálním případě namontován tak, že jeho signál je s
původním signálem fázově posunut a to nejlépe o 90°.
Fázový posuv znamená, že se nám hrany obdélníků jednotlivých signálu neslévají
(signály jsou posunuty v čase). Posuv o 90° znamená, že hrana obdélníku jednoho
signálu nastává uprostřed obdélníku signálu druhého (jak je vidět na obrázku).
Mimo výše popsaných inkrementálních enkodérů existují i tzv. absolutní.
Zatím co inkrementální enkodéry pouze detekují změnu polohy o pevně daný minimální
krok, absolutní enkodéry nám říkají přímo polohu v rámci 360 stupňů.

Absolutní enkodér
|
I absolutní enkodéry mohou být optické, ale pak je třeba
informaci zakódovat a potřebujeme tolik snímačů, jaké rozlišení požadujeme.
Snímače mohou mít buď každý vlastní dráhu (jako na obrázku), nebo mohou být
všechny na kraji, kde je informace o poloze dána pomocí jednoznačného kódu. Pro
osm poloh a tři senzory by to mohlo být např. 000 001 010 101 011 111 110 100
a na kolečku by bylo 00010111 (v případě tří senzorů a osmi poloh, ale pouze
relativní informace bychom získali rozlišení 24 místo 8)
Další, běžnější variantou, je použití potenciometru. Poloha se pak jednoduše
určí pomoci A/D převodníku. Toto řešení je například použito snad ve všech
levných modelářškých servech.
Co se použití týče, jsou v mnoha případech enkodéry záměnné: máme-li absolutní
enkodér tak z rozdílu dvou poloh zjistíme o kolik se pootočil. Opačným směrem
to není už tak jednoduché, protože je třeba někde definovat nulu, od které
budeme počítat. To lze i pomocí obyčejného tlačítka (limit switch) a dělala to
tak většina starých jehličkových tiskáren. Jinou možností je speciální signál
index, který je aktivován pouze v jedné poloze. Polohu si je třeba si pamatovat
a po resetu jí znovu ověřit.
Související literatura
Závěr
Po přečtení tohoto články byste měli mít tak zhruba představu o tom, co to
jsou enkodéry, jaké informace poskytují, a jak je zpracovávat.