Open Accessory

Android tar över dina prylar

Vi förklarar Googles nya teknik för tillbehör.

Publicerad Senast uppdaterad

Googles senaste giv till utvecklarna gör det enklare att konstruera smarta tillbehör. Nyheterna i Androidsystemet öppnar för vanliga usb-tillbehör som spelkontroller och digitalkameror, men också för spännande hemmabyggen. Iphone har länge haft ett försprång när det gäller utbudet av tillbehör, speciellt när det gäller sladdbundna prylar för mobilen. Årets upplaga av den stora utvecklarkonferensen Google i/o ägnade en hel del tid åt hur Android kan bli mer konkurrenskraftigt på tillbehörssidan. Apples framgångsrecept har varit kvalitetsstämpeln »Made for Iphone«. Precis som när det gäller appar för Iphone måste både tillverkaren och produkten bli godkänd av Apple, tryggt för köparen, men ett rejält etableringshinder för mindre tillverkare. För att tillbehöret ska kunna interagera med olika funktioner i mobilen måste det dessutom innehålla ett speciellt chip som talar om för mobilen att det är ett godkänt tillbehör. »Made for Iphone«-konceptet har blivit populärt bland etablerade märken, främst tillverkare av hörlurar och andra musiktillbehör- Licenskostnaderna och kraven på speciella chip stänger dessvärre effektivt dörren för många mindre företag samt för experimenterande studenter och hemmafixare.

Google har valt en helt annan strategi än Apple när det gäller tillbehör. Från och med nästa stora version av operativsystemet, Ice Cream Sandwich, kommer alla Androidenheter att innehålla en helt ny uppsättning funktioner för tillbehör och Google har redan släppt dokumentation över det mesta man kan behöva veta om tekniken. Standarden heter Open Accessory och gör det möjligt att koppla alla tänkbara typer av prylar via mobilens usb-kontakt. För att tekniken ska fungera med dagens enheter har Google gjort det möjligt att installera Open Accessory även i version 2.3.4 eller 3.1 av systemet, så det går fint att börja utveckla tillbehör redan idag i väntan på att standarden rullas ut på bred front.

Musik i fullformat.

Nya funktioner i Android

Open Accessory består av två delar: en mjukvara med nya funktioner i Androidsystemet och en hårdvara som mobilen kan känna igen och koppla upp sig mot utan att det krävs inställningar eller annan imatning från användaren. De flesta tillbehör som finns idag har antingen väldigt simpel funktion, som en laddare eller ett par hörlurar, eller så måste det kopplas till mobilen via antingen bluetooth eller wlan. Det kräver att man letar upp och installerar rätt app, väljer rätt inställningar och matar in olika pinkoder eller ip-adresser innan man kan komma igång. Med Open Accessory räcker det med att plugga in tillbehöret i mobilen. Precis som en dator ofta kan hitta och ladda ner rätt drivrutiner när man kopplar in ett nytt usb-tillbehör så kommer Androidmobiler med Open Accessory att kunna starta rätt app, om den finns installerad, eller guida användaren till appar på Android Market som fungerar med tillbehöret.

Motorstyrd labyrint.

Via usb-porten kan tillbehöret kommunicera blixtsnabbt med apparna i mobilen. Wlan och bluetooth ger också möjlighet till effektiv kommunikation för både stora och små datamängder, men en viktig skillnad är att fördröjningarna blir avsevärt mindre via sladd än trådlöst. Spelkontroller, robotteknik och olika typer av sportsensorer är exempel på tillbehör som kan dra nytta av snabbare respons från mobilen. Google demonstrerade tekniken på i/o-konferensen genom att styra en motoriserad version av det klassiska labyrintspelet med en rullande kula via mobilens lägessensorer.

Kan verka avskräckande

