Fuzee

sledovač čáry/linefollower

Úvodní slovo

Fuzee je můj první robot. Jak možná mnozí tuší, inspirací k němu byl Pocketbot od Ondry Staňka. S ním jsem také spoustu věcí k robotovi konzultoval.
Jméno robota je odvozeno od anglického názvu zápalek, které nezhasínají.

Charakteristika

Jedná se o jednoduchého sledovače čáry, který se vejde do krabičky od sirek. Z tohoto důvodu bylo potřeba vybrat všechny komponenty co nejmenší.

Podvozek
Klíčová část robota. Za jeho výrobu vděčím Pepovi Vandělíkovi, který vyráběl podvozky také pro Pocketbota 1 a 2. O pohon se starají dva vibrační motorky z mobilu (v mém případě z Nokie 3120 či podobné, cena cca 17 Kč). Převod otáček z motoru na kolečka pracuje na třecím principu. Uprostřed podvozku je v trubičce umístěn silný neodymový magnet, ke kterému jsou přitahovány hřídelky s kolečky. V důsledku toho jsou přitlačeny na hřídel motorku. Je důležité správně nastavit pozici kolečka na hřídelce, aby docházelo k co nejlepšímu přenosu otáček, a pokud možno na obou stranách stejně.
V podvozku jsou navíc umístěny otvory pro enkodéry a na hřídelkách jsou černé proužky. Bohužel se mi enkodéry doposud nepodařilo zprovoznit. Hádám, že Atmega8 na to prostě s použitím pouze AD převodníků nebude stačit.
Občas používám i větší kolečka, původní mají průměr 8 mm, větší pak přibližně 11 mm. S většími kolečky dosahuje Fuzee vyšší rychlosti a mám je zbroušené, aby bylo pokud možno zamezeno prokluzování. Také jsou výhodná při jízdě na ne úplně hladkém povrchu.

Mikročip
Fuzee je postaven na mikročipu Atmega8A. Ten je samozřejmě kvůli velikosti v SMD provedení. Mohl by být ještě menší, kdybych použil bezpinovou verzi, která má cca. 8x8 mm. Čip tiká na 8 MHz a využívá k tomu interního oscilátoru.
K jeho programování používám SPI rozhranní. Problém však byl, jaký použít konektor, aby nezabíral moc místa? Vyřešil ho za mě Ondra Staněk, který začal používat miniaturní konektory Molex. Pro 8 vodičů má rozměry přibližně 9x5x2 mm. Kromě pinů na programování mám na něj vyvedeny také piny pro komunikaci přes UART. Jelikož na piny pro SPI je také napojen h-můstek a jeden jsem možná při programování odrovnal, je nyní v čipu nahrán bootloader a nový program se nahrává právě přes UART.

Senzor čáry
Je to základní senzor potřebný ke sledování čáry (a asi také jediný). Je tvořen třemi fototranzistory a čtyřmi IR ledkami. Všechny součástky jsou v smd pouzdře velikosti 1206. Senzor je umístěn na samostatné desce, která je v potřebné vzdálenosti nad podložkou. K hlavní DPS je připájena napevno pomocí 8 kolíků vytažených z pinové lišty, které slouží ke komunikaci mezi čipem a senzorem.
Na desce se postupně střídají IR ledky a fototranzistory. Při snímání polohy se nejprve načtou údaje ze všech fototranzistorů bez rozsvícených IR led a pak se postupně rozsvěcují jednotlivé ledky a člou se údaje z fototranzistorů, které jsou vedle ní. To znamená, že z každého fototranzistoru získám dva ůdaje, ve výsledku tedy 6 měřených pozic. Výsledky jsou čteny AD převodníkem. Od každého naměřeného údaje je ještě odečtena hodnota bez rozsvícených ir led - to slouží k potlačení vlivu okolního světla.

