Mega ADK a TinkerKit

Nedávno jsem narazil na přednášku pana Massimo Banzi, který stojí za vývojem Arduina. V této přednášce byla zmínka o vývojové desce Android ADK, která je založena na Arduinu a má sloužit pro vývoj příslušenství k mobilům s Androidem. Jelikož se o Android a jeho chytré telefony nijak zvlášť nezajímám, nepátral jsem co to je, ani k čemu by to mohlo být dobré.

Vývojová deska Android ADK založená na Arduinu. (Zdroj: makezine.com)
Vývojová deska Android ADK založená na Arduinu. (Zdroj: makezine.com)

Včera jsem ale na oficiálním blogu Arduina našel video, ve kterém pan Banzi představil Arduino na konferenci Android Open 2011 a zároveň ukázal dvě novinky z jejich dílny. A tehdy si ADK získalo moji pozornost.

Pokud ovládáte angličtinu, zde je zmíněné video:

V první části je stručně představeno Arduino a některé jeho vlastnosti, takže nic nového. Od sedmé minuty ale začíná být přednáška zajímavější. Banzi představuje TinkerKit a prototyp desky Arduino Mega ADK.

Tinker Kit

Prvně jmenovaný výrobek je pokus, jak udělat Arduino ještě jednodušší. V podstatě je to shield s několika konektory ke kterému je možné dokoupit serva, LED, relátka a nejrůznější senzory nachystané tak, aby se jednoduše připojily pomocí kabelu. Uživatel tak nemusí vůbec nic pájet, ani řešit schémata. Zapojí kabely, napíše program a vše funguje.

Arduino a Tinker Kit. Jednoduchý způsob jak si pohrát s elektronikou. (Zdroj: Arduino.cc)
Arduino a Tinker Kit. Jednoduchý způsob jak si pohrát s elektronikou. (Zdroj: Arduino.cc)

Sám jsem o něčem podobném před nedávnem přemýšlel. Arduino tým to vyřešil za mě :)

Arduino Mega ADK

Druhý jmenovaný výrobek se jmenuje Arduino Mega ADK. Z názvu je jednoduché odvodit, že se jedná o Arduino Mega s mikrokontrolérem ATMega 2560. Oproti standardnímu Mega se dokáže hlásit jako USB host, takže s ním lze řídit komunikaci na sběrnici USB. A proč se jmenuje ADK? Protože celá deska byla navržena tak, aby fungovala jako Accessory Development Kit pro Android zařízení.

Někdy v květnu tohoto roku představil Google na konferenci Google I/O 2011 nové API pro operační systém Android 3.1 (a také 2.3.4), které umožňuje obousměrnou komunikaci s USB host zařízením. Zde je video z přednášky, kde bylo toto API představeno:

Nejdříve se ve videu představí API pro komunikaci s periferiemi, kdy Android zařízení vystupuje jako USB host. Díky tomu můžete k zařízení s Android 3.1 připojit třeba klávesnici a myš a vše funguje jak má. Toto je ale možné jenom pro zařízení, které podporují USB host režim. Většina dnes dostupných mobilních telefonů ale tento režim nepodporuje a umí pracovat pouze jako USB device.

To byl důvod pro vznik druhého API, které se připojí k periferii jako device, zatímco periferie vystupuje jako host a řídí komunikaci. Zvrácené, postavené na hlavu, ale funguje to :) Dokonce je to z pohledu Android zařízení tak jednoduché, že stačí vytvořit spojení s periferií, přečíst základní informace a můžete číst a posílat data stejně, jako byste četli a zapisovali do souboru.

A právě proto vzniklo Arduino Mega ADK, které se umí na USB sběrnici chovat jako host. Díky tomu můžete s Arduinem vytvářet periferie, které umí komunikovat s Android zařízením.

Hezká hračka. Myslím si ale, že největší problém bude na straně uživatelů. Kdo je dneska zvyklý připojovat k mobilnímu telefonu periferii přes kabel? Aby se takové periferie ujaly, myslím že bude potřeba toto spojení vytvořit bezdrátové, což v dnešní době dost dobře zajistí Bluetooth.

Jak jsem řekl na začátku — o Androidí svět jsem se nikdy nezajímal, ale toto mně zaujalo. Možná, že v konzumní elektronice si to užití nenajde (pouze můj názor), ale bastlíři a kutilové dostali užitečnou hračku. Takový osciloskop s Android tabletem zní dobře.