Avancerade funktioner som snabb kommunikation och automatisk start av rätt app låter bra ur ett användarperspektiv, men vad krävs för att komma igång med utvecklingen av smarta tillbehör? Vissa hinder finns naturligtvis kvar, för att kunna skapa en app behöver man programmeringskunskaper och känna till grunderna i utvecklingsmiljön för Android. Att konstruera själva tillbehöret, med alla funktioner för kommunikation via usb, kan verka riktigt avskräckande, men här har Google valt en intressant lösning som sänker trösklarna rejält genom att ha öppen källkod även för hårdvaran. De exempel som Google visade upp på i/o-konferensen var byggda på Arduinoplattformen, en så kallad mikrokontroller som är förhållandevis billig att köpa och som har många anhängare inom hobby, utbildning och småskalig elektroniktillverkning. Totalpriset för prylarna som krävs för att komma igång med Open Accessory, bortsett från en dator och en Androidmobil, är cirka 500 kr. På Googles webbplats hittar du sedan all exempelkod som krävs för att få liv i de olika delarna och testa funktionerna.

En Arduino är på många sätt en komplett dator. Du kan enkelt koppla till sensorer som tryckknappar, termometrar och rörelsedetektorer, tända och släcka lampor eller styra större saker via reläer eller servon. En viktig egenskap hos Arduino är att kortet kan laddas med programkod som rullar vidare även när mobilen inte är inkopplad. Möjligheterna är många. Google visade upp en motionscykel som antingen kunde fungera som en vanlig gymmaskin, eller ge träningen en extra dimension genom att styra ett spel i mobilen. Ett annat användningsområde är smarta hem, justera inställningarna för inbrottslarmet eller kontrollera hur värmepumpen mår samtidigt som mobilen laddas. Eller att starta brödrosten och övriga köksmaskiner i lagom tid för frukost, givetvis synkat med väckarklockan i mobilen. Arduinokortet håller igång logiken med de grundläggande funktionerna och med mobilen inkopplad får du ett bättre gränssnitt och öppnar möjligheter som att ladda upp data över internet, justera inställningar i realtid eller hämta ny firmware.

Så kopplar du Arduino till mobilen

1. Uppdatera mobilen till Android 2.3.4. Om du har en Nexus One eller Nexus S kan du uppdatera över internet som vanligt. För andra mobiler är man tyvärr hänvisad till att vänta på att tillverkaren levererar en uppdatering eller till att använda en inofficiell firmware.

2. Koppla samman Arduinokortet med ett USB Host Shield. Google har en egen variant komplett med komponenter som gör det enkelt att testa möjligheterna med  Open Accessory, men även andra märken fungerar. Anslutningarna på Arduinokortet består av hylslister, så om du köpt ett USB Host Shield med tomma kretskortshål för anslutningarna är det enklast att först ta fram lödkolven och montera stiftlister i hålen. Passande stiftlister som går att bryta till rätt antal poler kostar bara några kronor och finns hos elektronikleverantörer som Elfa eller Electrokit.

3. Vissa versioner av USB Host Shield behöver byglas, två punkter på kretskortet kortsluts med lödtenn, för att ge lagom mycket ström till mobilen via USB-kontakten. Om mobilen inte får tillräckligt mycket ström aktiveras inte tillbehörsläget, så här kan man behöva göra justeringar.

4. Ladda mobil och Arduinokort med testappar för  Open Accessory. Om du inte använder Googles eget USB Host Shield behöver du använda en justerad programkod för Arduinokortet. Koden hittar du här: bit.ly/mvVcRl

5. Koppla mobilen till USB Host Shield med en vanlig usb-sladd.

Arduino

Tillbehören behöver en egen processor som sköter kommunikationen med mobilen. Google har byggt sin utvecklingsmiljö för smarta tillbehör på Arduinokortet, en enkel, men komplett dator med många olika typer av anslutningar. I likhet med Android är Arduino byggd på öppen källkod. Både utvecklingsmiljön och alla ritningar till hårdvaran finns att hämta på nätet, så man kan välja mellan att köpa färdiga kort eller att bygga allt själv. Arduinokortet har seriella kommunikationsportar och både analoga och digitala in- och utgångar. Det gör att man enkelt kan koppla kortet till alla vanliga styr- och mätkomponenter, eller till mer avancerade tillbehör som nätverkskort eller skrivare. De flesta Arduinotillbehör är byggda som så kallade Shields, kretskort som enkelt staplas ovanpå Arduinokortet. För att koppla Arduino till mobilen används ett sådant USB Host Shield-tillbehörskort.

