Dnes se podíváme mBotovi na jeho modrý zoubek. Vlastně na dva modré zoubky. MBot totiž umí komunikovat ve formátu bluetooth (blue tooth = modrý zub). Formát bluetooth byl pro zajímavost společností Ericsson pojmenován po dánském králi Haraldu Modrozubovi, jakožto hold jeho mimořádným diplomatickým schopnostem (bluetooth měl podobně diplomaticky sjednotit různé formáty). Komunikační formát bluetooth umožňuje mBotovi fungovat v hejnu (což ocení zejména tam, kde se mBot používá skupinově). Bluetooth umí také komunikaci na větší vzdálenost, což se také může hodit.
Technologie bluetooth umožňuje mBotovi, oproti komunikaci prostřednictvím IR ovladače o kterém jsme se bavili minulou kapitolu, řadu funkcionalit navíc. Především umožňuje párovou komunikaci mezi ovladačem a mBotem. Výsledkem je, že po spárování ovladače a mBota je ovladačem ovládán právě jen spárovaný robůtek a nic jiného. S využitím technologie bluetooth může mBot komunikovat třeba i s mobilem, tabletem, nebo počítačem (pomocí bluetooth adaptéru). Tento článek je primárně o bluetooth gamepad ovladači, tudíž se budu zabývat především použitím bluetooth ovladače.
MBot používá bluetooth podporující verzi 4.0+, což umožňuje bezproblémovou komunikaci s prostředím s verzí Androidu 2.3 a vyšší i applí ioS7 a vyšší. Nepodporuje iPad1, 2 ani iPhone4 a nižší.
Emisní výkon je 4dBm, což umožňuje bezproblémovou komunikaci na 20m. Běžně je ovšem možné komunikovat i na vyšší vzdálenost. Pro mBota nebývá problémem ani komunikace přes zeď.
Příprava ovladače a párování
Před použitím bluetooth ovladače je do něj nutné vložit dvě 1,5V baterie. Ovladač má minimální spotřebu, tudíž můžete vložit i jednorázové baterie.
Aby mohl mBot komunikovat s bluetooth ovladačem, je třeba jej spárovat. Před párováním je třeba, aby byl zapnutý jak mBot, tak bluetooth ovladač. Stiskneme a podržíme (dokud nezačne modrá kontrolka poblikávat) prostřední tlačítko se stylizovanou runou „B“ uprostřed. Dokud kontrolka poblikává probíhá proces párování. Počkejte dokud kontrolka nezačne trvale svítit. Pak by mělo být párování ukončeno a ovladač by měl ovládat mBota podle vámi vytvořeného programu.
Programy využívající bluetooth ovladač
Začneme tvorbou jednoduchého testovacího programu. Všechny programy jsou ke stažení na konci článku, nebo si je můžete vytvořit podle následující grafiky.
Účelem tohoto programu je demonstrovat naprogramovanou reakci mBota na stisk tlačítka „1“ na bluetooth ovladači (samozřejmě spárovaném). MBot pomocí nekonečné smyčky neustále „naslouchá“ jestli není stisknuté nějaké tlačítko bluetooth ovladače. V případě, že není stisknuté tlačítko „1“ svítí mBot červenou LED na hřbetě. V případě, že došlo ke stisku tlačítka „1“ rozsvítí zelenou LED.
Tento program je ovšem velmi triviální. Bluetooth ovladač pro mBota se typicky používá zejména pro řízení pohybu robůtka, který můžeme doplnit o nějaké sofistikovanější aktivity typu vysílání zvukových a světelných signálů a podobně. Pro tento účel můžeme postupovat dvěma cestami. Buď využijeme tlačítka a naprogramujeme reakce přímo na stisk určitých tlačítek, nebo využijeme páčkové joysticky.
Program na obrázku, pomocí kterého je možné bluetooth ovladačem řídit pohyb mBota, funguje následujícím způsobem. Pomocí tlačítek 1-4 je možné nastavit čtyři různé rychlosti pohybu. Směr pohybu je určován stiskem konců křížového tlačítka. Pokud není ani jedna volba křížového tlačítka aktivována mBot stojí na místě.
Rád bych upozornil na dva postupy, které jsou v programu použity. Prvým z nich je užití proměnné. Proměnná je vlastně kousek paměti, který označíme (v našem případě rychlost/speed) a vložíme do něj hodnotu, kterou může dál program používat aktuálně podle potřeby. Proměnnou si můžeme v programu mBlock 3 definovat v sekci „Data a Bloky“. Pro vytvoření stačí zvolit v této sekci volbu „Vytvoř proměnnou“ a zadat její jméno. Poté se v sekci „Data a Bloky“ vytvoří systémové bločky, pomocí kterých můžeme v programu dál pracovat s proměnnými (typické je nastavování počáteční hodnoty proměnné a její změny).
Dalším postupem, který jsem využil v programu a na který bych vás rád upozornil, je vkládání podmínkových příkazů, kterými určujeme směry jízdy do sebe. Vytvoříme tím podmínkový příkaz, který má více možností jak reagovat na více vstupních podmínek (v našem případě je podmínkový příkaz aktivován čtyřmi různými akcemi (stiskem konců křížového tlačítka ovladače), přičemž je na každou variantu stisku naprogramována odlišná reakce – křížovým tlačítkem můžeme určovat čtyři různé typy pohybu mBota, ale vždy právě jen jeden typ pohybu). A nesmíme zapomenout, že je zohledněna i varianta, kdy není stisknutá žádná volba a mBot stojí na místě a nedělá nic.
Další program je také určený pro ovládání rychlosti a směru pohybu mBota. Tentokrát vůbec nepoužíváme k nastavení rychlosti proměnné a navíc jsme jí schopni relativně plynule měnit. Také podmínkový příkaz je o dost jednodušší, než v předchozím případě, i když ani zde jsem se nevyhnul něčemu novému. Novinku naleznete v konstrukci podmínky v podmínkovém příkazu. Spočívá v použití logického operátoru s příkazem „nebo“ (je to ten zelený widget do kterého jsou zasazeny jednoduché operátory s nerovností). Umožňuje mi zkonstruovat podmínku, která zohledňuje dva různé parametry najednou.
Blok, který se odkazuje na páčkové joysticky bluetooth ovladače modrý bloček s kulatými stranami „Bluetooth controller joystick“ nastavitelný na čtyři varianty (LX, RX, LY a RY). Systém uspořádání by vám mohl být jasnější z doprovodného obrázku. Písmena L (left – levý) a R (right – pravý) označují umístění ovladače a druhé písmeno X. nebo Y zase osu ve které se musí ovladač pohybovat, aby byla hodnota měněna. Hodnoty obou parametrů X i Y mají hodnoty ve škále od -255 do 255, přičemž hodnota páčky v neutrální středové poloze má hodnotu +/- 0. Díky tomu, že vracená hodnota páčkových ovladačů nabývá různých velikostí, můžeme vyhodnocovat i úhel ve kterém je páčka vychýlená a různě na tuto skutečnost navázat chytře i konstrukci programu. V případě našeho programu jsem nastavil aktivaci podmínky až poli hodnot -255 – -80 nebo 80 – 255. Účelem bylo snížit chybovost při pohybu joystickem v poli hodnot blízkých nule.
Tip: Moji kluci vypozorovali, že mBot ovládaný bluetooth ovladačem pouze tlačítky je spolehlivější, ale neumožňuje rychlé změny rychlosti a směru pohybu. Tyto nedostatky zase padají pokud ovládáte mBota joysticky. Nezkusíte si vymyslet vlastní způsob ovládání?
Bluetooth u mBota netradičně
Poprosil jsem jednoho ze svých zdatnějších kutilů – robotiků o naprogramování mBota jako hudební nástroj ovládaný bluetooth ovladačem. Vytvořil kouzelně jednoduchý prográmek pomocí kterého se mu z mBota podařilo vyloudit velmi zajímavé, téměř až hudební zvuky.
A protože je Ondra velkým fanouškem Star Treku inspiroval se samozřejmě hudebním nástrojem zvaným Theremin, na který hrál pan Spock. Tento hudební nástroj je bezkontaktní a je ovládán dvěma vstupy, což je stejné u verze „Thereminu“, kterou vytvořil Ondra Čech.
Prográmek je velmi jednoduchý. Všechny příkazy jsou „zabalené“ v nekonečné smyčce, takže neustále cyklují. Prvé dva příkazy umožňují postupně vychýlením páčkových ovladačů zahrát dva tóny po sobě (páčky se vychylují v ose X). Oba tóny se hrají po dobu 100 milisekund. Hodnota výchylky páčky se sečte s hodnotou 300 (tak aby se generovala frekvence vždy kladné hodnoty o výšce, která je pro lidské ucho komfortně poslouchatelná). Obdobně jsou vyřešeny i zbylé dva příkazy umožňující světelný doprovod zvukových tónů.
mBot programy ke stažení
Ovládání mbota z bluetooth ovladače pomocí tlačítek