Robot sledující čáru

Už od studentských let jsem měl touhu postavit si vlastního robota, bohužel však žádný projekt nikdy nebyl dokončen do stavu, který bych považoval za přijatelný (vždy jsem vyzkoušel jednotlivé komponenty, ale už jsem byl moc líný dát je dohromady). Když jsem dostal možnost vést kroužek robotiky v domově dětí a mládeže, řekl jsem si, že je to dobrý impuls konečně něco dokončit, protože robot by musel být vyzkoušen a vyvinut před samotným začátkem kurzu.

Věk potencionálních účastníků kurzu měl být v rozmezí 12-14 let, volil jsem proto nízkou obtížnost a rozhodl se pro robota sledujícího čáru. Dále bylo nutné nabídnout levného robota, protože účastníci kroužku měli mít možnost si robota ponechat a vysoká cena kroužku by potencionální účastníky mohla odradit. Rozhodl jsem se tedy zkonstruovat robota s rozpočtem do 1000 korun.
Kroužek nakonec otevřen nebyl, ale robot byl v té době již rozpracován a tak jsem se rozhodl ho dokončit a vyzkoušet si na něm zakomponování Arduina do univerzálního plošného spoje (do té doby jsem vždy vytvářel prototypy v nepájivém poli). Po dokončení prototypu robota a otestování funkce „sledování čáry“ jsem dodělal regulaci pro jízdu rovně, protože zakoupený podvozek je pro to již připraven.

Tuto poslední funkci jsem přidal, abych vyzkoušel řízení pomocí regulace a protože enkodéry dodané k podvozku mi bylo líto nevyužít.

Celkový pohled na robota

Snažil jsem se co nejvíce součástek koupit hotových, protože manuální výroba čehokoliv by výrazně komplikovala program kroužku, který měl být jen o samotné stavbě a principech. Naštěstí je v dnešní době možnost koupit přímo stavebnici celého robota nebo alespoň podvozku. Veškeré použité díly jsou na následujícím seznamu. Bohužel podvozek, který jsem si vybral se již neprodává, ale jiný podvozek bude znamenat jen minimum úprav – pravděpodobně jinak uspořádaná kola. Následující ceny jsou z roku 2020.

Jméno součástkyCena
Univerzální spoj vrtaný69,-
Sada šroubů, matic a distančních sloupků158,-
H-můstek55,-
Klon Arduino Nano279,-
Stavebnice podvozku robota 2 kola349,-
Infračervený sensor sledování čáry78,-
Optozávora 2x98,-
Ceny dílů použitých při stavbě robota

Celková cena prototypu pro kroužek by tedy byla 919,- (bez nepájivého pole a drátků). Vylepšený model s regulací rychlosti motorů a Arduinem „zabudovaným“ do robota by stál 1086,-.

H-můstek

Pro řízení motorů je použit modul s H-můstkem, který lze sehnat zde. Na těchto stránkách je i návod pro zapojení, včetně vzorového kódu. Pokud budete chtít použít tyto motory pro svého robota, musíte vzít v úvahu, že každý motor se točí jinou rychlostí a to i přes to, že oběma motorům dodáte stejné napětí – pokud budete robota stavět, tak si zkuste v této fázi robota postavit na zem a pustit. Uvidíte, že je to problém 🙂.

V tomto případě není nutné regulaci řešit, protože samotné sledování čáry je forma regulace (pokud robot nejede rovně, tak brzy vyjede mimo čáru a je provedena akce, která ho vrátí). Zmíněné sledování čáry je řešeno pomocí infračerveného sensoru.

Infračervený sensor sledování čáry

Tento modul lze sehnat například zde. Jeho použití je velmi jednoduché, na každém pinu OUT1-5 je výstup HIGH/LOW podle toho, zda IR čidlo něco detekuje. Černá a bílá barva mají rozdílné vlastnosti co se týče pohlcování paprsků vysílaných čidlem. Díky tomu lze zapínat/vypínat motor robota a tím docílit sledování čáry. Čára, kterou chcete sledovat, by měla mít dostatečnou šířku, protože moc úzká čára může být přesně mezi sousedními čidly a robot se tak zastaví (nebo pojede dál – závisí na konkrétní implementaci).

Zabudování Arduina do desky spoje

Prototyp robota vypadal takto:

Aby byl celý „mozek“ robota na jednom místě, tak jsem chtěl do desky zabudovat i H-můstek. Desku jsem provrtal a modul H-můstku k ní přišrouboval (snad to není moc „fušérské“ řešení). Klon Arduina jsem poté zastrčil do desky a připájel. Pokud se rozhodnete něco takového udělat také, tak počítejte s tím, že to dá práci – je třeba připájet 30 pinů (jenom pro přidělání Arduina) a to nepočítám drátky. Bohužel už nelze Arduino z robota vyjmout a použít pro jiný projekt. V dalším podobném projektu chci zkusit použít nějaké pouzdro, do kterého bych Arduino jen zasunul.

Závěr

Robota lze v základu postavit pod 1000,- korun, což dodrželo zvolený limit. Rozšíření robota o funkci jízdy rovně a přidání desky plošného spoje robota trošičku prodražilo, ale to již bylo experimentování mimo původní cíl. Výsledný robot má dva nedostatky, které by bylo potřeba vyřešit. Prvním souvisí se snímáním čáry – sensor by měl být o asi půl milimetru níže, pak by čáru snímal bez problémů. Pokud je sensor níže, tak detekuje čáru pořád, pokud je výše, tak sensor nedetekuje nic (lehce ovlivněno světelnými podmínkami). Druhým problém je rychlost motorů – je moc velká. Pravděpodobně je problém v úrovni napájení motorů. Robot je moc rychlý a občas se stane, že z čáry vyjede moc rychle. Napadají mě dvě možná řešení: 1) použití regulátoru napětí s nižší hodnotou výstupního napětí – robot pojede pomaleji nebo 2) zlepšit program – používám jednoduchou regulaci, použitím lepší techniky, např. LTI regulace by mohl být nedostatek vyřešen. Nakonec několik fotografií výsledku.

Pohled z boku, černé distanční sloupky nejsou součástí stavebnice. Stavebnice obsahuje kovové sloupky, ale ty jsou mnohem kratší, takže modul H-můstku se pak do „patra“ nevejde.

Pohled zespodu, černá kolečka jsou enkodéry pro snímač rychlosti motorů. Sada podvozku má přesně umístěné otvory pro sensory.
Pohled na „mozek“ robota, Arduino je natočno tak, aby změna programu šla provést bez nutnosti rozebrání robota.