Další části
Fuzee je vybaven součástkami pro realizaci senzorů překážky - IR přijímač modulovaného signálu od firmy Vishay a IR led. U přijímačů je však potíž v tom, že když nepřijímají žádný signál, mění svoji citlivost. Také jsem zjistil, že reagují na různě modulovaný signál, nejen na ten, na který jsou určeny. Při testech se mi zatím povedlo částečně senzor zprovoznit, ale po softwarové stránce ještě není úplně hotový.
Jeden přijímač je také využitý pro dálkové ovládání. Mám malý ovladač od videokamery JVC. Výstup přijímače je přiveden na pin čipu, který může vyvolávat přerušení a v programu je část pro jeho dekódování. Dálkové ovládání slouží pro samotné ovládání robota a nebo při jízdě po čáře k ladění PD regulátoru. Jelikož mám však detekci napsanou docela volně a nejsou moc tvrdé požadavky na přesnost signálu z dálkového ovladače, dochází při sledování čáry k jeho rušení senzorem čáry (ano, rušení IR zářením, které se odráží od podložky a prochází dvěma DPS. Zajímavé, že?).
Pro spouštění, zastavování a nahrávání programu je Fuzee také vybaven miniaturním tlačítkem. Poprvé mi při pájení do něj nejspíš nateklo tavidlo a tlačítko s emačkalo dost špatně.
Kromě jedné signalizační led umístěné na vrchní části DPS jsou na spodní straně také dvě další led. Ty slouží jako podsvícení robota a vypadá to opravdu dobře. Zvolil jsem červenou barvu. Při sledování čáry ho zapnuté nemívám, ale zkoušel jsem i to a k rušení senzoru čáry nedochází.
Málem bych zapoměl na h-můstek, který je schovaný pod podvozkem. Nese označení A3901, má cca 5x5 mm, je bez pinů (a ze začátku jsem se zděsil, jak ho budu pájet, ale nakonec to šlo) a slouží k ovládání obou motorů. Jedním kanálem může procházet proud 400 mA, což je víc než dost.
Plošné spoje jsou vyráběné u firmy Matron. Dobrá cena, nepájivá maska, prokovy, HAL, tenké cestičky i mezery,... Nechal jsem si vyrobit dva kusy, což se ukázalo jako velmi výhodné, jelikož jednu DPS jsem poškodil při výměně h-můstku. U druhé jsem zase poškodil při pájení místo pro piny, na které se nazasoval jumper por zapnutí, takže Fuzee se zapíná při zapojení baterky - lipol baterie s kapacitou 200 mAh.

Program
Samotný program není nijak zajímavý (alespoň dle mě :D ). Obsahuje pouze čtení údajů ze senzoru čáry, jejich zpracování na pozici čáry a PD regulátor, kterým jsou následně ovládány motory. Před sledováním čáry provádím kalibraci senzoru čáry. Tyto hodnty pak využívám k přepočtu údajů ze senzoru čáry na normovaná čísla v daném rozsahu (0-100? myslím). Z těchto hodnot je pak počítána pozice čáry po vzoru Ondry staňka - nalezne se nejnižší hodnota (je nejvíce nad černou čarou) a údaje z jedné strany k ní se dohromady posčítají, údaje z druhé strany se od nich pak odečtou.

Obrázky

Fuzee






Vyrobené DPS




Videa

První kroky
Jedná se o pouhé zapnutí motorů s určitou hodnotou pwm po určitý čas. Kromě různého přenuso otáček na kolečka navíc robot couval.



První cesta
Upravil jsem plnění pwm pro každý motor, aby jel robot pokud možno rovně, ubral rychlost, a udělal malou sekvenci pohybů.



Sledování čáry 1
Je využito pouze P regulátoru.



Sledování čáry 2
Zde už čip obsahuje PD regulátor.



Disko
Malé blbnutí s blikáním pomocí ovladače.



Sledování čáry 3
Příprava na soutěž na VŠB. Když už s emi povedlo PD regulátor vyladit a dosáhnout rychlosti kolem 35 cm/s, tak se mi posunulo jedno kolečko a tím se celý regulátor rozhodil...