Semestrální projekt z předmětu Vedoucí práce: Ing. Lukáš Kopečný Ph.D. Autoři práce: Jan Macků (185102) Martin Mačišák (186134) Kateřina Chroustovská (186094) BRNO 2017
Obsah 1. Zadání... 3 1.1 Přesné znění zadání... 3 2. Teoretický úvod... 4 2.1 Taktilní snímač... 4 2.2 KamBot... 4 2.3 Raspberry Pi V2... 5 2.4 Mikrospínač P-B17CC... 5 3. Vypracování... 6 3.1 Návrhy... 6 3.2 Pouzdro pro uložení mikrospínačů... 7 3.3 MCP23008... 8 3.4 Program... 9 4. Závěr... 10 4.1 Co bychom mohli udělat lépe... 10 5. Seznam obrázků... 11 6. Bibliografie... 12
1. Zadání Zadání projektu jsme si měli vybrat mezi nově navrženými tématy nebo si navrhnout nějaké vlastní. Nám se ale zalíbilo zadání z loňského roku, které si nikdo nevybral. Taktilní snímač pro KAMbot. Po konzultaci s Ing. Lukášem Kopečným Ph.D., který byl uvedený jako vedoucí této práce, nám bylo toto téma přiděleno. 1.1 Přesné znění zadání Navrhněte a realizujte modul taktilních (dotykových) snímačů pro mobilní robot KAMbot. Navrhněte a realizujte jednoduchý algoritmus pro vyhýbání překážkám. Prerekvizity: C, HW, 3D kreslení 3
2. Teoretický úvod 2.1 Taktilní snímač Taktilní snímač je prvek, který je schopný snímat informaci o dotyku s prvkem vnějšího prostředí a převádět ji na elektrický signál. Taktilní snímače nám pomáhají získat specifické informace, které jsou nezjistitelné jinými metodami. Při interakci 2 nebo více věcí nám taktilní snímače pomůžou určit, že k dané interakci došlo. Například při nárazu robota do stěny. Robot rozpozná, že narazil do překážky a zvolí si jinou cestu. Díky těmto snímačům může robot lehce uchopit předmět nebo třeba přesně změřit souřadnice daného předmětu umístěného v prostoru. Spousta různých senzorů se dá přiřadit k taktilním, mikrospínač indikující dotyk, senzory síly úchopu, ale i senzory nahrazující lidský hmat. 2.2 KamBot Kambot je robot navržený v rámci předmětu BPRP a počítačové vidění. Je to krokovými motory (Microcon) řízený mobilní robot, který zkonstruovali sami studenti. Celá jeho koncepce je založená na Raspberry PI V2. I proto byl původní název tohoto robotu RaspBot. Robot by měl být napájen baterií. Při přebírání robota nám ale nebyla baterie dodána, dostali jsme pouze napájecí zdroj, proto je celý náš projekt odzkoušen pouze na robotovi napájeném ze sítě. Obrázek 1 - KAMBOT - první verze 4
2.3 Raspberry Pi V2 Raspberry Pi je malý jednodeskový počítač s deskou plošných spojů. Existuje od roku 2012 a byl vyvinut pro podporu výuky informatiky. Operačním systémem je Raspbian. Je to lehce dostupné zařízení, které si pro své potřeby může zakoupit každý, kdo si chce naprogramovat svého robota. Obsahuje slot pro microsd kartu, čtyři porty USB 2.0, ethernetový adaptér 10/100 Mbps s konektorem RJ-45. Obrázek 2 - Raspberry PI 2 2.4 Mikrospínač P-B17CC Jedná se o 1-pólový přepínací ON-ON mikrospínač s páčkou zakončenou otočným ložiskem. Kód produktu 630-156, výrobce MSW-13, váha0.002880 Kg. Jmenovité napětí 125/250 V a jmenovitý proud je 5A. Obrázek 3 - Mikrospínač P-B17CC 5
3. Vypracování Celá práce na projektu byla rozdělena do několika částí. Nejprve jsme se domluvili, jakým způsobem bychom chtěli robota dělat, jaké součástky použijeme, kdo se bude věnovat jaké části projektu, dali jsme si termíny, rozdělili práci a vrhli se na to. 3.1 Návrhy Hned z kraje jsme se dohodli, že KAMbota osadíme třemi mikrospínači P-B17CC s páčkou a ložiskem na konci. Je to jednoduchý mikrospínač, který bohatě stačí pro naše potřeby a je cenově dostupný. Po tom, co jsme vymysleli, které spínače použijeme, jsme přemýšleli, kam snímače umístíme. Návrhů bylo hned několik. Na každou stranu jeden, nebo 2 snímače vpředu, 2 naboku. Nakonec vyhrálo umístění 3 snímačů na přední straně. Díky tomuto umístění jsme schopni rozeznat, jestli robot narazil do stěny celým svým tělem, nebo jen částí a tím pádem si uvědomil, že může pokračovat touto cestou, jen se musí o kousek posunout. Obrázek 4 - Návrh zapojení mikrospínačů 6
3.2 Pouzdro pro uložení mikrospínačů Když jsme se rozhodli, kolik snímačů a kde budeme mít, bylo klíčové rozhodnout se, jak snímače přichytíme k robotovi. Součástí našeho ústně upřesněného zadání bylo navrhnutí uložení snímačů tak, aby byly pevně spojeny s robotem. K nakreslení uchycení jsme využili OpenSource program Blender, ve kterém jsme provedli hned několik návrhů, které jsme neustále vylepšovali, až jsme se konečně dostali k takovému pouzdru, které jsme nechali vytisknout na 3D tiskárně a následně i přišroubovali ke konstrukci robota. Toto uchycení dovoluje snímač použít na jakémkoliv KAMbotovi stejných rozměrů. Obrázek 5 - Vnitřní pohled Obrázek 6 - Vnější pohled 7
Obrázek 7 - Výsledné uchycení snímačů 3.3 MCP23008 Pomocí expandéru jsme připojili snímače k I2C sběrnici. Výhoda tohoto expandéru spočívá v tom, že na expandér můžeme mít připojené 8 vstupů nebo 8 výstupů a jednotlivé vstupy, nemusíme připájet na piny Raspberry PI. Stačí je pomocí expandéru připojit na sběrnici I2C. Obrázek 8 - Datasheet MCP23008 Obrázek 9 Pájivé pole s připojenými snímači 8
Obrázek 10 - Pájivé pole připojené k robotovi 3.4 Program Samotný program, který ovládá našeho robota, jsme psali v jazyce C. S motory a tlačítky jsme komunikovali po I2C sběrnici. Ke komunikaci jsme používali knihovnu WiringPi a WiringI2CPi. V programu jsou funkce, které voláme (doprava, doleva, dopredu a dozadu). Pomocí příkazu case, jsme v programu volali příslušnou funkci, která s robotem hýbe podle toho, který snímač narazil do překážky. Program je uveden v příloze. 9
4. Závěr Naším cílem bylo vytvořit pouzdro pro umístění snímačů na robotovi, vybrat a připojit vhodné snímače a následně naprogramovat robota tak, aby fungoval a vyhýbal se překážkám. Se všemi úkoly a nástrahami jsme se poprali, myslím, statečně. Povedlo se splnit všechny úkoly zadání. 4.1 Co bychom mohli udělat lépe Jak už to tak bývá, v průběhu práce na projektu zjistíte, že vše co jste si naplánovali a vymysleli, by se dalo udělat jinak a mnohdy i lépe. Až při praktickém řešení projektu nám došla spousta velmi vhodných návrhů změn a věcí na dodělání. Bohužel času v semestru není nazbyt, takže jsme robota dokončili podle původních plánů. Neodpustíme si tu ale uvést některé z navržených změn. 4.1.1 Umístění snímačů Umístění snímačů je velmi variabilní věcí. Každé umístění nese určité výhody, ale i nevýhody. Naše umístění 3 snímačů by se dalo vylepšit tak, že bychom krajní snímače umístili pod úhlem a s delší páčkou. Snímače by potom byly multifunkční. Dokázali by například rozeznat i to, že robot naráží na překážku ze strany. Nebo třeba to, že jede podél stěny. Díky tomu by mohl projít třeba i bludištěm, což ale nebylo součástí zadání. Dalším možným lepším umístěním by bylo umístit další 2 snímače ještě na bocích robota. 4.1.2 Vylepšení snímačů Snímače by se dali vylepšit třeba připojením externích částí na páčku snímače. V současné chvíli máme na robotovi mrtvá místa. V případě, že narazí do velmi malé překážky, která se vejde mezi dva snímače, robot nic nepozná a nevyhne se. Tomu bychom zabránili, kdyby plocha páčky pokrývala celou oblast až k páčce druhého snímače. Snímače by bylo vhodné doplnit třeba snímači jiného typu, například ultrazvukové snímače vzdálenosti. Oba typy snímačů by se navzájem doplňovaly. 10
5. Seznam obrázků Obrázek 1 - KAMBOT - první verze... 4 Obrázek 2 - Raspberry PI 2... 5 Obrázek 3 - Mikrospínač P-B17CC... 5 Obrázek 4 - Návrh zapojení mikrospínačů... 6 Obrázek 5 - Vnitřní pohled... 7 Obrázek 6 - Vnější pohled... 7 Obrázek 7 - Výsledné uchycení snímačů... 8 Obrázek 8 - Datasheet MCP23008... 8 Obrázek 9 Pájivé pole s připojenými snímači... 8 Obrázek 10 - Pájivé pole připojené k robotovi... 9 11
6. Bibliografie 1. O předmětu BPRP. BPRB - a počítačové vidění. [Online] [Citace: 27. duben 2017.] https://sites.google.com/a/vutbr.cz/bprp/. 2. KAM-Bot - navigace napříč studiem Automatizace, Kybernetiky a Měření. Kambot. [Online] [Citace: 22. duben 2017.] https://sites.google.com/a/vutbr.cz/kambot/. 3. Taktilní senzory pro Automatizaci. Automa. [Online] červenec 2008. [Citace: 24. duben 2017.] http://www.odbornecasopisy.cz/res/pdf/37544.pdf. 12