MiMoBot v2.1

Nová verze populárního robota MiMoBot není jen malým vylepšením, ale přináší zcela nový koncept. Ze zmateného vozítka, které poslepu bloudilo bytem jako netopýr, se stal užitečný nástroj se širokoúhlou kamerou, který je ve dne v noci připraven vzdáleně monitorovat byt nebo jakýkoliv prostor pokrytý WiFi signálem.

Autonomní stroje, jako byl MiMoBot v1.0, se zdají jako veliká zábava. Pravdou ale je, že je to hrozná nuda. Můžete se jen dívat, jak robot bloudí po bytě, ale mnoho legrace si s ním neužijete. Druhá verze MiMoBota měla tedy jasný cíl. Postavit robota, kterého by bylo možné v reálném čase ovládat odkudkoliv na světě a přenést se tak na chvíli zpět domů. Ať již za účelem monitoringu, když nikdo není doma, nebo jen tak pro zábavu – třeba se z dlouhé služební cesty proběhnout po bytě s malou Zuzkou. Podmínkou bylo, aby byl kdykoliv k dispozici a vzhledově se posunul z fáze naprostého prototypu do trochu slušivějšího kabátku, který by nedělal ostudu.

O pohon se starají původní modelářská serva upravená pro kontinuální chod. Úpravu jsem ještě dále vylepšil a potenciometr v servech konečně vyměnil za přesné rezistory. Potenciometry měly velmi lehký chod a hrozilo, že se vlivem vibrací budou jejich jezdce posouvat a servům se tak bude stále měnit nulový bod - tedy hodnota PWM signálu, při které je servo nehybné.

Na obrázku níže je rozebrané jedno ze serv už s rezistory místo potenciometru. Ten je vymontovaný v pozadí spolu s převodovkou. Serva se jako pohon osvědčila - mají velký kroutící moment a lze velmi jemně regulovat jejich rychlost. Robot tak dokáže jak velmi pomalé a jemné manévry, tak rychlé přesuny z jednoho konce bytu na druhý. 

O napájení robota se stará USB Power Banka TeckNet® iEP390 9000mAh, která je ukrytá pod falešným dnem interiéru robota. Ta má dva USB výstupy, 2.1A pro "silnoproudý okruh" (serva pohonu a naklápění kamery) a 1A pro "slaboproud" (Raspberry). Při kapacitě 9000mAh (při započetní ztrát na výstupních obvodech reálně cca 7000 mAh) dokáže robota bez nabíjení napájet až čtrnáct hodin stojícího nebo zhruba pět hodin kontinuálně jedoucího. Navíc jako jedna z mála umožňuje bez výpadků tzv. pass-through charging, tedy napájení připojených zařízení, zatím co se sama nabíjí.

Šasi robota je vyrobené z pětivrstvého papírového kartonu. Může se to zdát úsměvné, ale s papírem se perfektně pracuje i když doma nemáte špičkově vybavenou dílnu a navíc je všude dostupný. Stačí na něj jen narýsovat základní rozměry, ostrým skalpelem vyřezat a slepit tavnou pistolí. Pokud výrobek následně zatřete několika vrstvami disperzního lepidla, dostanete pevnost, která si ničím nezadá se dřevem. Dále se dá běžně kitovat, brousit a lakovat.

Hardware robota je postaven na populárním mini počítači Raspberry Pi 2 Model B, na kterém běží Linux, konkrétně OS Raspbian. Raspberry má k sobě připojený kamerový modul do speciálního konektoru s přístupem rovnou ke grafické kartě a USB WiFi dongle  Edimax EW-7811Un, pomocí kterého komunikuje s okolním světem. Dále je k Raspberry přes univerzální GPIO piny připojen teplotní senzor DS18B20, odporový dělič pro detekci nabíjecího napětí, spínací MOSFET tranzistor pro ovládání světla a samozřejmě všechna čtyři serva pro pohon a jedno mikro-servo pro naklápění kamery. Řízení serv se obešlo i bez specializovaného PWM modulu a je realizováno přímo přes GPIO piny pomocí knihovny Servoblaster.

Zapojení veškerého hardware je realizováno přes univerzální tištěný spoj. Není to tak profesionální, jako tištěný spoj vyrobený na míru, ale je to dobrý kompromis mezi spolehlivostí celého zapojení, rychlostí realizace a možností dalšího rozšíření. Na tuto desku je přes distanční sloupky upevněné i samotné Raspberry a je s ní propojeno jen několika málo drátky z GPIO pinů. Cílem bylo celé zapojení robota udržet v rozumné míře přehledné a spolehlivé.