Arduinokortet finns i flera olika varianter, stora kort med extra många in- och utgångar för komplexa byggen eller minivarianter som passar där utrymmet är begränsat. Den populäraste och billigaste varianten heter Arduino Uno. Den större varianten, som Google använder i sina exempel heter Arduino Mega 2560, men båda modellerna går lika bra att använda för att skapa Androidtillbehör, skillnaderna finns i mängden minne och antalet in- och utgångar.

IOIO

Open Accessory kräver minst version 2.3.4 eller 3.1 av Androidsystemet. Om du vill bygga ett tillbehör som fungerar med befintliga mobiler, utan att behöva skapa en egen firmware, så finns det en genväg. IOIO-kortet från Sparkfun använder usb-felsökningsläget för att kommunicera med Android, så de flesta mobiler med version 1.5 eller senare går att använda. Till skillnad från Arduinobaserade tillbehör så fungerar IOIO-kortet inte på egen hand, det bara omvandlar olika elektriska anslutningar till en usb-kontakt som du kan koppla till mobilen. Utvecklingen blir enklare eftersom det räcker med att skriva programkod för mobilen, men det går inte att bygga riktigt lika avancerade prylar som med ett Arduinokort. IOIO har 48 olika in- och utgångar och kostar 500 kr.

Android@home

Nästa steg i utvecklingen av smarta tillbehör till Android är den trådlösa Android@home-tekniken. Enligt Google ska den göra det möjligt att styra allt från musikanläggningar till belysning via ett så kallat mesh-nätverk på 900 MHz-bandet. Till skillnad från wlan eller bluetooth ska nätverket konfigurera sig automatiskt genom att enheterna tar kontakt med varandra. De första produkterna med stöd för Android@home sägs dyka upp under fjärde kvartalet.

Kom igång med egna tillbehörsbyggen

Här är programvarorna och prylarna du behöver:

  • Utvecklingsmiljö för Androidappar, SDK med API för  Open Accessory: gratis att ladda ned från accessories.android.com
  • Utvecklingsmiljö för Arduino: gratis att ladda ned från www.arduino.cc
  • Arduinokort: Uno eller Mega: från 260 kr
  • USB Host Shield: cirka 250 kr
  • En liten verktygslåda. Lödkolv, multimeter och en handfull billiga komponenter som kopplingstråd, tryckknappar och lysdioder är bra att ha till hands.

Arduinokort Uno

Processor: ATmega328 16 MHz, Drivspänning: 7–12 V

Lagringsminne: 32 Kbyte, Digitala in- och utgångar: 14 st

Analoga ingångar: 6 st, Analoga utgångar: 6 st (PWM)

Pris: 260 kr

Arduinokort Mega 2560

Processor: ATmega 2560 16 MHz

Drivspänning: 7–12 V

Lagringsminne: 256 Kbyte

Digitala in- och utgångar: 54 st

Analoga ingångar: 16 st

Analoga utgångar: 14 st (PWM)

Pris: 650 kr

Fyra spännande byggen

Det har bara gått några veckor sedan experimenterandet med Open Accessory började på allvar, men på webben finns redan många intressanta projekt, såväl från Google som från hobbykonstruktörer.

Motorstyrd labyrint

Google använde det klassiska labyrintspelet för att visa att Open Accessory ger tillräckligt snabb respons för spel. Missa inte videoklippet med jätteversionen av spelet på youtu.be/Ub7newiu930

Musik i fullformat

De gamla hålremsorna har fått ge plats för Android i det här självspelande pianot, appen i plattan styr klaviaturen via en Arduino med MIDI-shield. youtu.be/GHQjRjJYc-Q

Målsökning

Med två servomotorer kopplade till mobilen kan man bygga ett kamerastativ som automatiskt hittar motivet. youtu.be/ujV4vfNWd_w