Android ADK – lodówka sterowana Androidem?

3 minuty czytania
Komentarze

adk_main
Dzisiaj przedstawimy mało jeszcze znaną ciekawostkę deweloperską, która pojawiła się na tegorocznym Google I/O. Mowa o Android Open Accessory Development Kit (ADK).

Czym jest ADK? W skrócie: jest to zbiór sterowników (urządzeń, które mogą sterować innymi urządzeniami) oraz specjalne API (interfejs, zbiór reguł i metod komunikacji) dzięki którym będziemy mogli – za pomocą aplikacji na Androida – nawiązać dwukierunkowe połączenie z praktycznie dowolnym urządzeniem poprzez port USB!

„Genialne!” – zakrzyknie kilka osób, ale bardzo możliwe, że większość z nas nie widzi w tym większego sensu. Po co miałbym podłączać lodówkę do mojego telefonu? Zapraszam do lektury.

adk_intro
Historię o ADK zacznijmy od projektu Open Hardware i stycznej do niego platformy Arduino.

Open Hardware to projekt analogiczny do bardziej popularnego FLOSS (Free Libre/Open Source Software) – oznacza to, że do nowo tworzonego urządzenia publikowana jest pełna jego specyfikacja techniczna oraz kod źródłowy oprogramowania. Według jego założeń każdy mógł skorzystać z gotowego (zbudowanego i zaprogramowanego) układu/urządzenia oraz wprowadzić do niego dowolne modyfikacje – zarówno sprzętowe jak i programowe.

Ciekawostką jest fakt, że projekt Open Hardware zapoczątkowała firma IBM, co miałoogromny wpływ na rozwój dzisiejszych komputerów (zainteresowanych odsyłam do Wikipedii).
adk_mega

Arduino to faktyczna realizacja filozofii Open Hardware. Składa się ze standaryzowanej specyfikacji technicznej płytki drukowanej – zgodnie z założeniem, bardzo łatwo można ją rozbudować, dokładając tzw. shieldy – oraz języka programowania i biblioteki dla budowanych na bazie tej płytki urządzeń.

Dzięki temu otrzymujemy bardzo proste narzędzie do tworzenia dowolnych urządzeń, które mogą być albo samodzielnymi układami, albo (co bardziej interesujące) urządzeniami „akcesoriami”, które podłączamy do „hosta” – w tym przypadku urządzenia z Androidem.


adk_hs

Na bazie powyższych Google stworzyło właśnie ADK. Oto elementy, które wchodzą w jego skład:

  • główna płyta ADK z mikrokontrolerem USB, zbudowana na bazie układu Arduino Mega2560 – będzie to serce naszego potencjalnego akcesorium i to do niego bezpośrednio podłączany będzie telefon z Androidem. Urządzenie programujemy w języku C++, nadając mu funkcjonalność oraz odpowiednie zachowania i reakcje na sygnały z telefonu;
  • Android Demo Shield (shield ADK) – moduł zawierający kilka najważniejszych sterowników wejścia-wyjścia: joystick, diody LED, czujnik światła i temperatury;
  • biblioteka bazująca na Arduino USB Host Shield, która steruje komunikacją (dokładniej nawiązywaniem „transakcji USB”) między mikrokontrolerem USB a telefonem z Androidem;
  • „Adruino sketch”, przykładowe oprogramowanie na ADK napisane w C++, inicjujące połączenie akcesorium z telefonem z Androidem oraz transportującym dane z akcesorium do telefonu;
  • biblioteka protokołu komunikacji z akcesoriami, czyli zbiór funkcji definiujących takie zadania, jak nawiązywanie i utrzymanie połączenia,

…oraz wiele innych urządzeń i bibliotek firm trzecich – spis wszystkich dostępny jest pod adresem http://developer.android.com/guide/topics/usb/adk.html

adk_example

Ideą projektu jest sprawienie, aby nasz telefon był centrum dowodzenia naszego osobistego świata elektronicznego. Jego wykorzystanie jest ograniczone jedynie naszymi umiejętnościami i wyobraźnią. Sterowanie bramą wjazdową, telewizorem, mikrofalówką, pralką, klimatyzacją, informacje zwrotne na temat zużycia prądu i wody w domu, temperatura, tworzenie statystyk i wykresów – wszystko to zmierza do jeszcze większej wygody i ułatwień w życiu codziennym.

Ale nie tylko to! ADK z powodzeniem można wykorzystać w takich dziedzinach życia, jak rozrywka, dieta, trening czy zdrowie. Świetnym tego przykładem była prezentacja ADK podczas Google I/O, od której wszystko się zaczęło (start od 36. minuty):

Obecnie istnieją dwie biblioteki API: natywna, dla Androida 3.1, oraz port dla wersji 2.3.4 – na urządzeniach z tymi systemami aplikacje współpracujące z ADK będą działać.

Możliwości, jakie daje ADK są niesamowite, jednocześnie nie wymagają specjalistycznej wiedzy oraz ich implementacja jest bardzo prosta. Z niecierpliwością oczekujemy na pierwsze projekty!

A Wy, jakie macie pomysły na wykorzystanie możliwości, jakie daje ADK?

adk_end 

 

Motyw