Mobilen gör det enkelt och roligt att bygga egna elektronikprylar. Skärm, uppkoppling och lagring – sådant som är dyrt och krångligt att fixa själv – klarar mobilen galant. Du slipper uppfinna hjulet på nytt och kan fokusera på din idé. Vi visar hur du kommer igång med att koppla egen elektronik till Androidmobilen – och vad som krävs för att skriva apparna som styr det hela.
Googles egen Open Accessory-standard kräver att du har minst Android 2.3.4 i din telefon. Det är svårt att hitta en mobil med så färsk version under skalet, åtminstone om du håller dig till officiella uppdateringar, men IOIO gör det möjligt att köra igång direkt med i stort sett vilken Androidlur som helst.
Innan du kan börja använda IOIO krävs några förberedelser. Kortet behöver en extern strömkälla för att fungera och via IOIO kan du driva många typer av komponenter i ditt bygge samtidigt som mobilen laddas. En nätdel eller ett batteri som levererar 12 volt och minst 1 ampere fungerar perfekt, men kortet sväljer allt från 5 till 15 volt så det finns många olika typer av batterier och strömkällor som passar.
Annons
Koppla strömkällan till kortet genom att löda fast sladdar eller kontakter i hålen märkta Vin för pluspolen och GND för minus. Ett tips är att du monterar hylslister i alla lediga hål på kortet – då kan du enkelt göra anslutningar utan att behöva löda varje gång. När du sedan slår på strömmen tänds en röd lysdiod på kortet.
Annons
Även mobilen kräver några förberedelser. IOIO använder Androids felsökningsläge för att kommunicera via usb och det aktiveras via Inställningar, Program och Utveckling. Kryssa i rutan för USB-felsökning.
Mobilen kräver ström på usb-kontakten för att koppla upp sig mot IOIO-kortet. Det hänger ihop med hur usb-standarden fungerar. IOIO-kortet har en liten skruv märkt chg som gör det möjligt att justera strömmen som går till mobilen. Om du använder batterier för ditt bygge kan det vara smart att dra ned strömmen – mobilen får visserligen inte så mycket laddning, men ditt batteri räcker längre.
För att justera strömmen – ta fram en liten skruvmejsel och vrid skruven moturs så långt det går. Koppla in mobilen med en usb-sladd och slå på strömmen till IOIO-kortet. Vrid nu skruven långsamt medurs tills mobilen reagerar och usb-symbolen syns i meddelandefältet. Nu har du hittat nivån som din mobil kräver för att koppla upp sig mot kortet. Nivån varierar mellan olika modeller, så om du byter mobil måste du göra om intrimningen. Matar du kortet med ett en nätdel kan du vrida skruven så långt det går medurs – då ska det fungera med alla mobiler utan problem.
Klart för test
Nu är kortet och mobilen klara för ett första test. Från tillverkaren kan du hämta appen HelloIOIO.
Packa upp zip-filen och kopiera filen HelloIOIO.apk från bin-katalogen till mobilen. Enklast är att skicka den via bluetooth – då kan du direkt välja att installera appen. HelloIOIO är en väldigt simpel app – den visar bara en enda knapp på skärmen. Knappen låter dig tända och släcka en statuslysdiod på IOIO-kortet – och därmed säkra att kortet fungerar med din mobil.
För att kunna använda IOIO-kortet till något mer användbart behöver vi naturligtvis komplettera det med fler elektriska komponenter, men också med egna appar. Programmen som krävs för att skriva Androidappar är gratis. Tre olika delar behövs för en komplett utvecklingsmiljö:
Java Platform Development Kit (JDK): www.oracle.com – klicka på Java for developers i rutan Top Downloads
Börja med att installera JDK från Oracle. JDK håller sig i bakgrunden och förser de andra delarna med javafunktioner. JDK har ett helt vanligt installationsprogram, så det går snabbt och enkelt att få in i datorn.
Nästa steg är Android SDK. När installationen är klar kan du välja pusselbitar för olika Androidversioner och tillverkare. Du behöver inte ladda ned alla delar direkt, utan kan fylla på efter hand med de som behövs. Kom ihåg i vilken mapp du installerade Android SDK – den uppgiften behöver du om en stund.
Eclipse hanterar dina källkoder och app-projekt. Eclipse har inget installationsprogram – allt du behöver göra är att packa upp hela zip-filen till en mapp – till exempel Mina Dokument/Eclipse. Starta sedan genom att dubbelklicka på eclipse.exe och välj vilken mapp som ska vara din Workspace – den mapp där alla filer med kod för apparna sparas.
Innan du kan börja arbeta med filerna som hör till IOIO behöver du anpassa Eclipse för Android. Det gör du genom att installera Android Development Tools (ADT Plugin). Klicka på Help och Install new software.
Tryck på Add och skriv ADT Plugin i rutan Name och mata in adressen https://dl-ssl.google.com/android/eclipse/ i rutan Location. Tryck OK, kryssa för Developer Tools, tryck Next och vänta några sekunder medan Eclipse laddar ned och installerar tillägget.
När installationen är klar – välj Windows, Preferences och markera Android. Markera mappen där du installerade Android SDK och tryck OK. Testa att trycka på Androidsymbolen i verktygsfältet på Eclipse. Om allt fungerar öppnas verktyget för att ladda ned och uppdatera utvecklarpaketen för Android.
Om du stöter på problem med installationen har Google en bra och utförlig guide som tar upp de flesta fallgroparna för Windows, Mac och Linux. Adressen är developer.android.com/sdk/installing.html
Koda appar
Nu är det dags att öppna och ändra i koden för HelloIOIO-appen så att den gör något roligare. Vi testade att använda IOIO för att ge lite mer effekt till en funktion som finns i många appar och mobiler – att blinka morsesignaler. Men i stället för att använda fotolampan låter vi mobilen styra en 35-watts halogenspotlight. För att öppna koden krävs två filer – HelloIOIO.zip och IOIOlib.zip från sparkfun.com/tutorials/280.
Via länken hittar du en instruktion för hur man importerar filerna till Eclipse, men snabbversionen är att man packar upp zip-filerna till Workspace-mappen och laddar in dem genom att välja File, Import och alternativet Existing
Projects into workspace.
Med största sannolikhet kommer du att se röda kryss och frågetecken intill filerna som dyker upp i vänsterkolumnen. För att få dem att försvinna markerar du HelloIOIO, väljer Project, Properties, klickar på Android och kopplar ihop HelloIOIO med IOIOlib genom att trycka på Add intill Library och markera IOIOlib.
Klicka sedan på Java Compiler och välj 1.6 i rullgardinen Compiler Compliance level.
Första steget för att kunna styra något annat än lysdioden på kortet är att leta upp adressen för utgången som appen slår av och på. Expandera trädet för HelloIOIO i vänsterkolumnen och leta upp MainActivity.java under src.
Dubbelklicka för att redigera koden och bläddra till rad 54.
Där hittar vi följande:
led_ = ioio_.openDigitalOutput(0, true);
Lägg märke till värdena inom parentes. Nollan anger vilken utgång på kortet vi ska använda och true anger att den ska vara aktiv från start. 0 är adressen till lysdioden på kortet, men vi vill ha en utgång som går att använda för vår spotlight. Ändrar vi till exempelvis 38 och false så aktiverar appen i stället utgången märkt med 38 på IOIO-kortet.
För att föra över vår modifierade app till mobilen är det enklast att ansluta till datorn med usb-sladd. Då räcker det med att spara projektet i Eclipse och klicka på Run (playknappen i verktygsfältet). Då startas den uppdaterade appen i mobilen och du behöver bara byta sladd från datorn till IOIO-kortet för att provköra.
Tyvärr räcker inte de 20 mA som utgångarna på IOIO-kortet levererar för att driva lampan. Vi behöver mer kraft – närmare bestämt 150 gånger mer. Det finns flera olika sätt att styra en tung last från en klen utgång. Vi fastnade för ett litet kort (Kemo B197) med transistor och ett relä. Transistorn på kortet behöver bara 5 mA för att aktivera reläet som i sin tur klarar att styra upp till 3 A – perfekt för vår spotlight.
Ingången på reläkortet kopplas direkt till utgång nr 38 och anslutningarna märkta + och - går till samma strömkälla som matar IOIO. Nu är bygget klart för en första test. Med den modifierade appen leder ett tryck på skärmen till ett klickljud från reläkontakterna – ett ljud som talar om att vi kan gå vidare och koppla in lampan. Reläkontakterna kopplas in som en vanlig strömbrytare mellan strömkällan och lampan – och nu kan vi styra den starka lampan direkt från mobilen. Lite pyssel återstår dock innan vi kan använda bygget för att blinka morsesignaler, närmare bestämt behövs programkod i appen som genererar de korta och långa blinkningarna. En bit ner i källkoden finns denna rad:
sleep(10);
Instruktionen sleep får mobilen att vänta i så många millisekunder som står inom parentes och raden ingår i en loop, så den upprepas så länge appen är aktiv. Vi byter ut raden mot:
led_.write(true);
sleep(450);
led_.write(false);
sleep(150);
Det får appen att först aktivera utgången, vänta, stänga av utgången, vänta och till sist upprepa från början. Det går att fylla på nästan hur många rader som helst med kommandon till utgången och pauser beroende på vilket morsemeddelande du vill skicka. Innan du testar appen – ta bort raden som lyder:
led_.write(!button_.isChecked());
Det krävs för att det inte ska uppstå en konflikt mellan knappen på skärmen och instruktionerna i loopen. Testa appen – lampan blinkar nu enligt instruktionerna i appen. Vi har nu klarat ett första enkelt bygge – en Androidstyrd blinkfyr som syns många kilometer en klar natt.
Att slå av och på prylar är bara en av alla uppgifter som IOIO behärskar. I faktarutan finns exempel på fler funktioner och på nätet kan du hitta många tips på roliga byggen med mobilen i centrum.
Mer om IOIO:
Funktionerna på IOIO-kortet
OIO har 48 olika in- och utgångar med olika funktioner:
Digitala ingångar. Testa om en strömbrytare är i läget till eller från. Exempel på byggen: egna spelkontroller, larmsensorer, tidtagning med fotoceller mm. Upp till 48 st.
Digitala utgångar. Ger en spänning på antingen 0 eller 3,3 volt på vald utgång. Exempel på byggen: styrning av lampor, lysdioder, segmentdisplayer, motorer, reläer mm. Statuslysdioden på IOIO-kortet fungerar som en digital utgång med nummer 0. Utgångarna tål upp till 20 mA och vissa går att använda som så kallad Open Drain för att styra saker som behöver 5 volt. Upp till 48 st.
Analoga ingångar. Fungerar som en voltmeter och mäter spänningar mellan 0 och 3,3 volt med en precision på 3 mV. Andra spänningar går att mäta genom olika kombinationer av förstärkare och resistorer. Exempel på byggen: sensorer för temperatur, lufttryck, magnetfält, ljud, ljus, luftfuktighet mm. Upp till 16 st.
Pulsbreddsmodulerade utgångar. En typ av analog utgång som ger olika nivåer genom att snabbt växla mellan på och av och variera pulsernas längd i förhållande till pauserna. Exempel på byggen: dimmer för lysdiodsbelysningar, styrning av servon och motorer mm. Upp till 9 st.
Pulsmätare. Mäta frekvens och längd på elektriska pulser. Exempel på byggen: sensorer för flöden och förbrukningar, tidtagning med hög precision mm. Upp till 6 st.
Seriella in- och utgångar. Koppla in avancerade sensorer, kommunikationsmoduler mm via UART-, SPI-, I2C- eller TWI-standard. Exempel på byggen: koppling till Zigbee- eller RS485-nät, externa skärmar och displayer mm. Upp till 4 st.