Nabíjení robota zajišťuje dokovací stanice, která je velmi kompaktní. Jedná se o kartonovou desku se stejnou povrchovou úpravou jako samotný MiMoBot. Ke zdi se fixuje samotným USB adaptérem, zastrčeným skrze tuto desku do elektrické zásuvky. Výstupní napětí 5V je pak přes pojistku zapojeno na kvalitní měděnou samolepicí fólii. Ta tvoří protikus k dokovacímu konektoru na čelní straně robota (ano, je to skutečně pružinka z propisky s měděnými konci).

Obě části, jak proužky fólie, tak nabíjecí konektor, mají stejnou výšku od podlahy. Tato forma dokovací stanice zaručuje, že při přibližování robota ke stanici musí obsluha ovládat prakticky jen dva stupně volnosti - samotnou vzdálenost robota od stanice a úhel přiblížení, což je velice snadný manévr.

V praxi to vypadá tak, že "se prostě natlačíte čumákem na zeď" a robot se nabíjí. Při nabíjení je robot otočen úmyslně čelem ke zdi a poskytuje tak všem členům domácnosti přiměřenou míru pocitu soukromí v okamžicích, kdy není používán.

Kamera robota je naklápěcí okolo horizontální osy pomocí pátého modelářského mikro-serva. Jedná se o upravený kamerový modul k Raspberry Pi. Ten má běžně objektiv s poměrně velkou ohniskovou vzdáleností, což není vhodné např. do stísněných prostor bytu. Z vyhořelé akční kamerky Mobius jsem tedy demontoval objektiv i celý lens-mount a vyměnil ho za objektiv na originálním modulu. Nyní má kamera úhlopříčné zorné pole zhruba 170° oproti původní 90°. Vzhledem k širokému úhlu záběru není otáčení kamery kolem vertikální osy prakticky nutné a v nouzi je proveditelné otočením celého robota.

Osvětlení zajišťuje výkonný LED panel se svítivostí zhruba 100 lm. Robot tak může monitorovat prostor i v naprosté tmě a světlo s rezervou postačuje na prosvícení celé místnosti průměrného bytu. Na zadní straně robota je pak umístěn klasický kolébkový vypínač. Ten robota v případě potřeby zcela odpojí od akumulátoru.

Software robota je řešen formou webových stránek. K jejich vývoji jsem nepoužil žádný hotový framework. Robot pracuje jako web-server a sám hostuje stránky, které uživateli zasílají video-stream z kamery a umožňují mu robota řídit a monitorovat. Video stream je zasílám pomocí služby Rpi-Web-Cam-Interface a vykazuje velmi malou latenci.

Uživatel má dále k dispozici informaci o teplotě okolí z teplotního čidla, teplotě jádra procesoru, kvalitě WiFi signálu, době celkového běhu robota a nebo třeba stavu nabíjení. Celé stránky jsou postavené na HTML, Javascriptu a PHP. Robota tedy lze ovládat z jakéhokoliv zařízení s prohlížečem (Android, iOS, Windows, Linux). 

Zajímavostí je proporcionální dotekové ovládání pohybu robota pomocí virtuálního joysticku. Ten byl původně určen pro hry na mobilní zařízení, ale pro ovládání robota je ideální. Je rovněž napsán v Javascriptu a s jeho integrací do stránek tedy nebyl žádný problém.

Virtuální joystick funguje tak, že uživatel může prstem nebo myší kliknout a držet kdekoliv na obrazovce. V tomto bodě obrazovky se zobrazí dvojitý modrý kruh, což je základna joysticku. Jakmile uživatel táhne prstem nebo myší pryč od této základy, táhne s sebou další modrý kroužek. Vzdálenost mezi základnou (dvojitým kruhem) a aktuální polohou joysticky (jednoduchý kruh) určuje rychlost pohybu, směr je pak daný vektorem mezi těmito body. Je tak možné s robotem provádět i velmi jemné pohyby a manévry, otáčet se na místě, couvat nebo plynule zatáčet za jízdy. Minimální rychlost jsou jednotky milimetrů za sekundu, maximální rychlost zhruba třicet centimetrů za sekundu.

Nápadů, co by mohl robot dělat dále je spousta, ale času je málo: měření úrovně nabití akumulátorů a vizualizace pro uživatele, automatické navádění na dokovací stanici nebo třeba ovládání domácího robotického vysavače Roomba přes IR rozhraní z MiMoBota (takové ovládání robota robotem). Tak co říkáte, chtělo by to crowdfunding nebo spíše nějakého "továrního" sponzora? :c)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>