Android Open Accessory - vyrobte si vlastní hardware!

Google na letošní vývojářské konferenci Google I/O 2011 (konala se 10.-11. května v San Franciscu) představil velmi zajímavou novinku týkající se možnosti vývoje hardware. Telefony a tablety podporující rozhraní Android Open Accessory (které bylo implementováno v operačním systému Honeycomb 3.1+ a zpětně doplněno do části Gingerbread 2.3.4+) nyní mohou využít svůj USB konektor pro připojení dalšího hardware, který tento standard podporuje.
Open-source hardware
Takový hardware si přitom může vyvinout prakticky kdokoliv, jeho základ totiž může tvořit dobře známá open-source platforma Arduino, tedy základní deska s jednočipovým mikropočítačem. Open Accessory k tomu navíc přidává podporu režimu USB host (hostitel), která zajistí, že se k zařízení může bez problému připojit i telefon, který sám možností USB host neoplývá. Vše navíc funguje zcela automaticky. Při prvním připojení nového hardware se telefon s Androidem automaticky přepne do tzv. accessory módu, přečte si, o jaký hardware se jedná, a nabídne uživateli stažení obslužné aplikace, pokud ještě na telefonu není. Pokud už aplikace nainstalovaná je, připojení zařízení přes USB vždy způsobí její automatické spuštění a uživatel se nemusí o nic starat.
Možnosti využití
Jistě vás hned napadne spousta možností, jaký hardware byste mohli ke svému Androidu připojit. Od různých měřících a zdravotních pomůcek (krokoměr, tlakoměr, výstup z posilovacích strojů), přes hračky a modely (dálkově nebo přímo ovládaná autíčka, letadla, UAV), různé zobrazovače (notifikační displej na stůl, HUD projektor v autě, hudební ekvalizér) až po kompletní ovládání domácnosti (spouštění a přepínání elektrospotřebičů, ovládání osvětlení, vytápění, oken, žaluzií), na kterém už ostatně Google pracuje ve specifikaci Android@Home. Některé z příkladů si můžete prohlédnout na tomto videozáznamu z letošního Google I/O:
Pokud vás zajímá programátorská stránka Open Accessory, můžete zhlédnout celou přednášku:
ADK neboli vývojářský kit
Aby Google vývojářům usnadnil život, vytvořil pro ně tzv. development kit, zkráceně ADK (Android Open Accessory Development Kit).

Ten obsahuje základní desku Arduino typu Mega2560 s integrovaným USB host „shieldem“ (přídavnou deskou) dle designu Circuits@Home.

Pro lepší demonstraci možností je doplněn o demoshield Googlu, který obsahuje jak ovládací prvky (citlivý joystick, mikrospínače) a snímače (teplotní a světelný senzor), tak výstupy (LEDky s plynulým nastavením barev, relé pro spínání dalších připojených obvodů). Součástí SDK je potom aplikace Demokit, která funguje na Android OS 3.1+ nebo 2.3.4.+ a naplno ukazuje možnosti ADK a demoshieldu, viz následující video (na konci je pak použit projekt s LED displejem, který jsme dělali s kolegou Janem Schejbalem):
V balíčku ADK kitu jsou pak ještě k dispozici 2 servomotorky a napájecí adaptér (k napájení ale postačí i USB nebo baterie), a nezbytný USB-microUSB datový kabel.
Soutěž Open Call pro Google Developer Day
V rámci propagace nového Open Accessory vyhlásil Google soutěž pro vývojáře, ve které rozdal pro každou zemi pořádající Google Developer Day až 10 ADK kitů. V České republice se do druhého kola dostalo celkem 8 projektů, z nichž 5 bylo nakonec realizováno a představeno na GDD, kde si je mohli návštěvníci vlastnoručně vyzkoušet. Tyto projekty si podrobně ukážeme v navazujícím článku o tomto víkendu, zůstaňte naladěni :)
