Examensarbete 15 högskolepoäng, grundnivå

Storlek: px
Starta visningen från sidan:

Download "Examensarbete 15 högskolepoäng, grundnivå"

Transkript

1 Området för teknik och samhälle Examensarbete 15 högskolepoäng, grundnivå Projekt Regnbåge Project Rainbow Carl-Philip Olsson Henrik Andersson Examen: Högskoleingenjörsexamen i datateknik, 180hp Datum för slutseminarium: Examninator: Handledare: Gion Koch Ange Svedberg handledare Handledare: Jonas Forsberg

2 Abstract In this thesis we further develop an existing prototype. The prototype is an interactive art project where two plates with water nozzles in the middle are placed at each end of an arc. These two plates can be controlled directly with a joystick. The plates are following the motion of the joystick using servo motors. Our main goal is to allow spectators of the art project to remotely control the plates and the water flow by using their own mobile phone. Our goal has been achieved by creating an Android application that the user can download and install directly on their mobile phone. The application automatically sends information about the angular position of the phone to a server. Then the server forwards this information to a Wifi-module connected to an Arduino board which is moving the servo motors, attached to the plates, in the correct position. This thesis describes the technique used within the project and also illustrates how the design and functionality of the prototype has been changed to make a more striking impression on the audience. Keywords: Accelerometer, Android, Application, Arduino, Communication, Mobile phone, Servo motors, Server, Wireless, Wifi.

3 Sammanfattning Det här examensarbetet bygger vidare på en tidigare konstruerad prototyp, ett interaktivt konstprojekt där två plattor, placerade på en båge, med vattenmunstycken i mitten styrs med en joystick. Plattorna följer joystickens rörelse med hjälp av servomotorer. Målet i detta examensarbete var att koppla åskådarens smarta mobiltelefon till konstprojektet. Åskådaren ska kunna styra konstprojektet genom att vinkla sin mobiltelefon. Även vattenflödet ska kunna kontrolleras och all interaktion ska ske via trådlös kommunikation. Målet har uppnåtts genom att användaren installerar en applikation som skapats för operativsystemet Android. Applikationen skickar information om mobiltelefonens aktuella vinkelposition till en server via ett trådlöst nätverk. Servern skickar i sin tur vidare denna information till en Wifi-modul kopplad på ett arduinokort som ställer in plattornas servomotorer i rätt läge. Rapporten beskriver hur tekniken för att nå målet fungerar och illustrerar även hur prototypens design och funktionalitet har förändrats för att få ett mer effektfullt intryck. Nyckelord: Accelerometer, Android, Applikation, Arduino, Kommunikation, Mobiltelefon, Servomotor, Server, Trådlös, Wifi.

4 Innehåll 1. Introduktion Bakgrund Syfte Systemöversikt Översikt över andras arbeten Metod Android Applikationsutveckling för Android Accelerometer Server Arduino Wifi-modulen Servomotorer Spänningskälla Genomförande Utveckling av vår applikation till Android Behandling av accelerometerdata Uppkoppling och sändning av data Nedladdning av applikationen Serverns uppbyggnad Utveckling av arduinokortets programvara Ventiler Nätaggregat Design Belysning Vattenflöde Test av systemet Resultat och diskussion Slutsats Referenser Bildreferens Appendix A Appendix B... 39

5 Appendix C Appendix D Appendix E Appendix F Appendix G Appendix H Appendix I... 62

6 Lista över figurer Figur 1. Systemöversikt över tidigare arbete Figur 2. Systemöversikt Figur 3. Androidarkitekturens större delar. [101]... 4 Figur 4. Livscykeln för en aktivitet. [102]... 5 Figur 5. Accelerometern kan ge värden i tre riktningar. [103]... 6 Figur 6. Arkitektur för ett TCP/IP-paket. [109]... 7 Figur 7. Arkitektur för ett UDP-segment. [110]... 8 Figur 8. Arduinos IDE med en exempelskiss från standardbiblioteket Figur 9. Arduino Mega ADK. [104]... 9 Figur 10. Wifi-modulen. [105] Figur 11. Exempel på några pulsbreddsmodulerade signaler för att uppnå tre vinklar. [106] Figur 12. Graupner Servo DES 708 BB, MG. [107] Figur 13. Nätaggregat från en stationär dator Figur 14. Aktivitetens användargränssnitt Figur 15. Ikonen för vår applikation Figur 16. Utdrag ur manifestfilen Figur 17. Ett försök att ansluta till servern görs Figur 18. Metoden heartbeat Figur 19. Enheten är ansluten till servern Figur 20. Anslutningen till servern misslyckades Figur 21. Metoden sendpositions som skickar data till servern Figur 22. QR-tagg för att komma direkt till applikationen Figur 23. Socket för UDP överföringen skapas och Wifi-modulens IP-adress sparas Figur 24. Utdrag från metoden newconnection Figur 25. Datainnehållet i ett TCP-paket från en androidenhet Figur 26. Värdets förhållande i de två intervallen Figur 27. Metoden som skapar och skickar datagram Figur 28. Datainnehållet i utgående UDP-paket Figur 29. Källkod för att styra vänster platta från Arduinokortet Figur 30. Kod för att öppna respektive sluta vattenventilerna Figur 31. 2/2-vägselektromagnetventil, VDW21-5G-3-01F-Q. [108] Figur 32. Kretskoppling för ventiler Figur 33. Ventilkretsen på ett prototypkort Figur 34. Laborationskontakter fästa på nätaggregatet Figur 35. Nätaggregat med monterad apparatlåda Figur 36. Arduinokortet med WiFly-modulen och ventilkoppling, monterade i apparatlådan Figur 37. D-subminatyrs hankontakt som ska kopplas in i honkontakten på apparatlådan Figur 38. Bågen i tidigare röd design Figur 39. Bågen i vitt plexiglas med lock och botten Figur 40. LED-slingan och dess fjärrkontroll Figur 41. Belysning i vitt, rött, grönt och blått Figur 42. Munstycke som skapar vattenstrålen Figur 43. Vattnet leds genom ventilerna Figur 44. Monter för testdagen

7 Lista över tabeller Tabell 1. Egenskaper för TCP och UDP protokollen [18] Tabell 2. Lista över komponenter och deras matningsbehov Tabell 3. Lista över anslutningar hos nätaggregatet

8 1. Introduktion Att mobiltelefonen har en stor betydelse i dagens samhälle är ingen nyhet. Ett bevis på detta är en undersökning [1] om tekniska prylar där man visar att sju av tio svenskar skulle ha svårt att klara sig utan mobiltelefonen. Många har en ständig uppkoppling mot internet och andra enheter. Eftersom de flesta bär med sig mobiltelefonen var de än är och alltid är nåbara blir mobiltelefonen nästan som en del av kroppen. Så som vår kropp kan känna av exempelvis ljusförändringar eller hur vår hand är vinklad har också många av dagens mobiltelefoner, så kallade smartphones, olika sensorer för att känna av samma saker. I det här examensarbetet beskrivs hur man genom att vinkla sin mobiltelefon trådlöst kan styra servomotorer och elektromagnetiska ventiler. Den praktiska delen i detta arbete är en interaktiv konstinstallation. Konstinstallationen är tänkt att illustrera sambandet mellan dagens mobilteknik och samhälle. Mobiltelefonen kopplar upp sig mot konstinstallationen och låter man telefonen ligga i handflatan så är det handens rörelse som kontrollerar plattornas läge precis som om de vore en del av ens egen kropp. Det finns många praktiska tillämpningar baserade på den tekniska lösningen som beskrivs och diskuteras i rapporten, se kapitel Bakgrund Höstterminen 2011 arbetade Martina Marti och Lorenz Rordorf från Schweiz med sitt examensarbete vid Malmö Högskola [21]. Examensarbetet handlade om att göra ett interaktivt konstprojekt där åskådaren själv kunde ta del av och skapa de visuella effekterna. De två studenterna designade och tillverkade en båge i röd plexiglas med en platta i vardera änden vilken kan vinklas med hjälp av två servomotorer på vardera platta. En vattenpump pumpar vatten genom en slang till munstycken på plattorna vilka ger en vattenstråle som kan vinklas och skapa olika intressanta mönster. Den ursprungliga tanken var att åskådarna själva skulle kunna styra konstinstallationen med hjälp av sin mobiltelefon. Då deras arbete handlade om att konstruera den mekaniska delen av projektet så lämnades detta till utveckling för framtiden. Konstinstallationen styrdes med hjälp av en joystick som satt på ett Arduino Mega ADK (Android Development Kit) kort (se Figur 1). Figur 1. Systemöversikt över tidigare arbete. 1

9 1.2 Syfte Syftet med det här examensarbetet är att vidareutveckla det tidigare examensarbetet. Tanken med slutprodukten är att användaren ska kunna installera en applikation på sin mobiltelefon som gör det möjligt att styra konstverket trådlöst genom att vinkla telefonen åt olika håll. Den vinkel mobiltelefonen befinner sig i ska efterliknas av bågens plattor. Även vattenflödet genom plattorna ska kunna styras genom applikationen. Problemet som ska lösas består av följande delar (se även förstudien i Appendix A): Hårdvara: hur kan Arduino användas tillsammans med trådlös kommunikation och hur kan strömförsörjningen för de olika komponenterna ske med en gemensam spänningskälla? Server: vilka överföringsprotokoll är lämpligast att använda för kommunikationen mellan mobiltelefon och server samt mellan server och Arduino? På vilket sätt behöver inkommande information bearbetas innan den skickas vidare? Android: hur gör man för att utveckla en androidapplikation? Vilket utseende ska applikationen ha och hur kan kommunikationen skötas? Design: vad kan förändras för att ge ett mer effektfullt intryck? Vad behövs för att skapa ett interaktivt vattenflöde? Kan flera användare styra konstprojektet samtidigt? Då det finns stora möjligheter att vidareutveckla projektet är det tänkt att rapporten ska kunna ligga till grund för fortsatt utveckling. 1.3 Systemöversikt För att göra det möjligt för användaren att interagera med konstprojektet har en applikation utvecklats för operativsystemet Android. Applikationen hämtar accelerometerdata från användarens mobiltelefon och skickar dessa tillsammans med värdet för vattenflödet, vidare till en server. Detta kommer att ske genom en trådlös kommunikation mellan användarens mobiltelefon och en server över Wifi. Servern skickar sedan vidare dessa data till en Wifi-modul som sitter på ett arduinokort (se Figur 2). Arduinokortet ställer in servomotorerna i den position som skickats från användarens mobiltelefon. På så vis kan användaren genom att vinkla sin mobiltelefon bestämma plattornas läge och via ett enkelt knapptryck på telefonen sätta på eller stänga av vattenflödet. Figur 2. Systemöversikt. Som figur 2 illustrerar kan i nuläget enbart en användare åt gången interagera med konstprojektet. Om konstprojektet redan används får personen som försöker ansluta sig ett meddelande om att systemet inte är tillgängligt (läs mer i kapitel 3.1). 2

10 1.4 Översikt över andras arbeten Det finns en del tidigare arbeten som behandlar tre stora problemområden i vårt projekt. Hur man kan använda en Wifi-modul till ett arduinokort, kommunikation i Android samt hur en servomotor styrs trådlöst. Med hjälp av dessa arbeten fick vi en större inblick i problematiken som vårt projekt innefattar och exempel på hur dessa kan lösas. Följande arbeten har varit till hjälp: Ett övervakningssystem där en mobiltelefon med operativsystemet Android kan koppla upp sig mot en server för att hämta sensordata och video från en webbkamera [5]. Implementering av en http server och klient på en WiFly RN-131 modul från Roving Network s för att kunna hämta sensordata trådlöst [13]. En väderstation som använder Arduino tillsammans med en Wifi-modul (WiFly-shield) för att samla in väderdata och komma åt denna genom att trådlöst koppla upp sig mot Wifimodulen [24]. Arduino som tillsammans med en Wifi-modul (WiFly-shield) trådlöst styr servomotorer genom en windowsapplikation [22]. 3

11 2. Metod För att lösa problemet började vi med att ta fram en problemformulering och systemöversikt. När problemet var formulerat fortsatte vi med en förstudie för att strukturera och avgränsa problemet (se förstudie Appendix A). Vi bröt ner huvudproblemet i mindre delproblem för att på så sätt få en klarare bild över vilka delproblem som projektet har och göra det enklare att hitta relevant information och bearbeta var problem för sig. Under förstudien sökte vi litteraturen som skulle kunna vara till hjälp för att lösa de olika delproblemen. Vi specificerade också kraven för systemet och gjorde en detaljplanering. Rapporten är tänkt att kunna användas som grund för att fortsätta med utvecklingen av projektet och beskriver därför vissa delar mer detaljerat. 2.1 Android Android är ett operativsystem utvecklat för mobila apparater med pekskärm. Många av dagens mobiltelefoner och surfplattor använder Android. Det är ett Linuxbaserat operativsystem som utvecklas av OHA (Open Handset Alliance) vilket leds av Google och består av 84 olika företag med inriktning mot teknik- och mobilbranschen. Eftersom Google släppt Android som öppen källkod kan vem som helst ladda ner och göra egna modifieringar i operativsystemets källkod [2] i motsats till Apple ios 1. Antalet enheter med Android ökar snabbt. Enligt Andy Rubin, Senior Vice President of Mobile at Google och en av grundarna till Android, aktiveras över androidenheter varje dag (februari 2012) [3]. Det är fritt fram för vem som helst att utveckla och sälja egna applikationer, även kallat appar. Enligt Google fanns det i april 2012 över applikationer och spel att ladda ner på Google Play som är portalen man använder för att hämta androidapplikationer [4]. För att utveckla applikationer för Android behöver man Android SDK (Software Development Kit) vilket innehåller verktyg och APIer (Application Programming Interface) för utveckling i programmeringsspråket Java. Jämfört med andra liknande operativsystem har Android många fördelar så som öppenhet, behandlar applikationer lika, inga gränser mellan applikationer samt möjlighet till snabb och enkel applikationsutveckling. Dessa fördelar kan härledas från androidsystemets arkitektur [5]. Figur 3. Androidarkitekturens större delar. [101] 1 ios är Apples motsvarighet till Android. 4

12 Androidarkitekturens större beståndsdelar är (se Figur 3): Applications, de applikationer som finns i operativsystemet. T.ex. e-postklient och kalender. Application framework, ramverket för att utvecklare enkelt ska kunna använda sig av enhetens hårdvara. Libraries, vissa komponenter använder C/C++ bibliotek men funktionerna som utvecklare kan använda visas genom ovan nämnda applikationsramverk. Android runtime, för att få tillgång till den mesta funktionaliteten från kärnbiblioteken i Java samt Dalvik virtual machine vilken kör applikationerna på androidenheten. Linux kernel, Android bygger på Linux version 2.6 för de grundläggande tjänsterna så som t.ex. säkerhet och minneshantering [6] Applikationsutveckling för Android För utvecklingen av applikationen valde vi att använda oss av Eclipse IDE 2 (Integrated Development Environment) tillsammans med två stycken insticksprogram 3, JDT (Java Development Tools) med utvecklingsverktyg för Java samt ADT (Android Development Tools). ADT integrerar bland annat androidverktyg i Eclipse för att användaren snabbt och enkelt ska kunna skapa, bygga, packa, installera och felsöka sina androidprojekt. Det viktigaste är installationen av Android SDK som nämnts i föregående kapitel. Eftersom ovan nämnda insticksprogram fanns till Eclipse, samt att vi är vana att arbeta med det sedan tidigare, var inte valet av IDE svårt. Activities, services, content providers och broadcast receivers är de fyra komponenter som en applikation kan bestå av. Aktiviteten (Activity) kommer senare att användas i applikationen och beskrivs därför mer ingående. Det finns tre tillstånd som en aktivitet kan befinna sig i: Återupptagen: aktiviteten har användarens fokus och är synlig på skärmen. Pausad: aktiviteten har förlorat fokus på skärmen. Stoppad: för användaren ser det ut som aktiviteten har avslutats. När en aktivitet befinner sig i tillstånden pausad eller stoppad ligger den fortfarande sparad i enhetens minne för att 2 Ett program för att utveckla programvara. Figur 4. Livscykeln för en aktivitet. [102] 3 Insticksprogram körs som en del av ett annat program. 5

13 snabbt kunna återupptas men om systemet behöver det minne som aktiviteten tar upp så avslutas den. En aktivitets livscykel består av ett antal metoder som anropas automatiskt vid olika skeden efter att applikationen startats (se Figur 4). Dessa generiska metoder är alltid implementerade men det räcker att anpassa de man kommer att använda sig av. De tre metoder som senare kommer att anpassas är oncreate, onresume samt onpause. oncreate anropas när aktiviteten startas och det är här alla statiska inställningar görs. onresume anropas precis innan användaren kan interagera med aktiviteten. onpause anropas när aktiviteten inte längre kommer att vara i fokus. Det bör inte vara mycket kod som ska köras då detta kan fördröja tiden innan en annan aktivitet kan ta över fokus [8]. Vissa funktioner måste godkännas av användaren för att applikationen ska kunna använda dessa. Exempel på sådana funktioner är: använda kameran, tillgång till Bluetooth eller att använda Wifi. Funktioner som kräver användarens tillstånd måste anges i en manifestfil. Användaren godkänner att applikationen använder dessa funktioner i samband med nedladdningen från Google Play. Förutom att ange de funktioner som kräver användarens tillåtelse i manifestfilen kan den även innefatta saker som aktivitetens sökväg, namn på applikationen, vilka versioner av Android som är kompatibla, ikon och vilken orientering det ska vara på skärmen. Det krävs att varje applikation har en manifestfil och att denna ligger i rotkatalogen [6] Accelerometer En accelerometer är en sensortyp som kan mäta hastighetsförändring och känna av vilket läge den befinner sig i. Den använder tyngdkraften till sin hjälp att beräkna detta. Accelerometern i androidenheter ger värden i tre riktningar (se Figur 5). Dessa värden beräknas genom förhållandet:, där Eh är accelerationen enheten utsätts för, m/s 2 är storleken på gravitationskraften, F är kraften sensorn utsätts för och m är dess massa [20]. Figur 5. Accelerometern kan ge värden i tre riktningar. [103] 6

14 2.2 Server Precis som androidapplikationen bygger även servern på programmeringsspråket Java. Kommunikationen mellan androidenhet och server sköts med TCP (Transmission Control Protocol)- protokoll, vilket gör det enklare att hantera inkommande anslutningsförfrågningar på servern och när anslutningen till en användare väl är etablerad är pålitligheten hög. Ett TCP-segment består av en huvud (header) som har en storlek på 20 bytes, som sedan inkapslas i ett IP-datagram. IPdatagrammet innehåller informationen som behövs för att överföra paketet till rätt destination. I TCP-huvudet finns information om hur paketet ska behandlas och vilka regler som ska följas vid sändning och mottagning. Data som ska skickas från en androidenhet till servern läggs in under TCPsegmentets datafält (se figur 6) [25]. Figur 6. Arkitektur för ett TCP/IP-paket. [109] Datatransmissionen mellan en androidenhet och servern görs via TCP-sockets som är strömbaserade. Där blir inkapslingsprocedur, sändning och mottagning av data automatiserad i en ström. UDP (User Datagram Protocol)-protokoll används för kommunikationen mellan server och arduinokortet. Eftersom gammal parameterdata inte är aktuell att få återsänd utan enbart det senast sända paketet är relevant så passar UDP utmärkt som kommunikationsprotokoll mellan servern och arduinokortet. Till skillnad från en TCP-socket har en UDP-socket ingen anslutning och kan därför inte vara strömbaserad utan är istället baserad på datagram. Data både läggs i och läses ur utifrån datagram [9]. UDP-segmentet består av ett UDP-huvud som är inkapslat i ett IP-datagram. Till skillnad från TCPhuvudet är storleken på UDP-huvudet endast 8 bytes då den saknar funktioner som till exempel sekvens- och bekräftelsenummer (se figur 7). 7

15 Figur 7. Arkitektur för ett UDP-segment. [110] Med ett UDP-protokoll får man ingen garanti att paketen mottagits i rätt ordning och den stödjer ingen avancerad felhantering eller återsändning av förlorade eller korrupta paket [17]. Allt detta stödjer TCP-protokollet men detta medför att transmissionshastigheten minskar (se Tabell 1). TCP UDP Pålitlighet: Garanterar att paketen tas emot i samma ordning som de skickades. Sändaren tar emot en bekräftelse Garanterar inte att paketen mottags i rätt ordning, eller över huvud taget. efter varje mottaget paket. Flödeskontroll: Har flödeskontroll, kräver tre paket Saknar flödeskontroll. för att etablera en socketanslutning innan data kan skickas. Användningsområde: Applikationer som kräver pålitlig Applikationer som kräver dataöverföring. hög transmissionshastighet. Header-storlek: 20 bytes. 8 bytes. Felkontroll: Ja. Nej. Paketsändning: Delar upp paketen i mindre paket Skickar paketen var för sig. om så krävs och skickar dem efter en specificerad ordning. Hastighet: Hög. Väldigt hög. Tabell 1. Egenskaper för TCP och UDP protokollen [18]. 2.3 Arduino Arduino är en open-source plattform för elektronikprototyper. Plattformen består av två huvuddelar: arduinokorten (hårdvara) och Arduinos IDE. Med hjälp av Arduinos IDE skriver man programmet som ska köras på arduinokortet och enheterna som är kopplade till det [10]. Detta kallas för skiss (se Figur 8). Skissen skriver man på ett programmeringsspråk som är en blandning mellan C och C++. När skissen ska programmeras in på arduinokortet genomgår den en smärre förändring, som kontrollerar koden, och förs sedan till en C/C++ -kompilator. Här förändras koden till maskinkodsinstruktioner. 8

16 Därefter länkas koden till arduinobiblioteken som innehåller en del standardfunktioner. Slutresultatet blir en enda fil som ska överföras till arduinokortets programminne via USB kontakt [11]. Figur 8. Arduinos IDE med en exempelskiss från standardbiblioteket. Arduinos plattform är tänkt att användas av designers, artister, hobbyister och alla som är intresserade av att skapa ett interaktivt objekt eller miljö. Fördelarna med Arduino är att kretskorten är billigare och lättare att använda än andra mikroprocessorplattformar. Utvecklingsverktyget är även plattformsoberoende och ger en enkel programmeringsmiljö. Det finns många olika typer av arduinokort men det som passade detta projekt bäst var Arduino Mega ADK (se Figur 9). Kortet har ett USB-gränssnitt som är kompatibelt med androidenheter vilket passade utmärkt för vårt ändamål. Detta gjorde att en androidenhet kunde anslutas till kortet och vi kunde då börja laborera med accelerometervärden redan under förstudien. Kortet har dessutom 54 digitala in/utgångar varav 14 kan användas som PWM 4 (Pulse Width Modulation)-utgångar, 16 analoga ingångar och 4 UART (Universal Asynchronous Receiver/Transmitter) 5 [12]. För fullständiga specifikationer se Appendix F. Figur 9. Arduino Mega ADK. [104] 4 PWM är en teknik för att reglera och styra elektroniska komponenter 5 UART är en komponent som omvandlar data mellan parallella och seriella former 9

17 2.3.1 Wifi-modulen Eftersom Arduino Mega ADK inte stödjer trådlös kommunikation som standard så måste en modul för detta implementeras. Det finns olika alternativ för att skapa en trådlös kommunikation som skulle kunna tillämpas. Exempel på dessa är Bluetooth, IR (Infraröd Strålning), Xbee och Wifi. För att Xbee ska fungera krävs det att både servern och arduinokortet är utrustade med en Xbee-modul. IR uteslöts då ett krav är fri sikt mellan sändare och mottagare eftersom det är infrarött ljus som används. Bluetooth valdes också bort eftersom vi ville ha möjligheten att ha servern på en annan plats än konstprojektet. Kvar fanns möjligheten att använda Wifi för kommunikation. Eftersom mobiltelefonen kommer att använda sig av Wifi-uppkoppling till servern så valde vi att utnyttja samma teknik genom hela projektet. Wifi passade även utmärkt på grund av att ingen modifiering av serverns hårdvara krävs. Efter en del sökande hittades en smidig tilläggsmodul som kan lösa problemet (se Figur 10). Modulen möjliggör uppkoppling mot ett 2.4Ghz b/g-nätverk, som är en WLAN standard, och på så sätt göra kommunikationen mellan servern och arduinokortet trådlös. WiFly som modulen heter, bygger på en trådlös Roving Network's RN-131G modul (specifikationer se Appendix G) och ett SC16IS750 SPI (Serial Peripheral Interface Bus) 6 till UART(Universal Asynchronous Receiver/Transmitter) chip. En SPI till UART brygga används för att öka transmissionshastigheten och för att frigöra arduinokortets egna UART. RN-131G-modulen stödjer även SDIO (Source Digital Input Output) 7, RFID (Radio Frequency Identification) 8 och tillhandahåller tio programmerbara in/utgångar samt åtta analoga sensorgränssnitt. Modulen har en inbyggd keramisk chippantenn med möjlighet att ansluta en extern antenn [13]. Figur 10. Wifi-modulen. [105] Strömförsörjningen av Wifi-modulen sker från utgången märkt Vin från Arduino Mega ADK, den är reglerad till 3.3V och försörjer både RN-131G-modulen och SC16IS750 chippet. Kommunikationen mellan modulen och arduinokortet sker över SPI på de digitala utgångarna (MISO, MISO, SCK, SS) [14]. Modulen innehåller även en liten prototyparea med 0.1 tums hål där man kan göra egna kopplingar eller fästa diverse komponenter [15]. För att konfigurera Wifi-modulen kopplar man upp sig med ett terminalprogram, t.ex. Terra Term, via USB-kontakten till arduinokortet. Standardinställningarna för att få kontakt seriellt är 9600 bitars hastighet, 8 bitars data, ingen paritet, 1 stoppbit och att flödeskontrollen är avstängd. Man kan även koppla upp sig via telnet 9 över Wifi för att konfigurera modulen. Det senare alternativet kräver dock att man redan konfigurerat Wifi-modulen och har kontakt med den. 6 SPI är en synkron seriell datalänksstandard som arbetar i full duplex 7 SDIO tillåter kortplatsen för SD-kort att användas för ett annat ändamål 8 RFID är en teknik som möjliggör att information kan läsas på avstånd från transpondrar och minnen som kallas för taggar 9 Telnet är ett nätverksprotokoll avsedd för textbaserad kommunikation. 10

18 När anslutningen är upprättad skriver man tre tecken, $$$ för att komma in i modulens konfigureringsläge. När kommandot är skickat får man tillbaka CMD som bekräftelse på att man är inne i konfigureringsläget. Väl inne i konfigureringsläget kan man definiera parametrar för hur modulen ska bete sig, som t.ex. vilket nätverk den ska ansluta sig till, lösenord för nätverket, IPadress, kanal och protokoll. När konfigurationen är klar kan man välja att spara de aktuella inställningarna i minnet genom att skriva save. Detta gör att varje gång Wifi-modulen startar kommer dessa parametrar läsas in från minnet och användas. För att avsluta konfigureringsläget skickar man exit [16]. 2.4 Servomotorer En servomotor är en DC (direct current)-motor som är utrustad med en servomekanism för att kunna uppnå ett visst vinkelläge och är den komponent som kommer vinkla plattorna. Utöver en DC-motor består den även av ett växelsystem, ett positioneringssystem (som oftast består av en potentiometer) och styrelektronik. Motorn är ansluten till växelmekaniken som ger feedback från en positioneringssensor. Från växellådan styr motorns utsignal servoarmen. Potentiometern ändrar positionen som motsvarar den nuvarande positionen hos motorn, så att förändringen i resistans ger en ekvivalent förändring i spänning från potentiometern. En servomotor brukar oftast kunna rotera 90⁰ eller 180⁰, det finns även vissa servomotorer som kan rotera 360⁰ eller mer. Rotationen är begränsad mellan vissa vinklar och för att styra en servomotor använder man pulsbreddsmodulering, en så kallad PWM - signal. En puls vars bredd varierar mellan 1 2 millisekunder skickas upprepade gånger till servomotorn, cirka 50 gånger per sekund. Då servomotorn tar emot en puls behålls värdet i 20-millisekunder, fram tills en ny puls tas emot. Bredden på pulsen bestämmer vinkelläget som servomotorn ska ställa in sig på [19]. T.ex. om pulsbredden är 1 millisekund så rör sig servoarmen mot 0⁰ och 2 millisekunders pulsbredd rör sig mot 180⁰. Då skulle 1.5 millisekunders pulsbredd motsvara en vinkel på 90⁰ (se Figur 11). Dessa värden är ungefärliga och beteendet på servomotorerna skiljer sig baserat på tillverkare. Figur 11. Exempel på några pulsbreddsmodulerade signaler för att uppnå tre vinklar. [106] 11

19 Servomotorerna som används i projektet är typiska servomotorer för modellbyggen, fyra stycken Graupner Servo DES 708 BB, MG (se Figur 12). Dessa servomotorer drivs med 4.8V 6V och kräver en ström på cirka 1800mA. Eftersom detta är mer än arduinokortet klarar av att driva krävs en extern spänningskälla som kan tillhandhålla tillräckligt hög ström. 2.5 Spänningskälla Figur 12. Graupner Servo DES 708 BB, MG. [107] De olika komponenterna som kommer att användas i projektet behöver matas med olika spänning och drar olika mycket ström (se Tabell 2) blir det enklare att ha en enda spänningskälla som kan försörja alla komponenter istället för att varje komponent har sin individuella adapter. Antal Komponent Spänning Ström 2 Ventiler VDW21-5G-3-01F-Q 12V 0.25A 4 Graupner Servo DES 708 BB,MG 4.8-6V A 1 Arduino Mega ADK 12V Max 1.5A 1 LED Slinga för belysning 12V 2A Tabell 2. Lista över komponenter och deras matningsbehov. Då ett vanligt nätaggregat för stationära datorer (se Figur 13) kan ge dessa spänningar och klarar av att lämna tillräckligt hög ström gjordes valet att använda detta som spänningskälla. Nätaggregatet behöver dock modifieras för att tillfredsställa komponenternas behov. Ytterligare information om detta finns i kapitel 3.5. Figur 13. Nätaggregat från en stationär dator. 12

20 3. Genomförande I detta kapitel beskrivs genomförandet av arbetsprocessen. Kapitlet är uppbyggt i den ordning kommunikationen sker, Android Server Arduino. Efter det beskrivs konstruktionen av spänningskällan och sist de förändringar vi gjort i den ursprungliga designen. Fullständig källkod för androidapplikationen finns i Appendix C, koden för servern i Appendix D och arduinokoden i Appendix E. 3.1 Utveckling av vår applikation till Android Applikationen ska vara så enkel och användarvänlig som möjligt och därför består den av endast en aktivitet. Aktiviteten representeras av en skärmsida med ett användargränssnitt [7]. Användargränssnittet består av en svart bakgrund, för att ge ett starkt konstnärligt intryck, och tre stycken växlingsknappar (se Figur 14). Figur 14. Aktivitetens användargränssnitt. När applikationen startar anropas oncreate metoden. Där skapas ett objekt som kommer att sköta TCP-kommunikationen samt en sensorhanterare som hanterar accelerometern. Växlingsknapparna (Connect, Controlling Off och Water Off) kopplas till lyssnare som känner av om en knapptryckning sker. Då anropas en metod som kontrollerar vilken knapp det är och beroende på detta hanterar knapptryckningen på rätt sätt. Igångsättning eller byte av nätverk görs också i oncreate metoden. Efter att oncreate metoden anropats eller när applikationen återfår användarens fokus anropas metoden onresume. Här registrerar sensorhanteraren accelerometern så att den sätts igång och kan användas. Växlingsknapparna ställs in i de lägen de ska ha vid uppstart då enbart knappen Connect ska kunna tryckas på. Metoden onpause anropas när applikationen försvinner ur användarens fokus. Applikationen kopplar då ner anslutningen till servern och sensorhanteraren avregistrerar användandet av accelerometern så att den inte ligger igång och drar ström från batteriet i användarens mobiltelefon. Se Appendix B för sekvensdiagram över ovan nämnda metoder samt klassdiagram för applikationen. 13

21 Knapparnas funktioner är följande: försöka koppla upp sig mot servern, sätta igång styrningen av plattorna samt sätta igång vattenflödet. Det krävs att androidenheten är uppkopplad mot samma trådlösa nätverk som servern men för att användaren inte ska behöva tänka på detta så sköter applikationen det automatiskt vid uppstart. För att få tillåtelse att använda dessa funktioner, som innefattar igångsättning av nätverkskortet och/eller byte av trådlöst nätverk, måste detta anges i applikationens manifestfil (se Figur 16). I denna fil har även sökvägen som hänvisar till applikationens ikon (se Figur 15) lagts till. Figur 15. Ikonen för vår applikation. Figur 16. Utdrag ur manifestfilen Behandling av accelerometerdata För att ha möjlighet att styra plattorna efter androidenheten behövs tillgång till data från accelerometern som anger enhetens läge. Dessa data kan fås genom att skapa en sensorhanterare som hanterar accelerometern. Då accelerometerns värde ändras (enhetens vinkel ändras) ska dessa skickas till servern. Som tidigare nämnt kan accelerometern ge värden i tre riktningar, x-, y- och z-led. Det är enbart förändringen i x- och y-led som applikationen skickar till servern eftersom det är i dessa riktningar användaren kan vinkla plattorna. Innan dessa värden skickas kontrolleras om enheten skakas genom att se om det skett en snabb accelerationsförändring i någon av riktningarna och i så fall skickas inga värden. Detta för att skydda servomotorerna mot plötsliga förändringar Uppkoppling och sändning av data Som nämnts tidigare behöver användarens androidenhet vara uppkopplad mot samma trådlösa nätverk som servern för att enheten ska kunna ansluta till servern. Genom att trycka på knappen Connect kan användaren försöka ansluta till servern (se Figur 17). Figur 17. Ett försök att ansluta till servern görs. 14

22 För att anslutningen ska lyckas måste servern vara tillgänglig. Det sker också en kontroll att ingen annan enhet är uppkopplad mot servern genom att ett kontrolltecken skickas från enheten och väntar på ett svar i tre sekunder. Metoden som sköter detta heter heartbeat (se Figur 18) och används även för att kontrollera att uppkopplingen mellan androidenhet och server är aktiv. Detta görs var femte sekund. Mottags inget svar tre sekunder efter att tecknet skickats kopplas anslutningen till servern ner. Figur 18. Metoden heartbeat. Lyckas enheten ansluta sig till servern blir användaren medveten om detta genom att knappen blir grön och visar texten Connected. Växlingsknappen som sätter på och av styrningen blir då tillgänglig (se Figur 19). Är servern däremot upptagen eller inte går att ansluta sig till, visas ett meddelande om detta på enhetens skärm (se Figur 20). Figur 19. Enheten är ansluten till servern. Figur 20. Anslutningen till servern misslyckades. 15

23 När styrningen är aktiverad skickas accelerometerdatan och ett värde för ventilerna som bestämmer om de ska öppnas eller stängas. Ska det vara möjligt att kontrollera vattenflödet måste styrningen vara aktiv. För att servern ska veta att det är styrningsdata som kommer så skickas först ett A och sedan styrningsdata. Metoden sendpositions (se Figur 21) sköter sändningen av dessa data. Figur 21. Metoden sendpositions som skickar data till servern Nedladdning av applikationen Applikationen finns tillgänglig på Google Play och heter Project Rainbow. Den kan laddas ner av användaren antingen genom att söka efter Project Rainbow på Google Play eller med hjälp av en QR (Quick Response)-tagg som kommer att finnas tillgänglig vid utställning av projektet (se Figur 22). QR-taggen scannas med en applikation som kan läsa av streckkoder och skickar användaren direkt till applikationen i Google Play. 3.2 Serverns uppbyggnad Figur 22. QR-tagg för att komma direkt till applikationen. Servern tillhandahåller och sköter kommunikationen mellan androidenheten och arduinokortet, som styr konstinstallationen. När konstinstallationen är utställd ska servern vara igång hela tiden och vänta på att någon ska koppla upp sig mot den med sin androidenhet. När en enhet är uppkopplad kan ingen annan enhet koppla upp sig. På servern används både en TCP-socket 10 och en UDP-socket. När servern startar börjar den med att skapa en socket för datagrammen (se Figur 23) som ska skickas till arduinokortet. 10 Socket är en anslutningspunkt som uppkopplad mot en annan socket kan överföra data mellan varandra. 16

24 Figur 23. Socket för UDP överföringen skapas och Wifi-modulens IP-adress sparas. För att en klient, i detta fall en androidenhet, ska kunna koppla upp sig mot servern skapas en serversocket vilken ligger och väntar på att en klient ska försöka ansluta på en specifik port 11 (se Figur 24 rad 4). I samband med att en klientuppkoppling accepteras skapas två strömmar (se Figur 24 rad 16 och 18) som har hand om in- och utgående data mellan klient och server. Figur 24. Utdrag från metoden newconnection. När servern tar emot TCP-paketet från androidenheten så läses datainnehållet in rad för rad. Första raden är ett A, andra är x-värdet, tredje y-värdet och fjärde är värdet för vattnet. När servern känner av att första tecknet är ett A så vet den att nästkommande värden är accelerometerdata och vattenvärde. Varje rad avslutas med en punkt. Ett exempel på hur dessa data från paketet kan se ut visas i Figur 25. Övre raden visar datainnehållet i hexadecimal form och raden under dess motsvarighet i decimalform. Storleken på datadelen i TCP-paketet kan variera något beroende på hur många decimaler som de sända värdena innehåller men ofta ligger storleken på 43 bytes. Figur 25. Datainnehållet i ett TCP-paket från en androidenhet. Innan dessa data skickas till Wifi-modulen räknas x- och y-värdet om till ett nytt intervall. Intervallet på accelerometerdatan från androidenheten är mellan cirka -10 och 10. Det värde arduinokortet kan skicka till servomotorerna ska ha ett intervall på 0 till 180 som motsvarar grader. 11 Port kan ses som en adress för att datorn ska veta vilket program som paketen ska hänvisas till. 17

25 Resultatet på värdet i intervallet Project Rainbow Följande formel används för att få värdet inom det nya intervallet:. newvalue är värdet som ska vara inom intervallet 0 till 180. oldvalue är värdet från accelerometern som är inom intervallet -10 till 10. a1 är det gamla intervallets minimum värde (-10). a2 är det gamla intervallets maximum värde (10). b1 är det nya intervallets minimum värde (0). b2 är det nya intervallets maximum värde (180). Figur 26 visar värdets förhållande i de två intervallen Beräkning av accelerometervärdets nya intervall Aaccelerometervärdet i det gamla intervallet (-10) - 10 Figur 26. Värdets förhållande i de två intervallen. Efter att värdena räknats om till det nya intervallet avrundas de till ett heltal och får då plats i varsin byte. Dessa tre bytes läggs i datagrampaketet (se Figur 27) och skickas till Wifi-modulen via den UDPsocket som tidigare skapats. Figur 27. Metoden som skapar och skickar datagram. 18

26 UDP-paketets datainnehåll som skickas från servern visas i Figur 28. Här har det inkommande TCPpaketets datainnehåll från Figur 25 räknats om till grader. Värdet i x-led är 81 grader, y-led 132 grader och värdet för vattnet är 0 vilket indikerar att det ska vara avstängt. Figur 28. Datainnehållet i utgående UDP-paket. Det sker en kontroll av värdena innan de skickas vilket innebär att klienten ses som inaktiv om accelerometerdatan inte är ändrad efter 150 mottagningar, i tid innebär detta cirka 30 sekunder. Kontrollen görs genom att jämföra de senast inkommande värdena med föregående värden. Är det samma värden adderas en etta till räknaren som kopplar ner anslutningen när den når 150. Räknaren nollställs när det är nya värden som kommer. Om klienten önskar att uppkopplingen ska avbrytas skickas ett X i dataströmmen till servern vilket sker i bakgrunden när användaren trycker på knappen för att koppla ifrån. Strömmarna stängs då ner och det gör även socketanslutningarna. Servern börjar sedan om med att skapa nya sockets och återigen väntar den på att en ny klient ska ansluta sig. 3.3 Utveckling av arduinokortets programvara När arduinokortet startas börjar Wifi-modulen skapa en anslutning till ett angivet nätverk med hjälp av de sparade parametrar som förprogrammerats, så som nätverksnamn och lösenord. Även vilket protokoll som ska användas för kommunikationen finns sparat i minnet på modulen. Protokollet som används mellan Wifi-modulen och servern är UDP. Efter att Wifi-modulen anslutit till nätverket börjar den lyssna efter trafik på en viss port, i vårt fall portnummer Servern skickar ut paketen med aktuella accelerometervärden till Wifi-modulens IP-adress på port Paketet som tas emot innehåller tre bytes, första byten innehåller x-värdet och andra byten innehåller y-värdet. Sista byten innehåller värdet för ventilerna till vattenflödet. Vid uppstart skapas även en kommunikationslänk över SPI mellan Wifi-modulen och arduinokortet samt initiering av servomotorerna till PWM-utgång 2,3,4 och 5. Även utgång 22 aktiveras för att göra det möjligt att öppna eller sluta ventilerna för vattenflödet. Efter detta körs en loop för att se om data sänds från Wifi-modulen. Pågår ingen kommunikation mellan korten stängs servomotorerna av i väntan på att data ska tas emot. Är det däremot en datatrafik mellan korten, så kontrolleras x- och y-värdena med hjälp av koden som visas i Figur 29. Där income[0] är det inkomna x-värdet och income[1] är y-värdet. Figur 29. Källkod för att styra vänster platta från Arduinokortet. Viss kalibrering behöver programmeras eftersom servomotorerna inte ska röra sig över vissa vinklar för att förhindra skada på konstprojektet. Därför krävs det en 19

27 kontroll av de mottagna värdena innan de skickas till respektive servomotor. Detta görs i de två övre satserna enligt Figur 29 som visar koden för styrningen av vänster platta, styrningen för höger platta fungerar på samma sätt. Är det inkomna x-värdet mindre än eller lika med 24 ska värdet 24 skickas till servo[0]. Är x-värdet större än eller lika med 160 ska 160 skickas som värde till servo[0]. Alla x-värden mellan 24 och 160 kan skickas direkt till servo[0]. För y-värdet krävs en liknande kontroll förutom att y-värdet skickas till servo[1]. Eftersom servomotorerna är spegelvända behövs även en formel för att också spegla värdena, t.ex. blir 0 = 180 och 160 = 20. Denna formel kan ses i de två nedre satserna i figuren. När Arduinokortet sänder värdet med hjälp av write()-funktionen, så skickas en PWM-signal till servomotorerna som ställer in plattorna i rätt läge. Efter varje sänd signal anropas även funktionen detach() vilken kopplar från servomotorerna i väntan på att nya värden ska skickas. Inkommande värde för ventilerna är antingen 1 för att öppna eller 0 för att sluta. Är det inkomna värdet 1 så skickas 5 V till utgång 22 som är ansluten till ett kretskort för att öppna ventilerna (se Kapitel 3.4). Är värdet istället 0 så skickas ingen spänning till utgång 22 vilket gör att ventilerna är slutna (se Figur 30). 3.4 Ventiler Figur 30. Kod för att öppna respektive sluta vattenventilerna. För att ha möjlighet att stänga av och sätta på vattenflödet genom munstycket i plattorna behövs ett par elektriskt kontrollerbara ventiler. De som passade projektet bäst var 2/2- vägselektromagnetventil, VDW21-5G-3-01F-Q (se Figur 31). Ventilerna klarar att släppa genom ett vattenflöde på 0.43 l/min och kräver en arbetsspänning på minst 12 V. De öppnas eller sluts beroende på vad de tar emot för spänning. Matas de med låg spänning stängs ventilerna och när spänningen blir hög öppnas ventilerna så att vattnet kan flöda fritt genom kopplingen. Figur 31. 2/2-vägselektromagnetventil, VDW21-5G-3-01F-Q. [108] 20

28 Eftersom all information från användaren kommer till arduinokortet måste därför ventilerna även kunna styras genom detta. Vi har tillverkat ett eget kretskort som gör det möjligt för arduinokortet att slå på respektive av den externa spänningen på 12V till ventilerna. Detta kretskort består av ett motstånd på 1kΩ, en NPN transistor BD241C och en 1N4002 diod. Motståndet kopplas mellan utgång 22 på arduinokortet till basen på transistorn. Ventilernas jord kopplas till kollektorn på transistorn, och arduinokortets jord kopplas till emittern på transistorn. Dioden kopplas från kollektorn med katoden riktad till spänningskällans pluspol. Den förhindrar att bakslagsspänning skadar kretsen. Spänningskällans jord kopplas slutligen till emittern (se Figur 32). Figur 32. Kretskoppling för ventiler. När användaren har tryckt på knappen Water On skickas en etta i tredje byten i paketet till arduinokortet som i sin tur skickar ut en hög spänning på utgång 22 vilket öppnar kretsen. Med hjälp av ovanstående koppling kan kretsen (se Figur 33) styras för att mata ventilerna med den externa spänningskällan på 12 V. Figur 33. Ventilkretsen på ett prototypkort. 21

29 3.5 Nätaggregat Som spänningskälla använde vi ett gammalt nätaggregat till en dator. Nätaggregatet är tillverkat av Macron Technologies och ansluts till ett vanligt 230V uttag. Nätaggregatet kan förse önskade komponenter med spänning och ström enligt tabell 3. Kabelfärg Spänning Ström Röd +5 V 30A Gul +12V 15A Vit -5V 0.5A Blå -12V 0.8A Svart GND GND Tabell 3. Lista över anslutningar hos nätaggregatet. För att skapa en enkel kontakt för utgångarna fästes laborationsutgångar på framsidan av nätaggregatet. Totalt är det tre kontakter, två kontakter för +5 respektive +12 V samt en för jord (se Figur 34). Figur 34. Laborationskontakter fästa på nätaggregatet. För att utgångarna skall fungera optimalt krävs det att all kablage för en viss spänning fästs tillsammans med respektive laborationsutgång. Kablagen med färgmarkeringen vit, blå och orange isolerades eftersom de inte behöver användas. För att minimera kablagen och göra systemet smidigare fästes även en apparatlåda till nätaggregatet. På apparatlådan monterades en strömbrytare för nätaggregatet och en 25-utgångars D-subminatyrs honkontakt (se Figur 35). Figur 35. Nätaggregat med monterad apparatlåda. 22

30 När apparatlådan monterats på nätaggregatet placeras arduinokortet, Wifi-modulen och kretskortet för att styra ventilerna inuti apparatlådan (se Figur 36). Alla kablar som ska anslutas klämdes fast i en D-subminatyrs honkontakt, och ett litet hål för att kunna ansluta till arduinokortet via USB-kontakten sågades ut. Figur 36. Arduinokortet med WiFly-modulen och ventilkoppling, monterade i apparatlådan. Från bågen där ventiler, servomotorer och belysning är installerat, går en 12-ledarkabel och en 2- ledarkabel. Kablagen går i andra änden till en D-subminatyrs hankontakt (se Figur 37) som kopplas in i apparatlådan. Figur 37. D-subminatyrs hankontakt som ska kopplas in i honkontakten på apparatlådan. 23

31 3.6 Design För att öka den visuella effekten för användaren valde vi att göra förändringar på designen. Bågen som tidigare var tillverkad i rött plexiglas (se Figur 38) förändrades så att den nu består av vitt plexiglas (se Figur 39). Med hjälp av en laserskärare och ritningarna som användes för det röda plexiglaset skars de olika delarna till sidorna på bågen ut. Vi valde även att tillverka ett lock och en botten på bågen för att kunna dölja kablage och vattenslang samt fånga den nymonterade LEDslingans effekt. Eftersom laserskäraren inte klarar av delar som är längre än 60 cm så fick lock och botten tillverkas i delar om tre. För dessa delar fanns inga tidigare ritningar utan dessa skapades efter de mått som bågen har (se Appendix H). Kanterna på locket och botten fasades ut för att få en bättre passform. För att få delarna formade efter bågens form värmdes de upp med hjälp av en värmepistol. Delarna hålls på plats med hjälp av bultar som fästs med en mutter under bottendelarna. Figur 38. Bågen i tidigare röd design. Figur 39. Bågen i vitt plexiglas med lock och botten. 24

32 3.6.1 Belysning För att få ett mer effektfullt intryck monterades en 5 meter lång LED-ljusslinga inuti bågen(se Figur 33). Man kan med hjälp av en fjärrkontroll (se Figur 40) ändra färg och intensitet på ljusslingan eller låta den automatiskt skifta mellan olika färger. Användaren bjuds på en härlig visuell effekt när ljusslingan lyser genom det vita plexiglaset (se Figur 41) Figur 41. Belysning i vitt, rött, grönt och blått. Figur 40. LEDslingan och dess fjärrkontroll Vattenflöde En annan funktion som ökar upplevelsen är vattenflödet. Varje platta har ett munstycke(se Figur 42) där vatten forcerar genom när ventilerna är öppna. För att pumpa upp vattnet används en länspump som drivs av 12 volt, vattnet går från plastdammen upp genom vattenslangen som ligger inuti bågen, ut till varje platta (se Figur 43). Länspumpen klarar att leverera ett vattenflöde på 32 l/min vilket ger ett tillräckligt bra tryck för att producera en tunn stråle vatten från varje platta. När användaren styr plattorna med sin mobiltelefon följer vattenstrålarna telefonens rörelser och tillåter användaren att sätta på eller stänga av vattenflödet under tiden. Figur 42. Munstycke som skapar vattenstrålen. Figur 43. Vattnet leds genom ventilerna. 25

33 3.7 Test av systemet En testdag gjorde det möjligt att se hur besökare kunde interagera med projektet och samtidigt testa hur väl applikationen fungerade på mobiltelefoner med olika version av Android (se Figur 44). Besökaren följde den användarbeskrivning (se Appendix I) som fanns intill konstprojektet. Applikationen testades på olika versioner av Android (från 2.2 och uppåt) med framgång. Men vid ett test på den senaste versionen (Android 4.0.3, API 15) kraschade applikationen. Efter felsökning kunde felet lokaliseras. Applikationens krasch berodde på att kommunikationen till servern skedde i programmets huvudtråd vilket inte är tillåtet i denna version av Android. Detta löstes genom att vid applikationens uppstart kontrollera vilken version som körs. Om det är en senare version än 2.2, sätts en mindre strikt policy för applikationen som tillåter denna typ av uppgift i huvudtråden. En annan lösning på problemet är att skapa en asynkron uppgift för att sköta kommunikationen till servern. Det är en uppgift som körs i en egen tråd i bakgrunden av huvudtråden och på så sätt inte riskerar att låsa den. Figur 44. Monter för testdagen. 26

34 4. Resultat och diskussion I den här rapporten har vi beskrivit hur man trådlöst kan styra ett elektromekaniskt system med hjälp av en mobiltelefon. En prototyp för systemet har konstruerats och fungerar enligt de avgränsningar och kriterier som skulle uppfyllas enligt förstudien (se Appendix A). Applikationen finns lättillgänglig via Google Play. En användare åt gången kan koppla upp sig mot konstprojektet och styra det trådlöst med hjälp av en androidenhet. Den separata spänningskällan som tillverkades blev också lyckad. Med hjälp av den behövs enbart två kablar för att strömförsörja hela installationen, en kabel från bågen till apparatlådan och en kabel från nätaggregatet till ett eluttag. Ett av problemen som uppstod under projektet var att LED-belysningen flimrade till när servomotorerna ändrade läge. Detta berodde på den höga ström som servomotorerna drar under små tidsintervaller, vilket gjorde att strömmen till belysningen inte var tillräcklig. Detta löstes genom att byta ut nätaggregatet från originalkonstruktion till ett annat med högre effekt. Det blev även problem med att ventilerna inte kunde öppnas eller slutas när vattenpumpen kördes. Detta berodde också på att nätaggregatet inte kunde ge den spänning som krävdes för att styra ventilerna när de utsattes för trycket från vattnet. Även detta löstes när nätaggregatet blev utbytt. Vi stötte även på problem när vi implementerade en kontroll på servern för att hålla reda på att uppkopplingen mellan en androidenhet och servern är aktiv. Tanken var att använda javaspråkets fördefinierade funktioner för denna kontroll så som isconnected() och isbound(). Då detta inte fungerade som tänkt, skapade vi en egen funktion vilken meddelar användaren om att kontakten med servern brutits och servern återgår då till sitt startläge för att låta en ny användare ansluta. En annan svårighet var att hitta relevant information för att skapa en bra kommunikationslänk mellan Roving Network's WiFly-modul och servern. Tack vare olika utvecklarforum på internet och de tidigare arbeten som tas upp i kapitel 1.4 fick vi en del tips som kunde lösa våra problem med modulen. I grundkonstruktionen på bågen kan servomotorernas rörelsemönster inte utnyttjas fullt ut eftersom den mekaniska konstruktionen som plattorna är fästa med begränsar plattornas rörelse. Men konstruktionen är ändå tillräckligt bra för att användaren tydligt ska se vinkelförändringar på plattorna. Servomotorernas hastighet är i teorin ca 0.1 s/40 vilken dock minskas något på grund av plattornas vikt men är ändå så pass starka, med ett vridmoment på ca 100 N/cm, att tidsökningen blir marginell och påverkar inte upplevelsen. Vi utförde även ett pilotprojekt där vi ställde ut konstinstallationen för en dag tillsammans med instruktioner för hur besökare skulle kunna interagera med den. Servern hade en fast IP-adress som även gick att nå via det mobila nätverket. Detta gjorde det möjligt att styra konstinstallationen utan att befinna sig på samma trådlösa nätverk som servern. Tyvärr var det mobila nätverket inte tillräckligt snabbt för att ge användaren en bra responstid vid styrningen. Det tog cirka 5 sekunder från det att användaren vinklat sin telefon tills plattorna ändrade läge. Responstiden försämrade helhetsintrycket markant vilket gjorde att vi enbart tillät uppkoppling via ett eget trådlöst nätverk. Där var responstiden cirka ½ sekund. 27

35 Reaktionen från användarna var mycket positiv och installationen väckte stort intresse bland de förbipasserande. Detta var en utmärkt möjlighet för oss att testa systemet som helhet och även kunna testa applikationen på många olika mobiltelefoner. Det enda problemet som uppstod under dagen var att telefonmodellen Xperia Arc S tillverkad av Sony Ericsson skickade accelerometervärden för ofta för att plattorna skulle hinna ändra läge. Till skillnad från mobiltelefoner av andra tillverkare, skickade Sony Ericssons modell tre gånger mer information under en minuts tidsintervall. Detta beror förmodligen på att accelerometerchippet i den modellen har en högre samplingsfrekvens. 28

36 5. Slutsats Projektet har gått bra och vi har följt tidsplaneringen. Vi har uppfyllt delmål och milstolpar som upprättades under förstudien. Samarbetet i gruppen har gått bra och varje individ har slutfört de delar som den ansvarat för (se ansvarsområden samt uppgiftsuppdelning i förstudien, appendix A). Eftersom en server används som länk i kommunikationsflödet är möjligheterna för framtida utveckling stor. De tankar och idéer vi har om framtida utveckling är: Möjliggöra kommunikation via mobilt nätverk, till exempel 3G-nätet. Förutsatt att servern har ett fast IP-nummer som går att nå externt så fungerar det att kommunicera över det mobila nätverket. Detta betyder att användaren inte behöver vara uppkopplad mot ett specifikt trådlöst nätverk utan det räcker att personen har internetuppkoppling via sin mobiloperatör. Eftersom all information som styr installation skickas via en server finns möjlighet att styra den via ett webbgränssnitt också. Tanken är då att man skulle kunna se konstprojektet via en webbkamera och kunna interagera med det från en annan plats i världen. Ändra den mekaniska grundkonstruktionen så att plattorna kan få ett större rörelsemönster. Systemet skulle kunna vidareutvecklas för att tillåta två användare att vara uppkopplade mot konstprojektet samtidigt och styra varsin platta. För att detta ska fungera krävs det att applikationen, servern samt arduinokortet omprogrammeras. Systemet öppnar eller sluter båda ventilerna samtidigt. I framtiden skulle man även kunna ha möjlighet att sluta eller öppna var ventil för sig. För att möjligöra detta behöver applikationen innehålla en knapp till samt att servern ska skicka ytterligare ett värde till Arduinokortet. Även ett extra kretskort (se Figur 25) för att styra ventilen behöver byggas. Möjliggöra styrning av ljusslingan genom mobilapplikationen. För att detta ska fungera krävs det att arduinokortet utrustas med en IR-sändare och att androidapplikationen sänder ett extra värde för färgvalet till servern. Arduinokortet skickar sedan en signal via IR-sändaren till konstprojektets IR-mottagare som ställer om färgen. Tekniken som används i projektet kan även appliceras på andra användningsområden. Exempelvis skulle mobiltelefonens accelerometer och gyroskopiska sensorer kunna användas för att kontrollera en Segway PT 12 där telefonen skulle kunna kopplas in i styret och tillhandahålla styrning och balansfunktionerna. Styrningen för svensktillverkade övervakningsroboten Rotundus [23] skulle även kunna bygga på samma teknik. Roboten har formen av en sfär och tar sig fram genom att en pendel inuti roboten vinklas åt det håll den ska färdas. Framförallt kan tekniken användas för att skapa billiga prototyper till olika projekt eller för att skapa egna interaktiva miljöer där bara fantasin sätter gränser för vad som är möjligt. 12 Segway PT är ett tvåhjuligt fordon som själv håller balansen. Styrs genom att personen lutar sig åt det håll den vill färdas. 29

37 Referenser [1] Tekniska prylar, Undersökning utförd av: Silentium, april 2011, [2] FAQ, Open Handset Alliance, [3] Andy Rubin Google+ post, 27 februari 2012, Andy Rubin, [4] Om Google Play, Google, [5] Heming Pang, Linying Jiang, Liu Yang och Kun Yue. Research of android smart phone surveillance system in Computer Design and Applications (ICCDA), Qinhuangdao, China. 2010, s. V V2-376 [6] Adam M. Dutko, "Domo Arigato Mr Androidato An Introduction to the New Google Mobile Linux Framework, Android", Linux Journal, Vol. 2008, nr. 167, s [7] Application Fundamentals, Android Developers, [8] Activities, Android Developers, [9] Greg Gagne, To java.net and beyond: teaching networking concepts using the Java networking API. In Proceedings of the 33rd SIGCSE technical symposium on Computer science education (SIGCSE '02), mars ACM, New York, NY, USA, s [10] Amit Saha. Learning to program the Arduino. Linux Journal. Vol. 2011, nr [11] Arduino Build Process, Arduino, [12] Arduino ADK, Arduino, [13] Benedikt Ostermaier, Matthias Kovatsch och Silvia Santini, Connecting things to the web using programmable low-power Wifi modules. In Proceedings of the Second International Workshop on Web of Things (WoT '11), ACM, New York, NY, USA. [14] SPI Library, Arduino, [15] WiFly Shield, Sparkfun Electronics,

38 [16] WiFly GSX - User Manual and Command Reference, Roving Networks, [17] Min Zhang, Maurizio Dusi, Wolfgang John and Changjia Chen, Analysis of UDP Traffic Usage on Internet Backbone Links. Ninth Annual International Symposium on Applications and the Internet (20-24 juli 2009), Seattle, USA. [18] A. Malhotra, V. Sharma, P. Gandhi, N. Purohit, "UDP based chat application," 2nd International Conference on Computer Engineering and Technology, Chengdu, China, April 2010, pp.v6-374-v [19] Servo Motor, EngineersGarage, [20] SensorEvent, Android Developers, [21] Martina Marti, Lorenz Rordorf, Interactive art installation, 2011, bachelor thesis, Malmö Högskola, Institutionen för datavetenskap. [22] Jakub Wójcik, The conception and the implementation of control system for servomotor with application of wireless network, Krakow, Polen, 2011, master thesis, AGH University of Science and Technology, Electrical Engineering. [23] Rotundus, [24] Danial Bin Mohd Ruslan,Ezreen Aida Bintikamarulzaman, Build a wireless weather station, 2011, Report for diploma: Engineering Technology in Telecommunication, University Kuala Lumpur, Malaysia. [25] TCP - How it works, The ISP Column, Geoff Huston

39 Bildreferens [101] [102] [103] [104] [105] [106] [107] [108] [109] [110]

40 Appendix A Förstudie Appendix A Projekt Rainbow - Förstudie Bakgrund Höstterminen 2011 gjorde två studenter från Schweiz sitt examensarbete vid Malmö högskola. Examensarbetet handlade om att göra ett interaktivt konstprojekt där åskådaren själv kunde skapa de visuella effekterna. De två studenterna designade och tillverkade en arm i plexiglas som har en platta i vardera ända som kan vinklas med hjälp av två servomotorer. En vattenpump förser dessa två plattor med en vattenstråle som på så vis kan vinklas och skapa olika intressanta mönster. Deras tanke var att åskådarna själva skulle kunna styra konstinstallationen med hjälp av sin mobiltelefon, då detta moment inte ingick i deras utbildning så lämnade de detta till framtida utveckling. Istället styrdes konstinstallationen med hjälp av en joystick som sitter på ett Arduino Mega ADK (se Figur 1). Figur 1. Hur Användaren interagerar idag. Avgränsning av forskningsfrågan eller huvudproblemet, förtydligande av kravspecifikationer Syftet med det här examensarbetet är att vidareutveckla ett tidigare examensarbete gjort av två studenter, och att bygga vidare på den produkt som existerar idag. Tanken med slutprodukten är att man ska kunna styra ett konstprojekt via sin mobiltelefon genom en applikation som hämtar accelerometerdata från telefonen. Detta kommer att ske genom en kommunikation mellan användarens telefon och en webbserver via TCP/IP över Wifi. Webbservern skickar sedan vidare den bearbetade datan till Arduino-kortet med UPD över WIFI (se Figur 2). Konstinstallationen ska använda sig av ett Arduino Mega ADK-kort, som ständigt hämtar data från webbservern och ändrar de styrbara plattornas läge beroende på accelerometerdatan från användarens mobiltelefon. På så vis kan användaren genom att vinkla sin mobiltelefon bestämma plattans läge. Applikationen kommer att utvecklas för mobiltelefoner med operativsystemet Android, på grund av de enkla utvecklingsmöjligheterna och stora antalet användare. 33

41 Appendix A Förstudie Figur 2. Systemöversikt För att få en klar bild över projektets problematik och genomförbarhet, har vi valt att bryta ner huvudproblemet i mindre delproblem (se Figur 3). På detta sätt får vi en klar bild över vilka delproblem som projektet har och det blir enklare att börja leta efter relevant information och bearbeta var problem för sig. Figur 3. Delproblem och lösningsprinciper. 34

42 Appendix A Förstudie Följande tabell beskriver de olika delproblemens lösningsprinciper. Lösningsprinci Beskrivning p (LP) 1.1 Strömförsörjningen till servomotorerna sker med en icke switchad 12Vadapter som kan ge en ström på minst 2A. Arduinokortet matas med en 5Vadapter och belysningen med en egen 12V-adapter. Ventilerna drivs med 12V och 0.125A. Istället för att ha fyra olika adaptrar hade vi tänkt tillverka en egen strömförsörjningsadapter Arduinokortet förses med en Wifly-modul som kopplar upp sig mot ett trådlöst nätverk. Detta gör att Arduinokortet får en ip-adress och vi får möjlighet att skicka och ta emot data trådlöst Ventilerna kan antingen stängas av eller sättas på. Detta ska användaren kunna göra genom samma applikation som styr konstverket. Eftersom Arduinokortet inte kan mata en utgång med 12V kan inte styrningen ske direkt på kortet Servomotorerna styrs med en PWM-signal som genereras av arduinokortet. 2.1 Applikationen kopplar upp sig mot servern och skickar data över TCP. Servern skickar även tillbaka paket via TCP till applikationen. Servern förmedlar denna bearbetade datan till arduinokortet via UDP. 2.2 Servern tar emot accerleometerdata från användarens telefon och räknar om dessa värden till ett visst gradantal som skickas till arduinokortet som i sin tur ställer in servomotorerna rätt. 3.1 Applikationen skapas i eclipse till androidversioner senare än 1.5. Applikationen tillåter användaren att styra konstprojektet och ska vara tillgänglig på android Market Sändning och mottagning av data sker med TCP-paket. Applikationen kommunicerar med wiflymodulen på arduinokortet över ett trådlöst nätverk. 3.1 Bågen ska lysa i olika färger för att ge en bättre upplevelse. Detta görs med hjälp av en LED-slinga som ligger i bågen och styrs med hjälp av en IRfjärrkontroll. 3.2 Vattenpumpen ska kunna förse ventilerna med vatten samt ett eventuellt vattenfall. Pumpen klarar 42liter per minut. Följande krav har tagits fram för systemet. Typbetäckning m betyder minimikrav, i betyder idealkrav och ö betyder önskemål. Kravnr. Typ m/i/ö Kravspecifikation K1 m Styrningen av konstverket ska ske med en applikation i användarens telefon. Gäller för DP och LP DP 3.1 LP 3.1 K2 m Applikationen ska vara lättillgänglig. LP 3.1 K3 m Konstverkets servomotorer och ventiler ska kunna styras med applikationen. K4 m En användare ska via applikationen trådlöst koppla upp sig mot DP DP DP LP LP

43 Appendix A Förstudie konstverket DP LP LP K5 m Det ska inte gå att koppla upp sig mot konstverket om en annan användare redan är ansluten. K6 m Applikationen ska vara kompatibel med alla telefoner som har operativsystemet Android version 1.5 (API nivå 3) och uppåt. DP DP LP LP DP 3.1 LP 3.1 K7 i Responstiden för konstverket efter att användaren ändrat läge på sin telefon bör inte överstiga ½ sekund. LP LP K8 m Applikationen ska vara så användarvänlig som möjligt DP 3.1 LP 3.1 DP 3.1 LP 3.1 K9 m Applikationen ska gå att ladda ner genom att, med hjälp av sin telefon, läsa av en QR-kod i anslutning till konstverket. K10 M Ingen strömförsörjning ska ske med batteri. DP 1.1 LP 1.1 K11 m Bågen ska skifta i olika färger för att förstärka upplevelsen. DP 4.1 LP 4.1 K12 m Vattenpumpen ska kunna förse konstprojektet med rätt mängd vatten DP 4.2 LP 4.2 K13 ö Konstprojektet ska kunna styras över internet. Informationssökning efter vetenskapliga artiklar och yrkeskunskap DP, LP Källförteckning Relevans DP 3.1 Heming Pang, Linying Jiang, Liu Artikeln visar hur man kopplar upp sig DP Yang, och Kun Yue. Research of mot en server och skickar och tar LP 3.1 android smart phone surveillance emot information med hjälp av LP system in Computer Design and Applications (ICCDA), Qinhuangdao, Android. LP 3.1 DP LP 3.1 LP DP LP DP DP DP LP LP LP China. 2010, pp. V V2-376 Adam M. Dutko, "Domo Arigato Mr Androidato An Introduction to the New Google Mobile Linux Framework, Android", Linux Journal, vol. 2008, nr. 167, s Amit Saha. Learning to program the Arduino. Linux Journal. Vol. 2011, nr, 211. Benedikt Ostermaier, Matthias Kovatsch, och Silvia Santini. Connecting things to the web using programmable low-power WiFi modules. In Proceedings of the Second International Workshop on Web of Things (WoT '11). ACM, New York, NY, USA. 2011, Article 2, 6 pages. Artikel som beskriver operativsystemet android. Artikel som visar hur man kan kontrollera en servomotor med hjälp av Arduino Artikel som beskriver hur man använder wifi-moduler för att ansluta till webben. 36

44 Appendix A Förstudie DP 1.2 DP DP LP LP DP LP Jakub Wójcik. The conception and the implementation of control system for servomotor with application of wireless network Kraków AGH University of Science and Technology. Master s thesis written under the direction of prof. dr hab. inż Zygfryd Głowacz s/wojcik.pdf Roving Networks, Inc. WIFLY GSX RN-131G, RN-131C, RN-134, RN-121, RN-123 & RN-125, RN-370 WIFLY EZX RN-171, RN-174, RN-XV October 26th tasheets/wireless/wifi/wifly-rn- UM.pdf Examensarbete av Jakub Wójcik där han beskriver hur man kan styra servomotorer trådlöst med hjälp av Arduino och en wifly-modul. Manual och kommandoreferens för Wifly-modulen som beskriver hur man kan kommunicera med hjälp av olika protokoll. DP 3 developer.android.com Developers guide för Android. DP 1.2 arduino.cc Developers guide för Arduino. DP 3 DP 1.2 code.google.com/p/microbridge Android debug bridge för att få android att kommunicera via USB till Arduino. Genomförbarhetsanalys Under förstudiens gång har vi bestämt vilka komponenter vi ska använda och hur vi ska gå tillväga för att lösa projektets problematik. Vi har köpt de önskade komponenterna och även börjat laborera med en prototyp för styrningen. I dagsläget har vi en fungerande prototyp där användaren hämtar vår applikation från android market, applikationen ansluter sig sedan över ett lokalt trådlöst nätverk till en wifly-modul som sitter kopplad på ett Arduino Mega ADK-kort. Applikationen samlar accelerometerdata från telefonens rörelse och skickar det trådlöst via med hjälp av en UDP-socket till konstprojektet. Wifly-modulen som sitter på Arduinokortet tar emot den skickade informationen och behandlar den för att kunna ställa in servomotorerna i rätt läge. Flera personer kan använda applikationen och turas om att interagera med konstprojektet. Med den här prototypen och förstudien som grund, har vi verifierat att vi kan genomföra projektet inom den angivna tidsramen. 37

45 Tidsplanering med uppgiftsuppdelning Projekt Rainbow Aktivitet Beteckning M-datum Ansvarig Tiduppskattn. v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 Externa milstolpar HA CO Problemformulering M HACO Förstudie M HACO Beta-redovisning M HACO Slutredovisning M HACO Hårdvara H Strömförsörjning H1 CO Mottagning och sändning av data H2 HA Styrning av ventiler H3 CO Styrning av servomotorer H4 HA Arduinoprogram 160 Android A Sändning och mottagning av data A1 HA Applikationsutveckling A2 HACO Androidapplikation 200 Server S Sändning och mottagning av data A1 HACO Bearbetning av data A2 HACO Design D Belysning D1 HA Vattenpump D2 CO Upphängning D3 HACO Prototyp 60 Test T HACO Optimering O HACO Rapportskrivning R HACO Handledarmöten HACO Total Tid

46 Appendix B Appendix B Klassdiagram för androidapplikationen. 39

47 Appendix B Sekvensdiagram för androidapplikationens metoder: oncreate(), onresume och onpause(). 40

48 Appendix C ServoControl.java Appendix C Källkod för androidapplikationen. Först kommer koden för klassen ServoControl.java efter det koden för klassen TCP.java som sköter kommunikationen. package project.rainbow.gui; import project.rainbow.comm.tcp; import com.rainbow.gui.r; import android.app.activity; import android.app.progressdialog; import android.hardware.sensor; import android.hardware.sensorevent; import android.hardware.sensoreventlistener; import android.hardware.sensormanager; import android.net.wifi.wificonfiguration; import android.net.wifi.wifimanager; import android.os.build; import android.os.bundle; import android.os.handler; import android.os.message; import android.os.strictmode; import android.view.gravity; import android.view.view; import android.view.view.onclicklistener; import android.view.window; import android.view.windowmanager; import android.widget.toast; import android.widget.togglebutton; /** Henrik Andersson, Carl-Philip Olsson The "shake" check, including the * methods isaccelerationchanged(), isaccelerationchanged() and some of * the code in onsensorchanged(), is based on code by Thomas Manthey * from the AndroidCookbook.com * ( * =278C53288C9F75D55D8316B0165D748E?recipeId=529&recipeFrom=ViewTOC, * ) * */ public class ServoControl extends Activity implements SensorEventListener, OnClickListener, Runnable { private SensorManager msensormanager; private Sensor maccelerometer; private TCP tcp; private ProgressDialog pd; private boolean shaketoast = false; */ /* Here we store the current values of acceleration, one for each axis private float xaccel; private float yaccel; private float zaccel; /* And here the previous ones */ private float xpreviousaccel; 41

49 Appendix C ServoControl.java private float ypreviousaccel; private float zpreviousaccel; /* Used to suppress the first shaking */ private boolean firstupdate = true; */ /* What acceleration difference would we assume as a rapid movement? private final float shakethreshold = 2.3f; /* Has a shaking motion been started (one direction) */ private boolean shakeinitiated = false; private Handler counterhandler = new Handler(); turned /* * Is called when the application is created. If Android API version * is higher than 8 a less strict mode is set to be able to send data * from the main thread. A tcp object is created and the wifi is * on. Listeners are set to the Connect and Controlling buttons. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); if (Build.VERSION.SDK_INT > 8) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll(). build(); StrictMode.setThreadPolicy(policy); tcp = new TCP(); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, WindowManager.LayoutParams.FLAG_FULLSCREEN); getwindow().setflags(windowmanager.layoutparams.flag_keep_screen_on, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); requestwindowfeature(window.feature_no_title); msensormanager = (SensorManager) getsystemservice(sensor_service); maccelerometer = msensormanager.getdefaultsensor(sensor.type_accelerometer); setcontentview(r.layout.main); final ToggleButton tglconnect = (ToggleButton) findviewbyid(r.id.tglconnectdisconnect); final ToggleButton tglstartstop = (ToggleButton) network findviewbyid(r.id.tglstartstop); //Wifi configuration to start the wifi and change the WifiManager wifimanager = (WifiManager) getsystemservice(servocontrol.wifi_service); 42

50 Appendix C ServoControl.java WifiConfiguration wc = new WifiConfiguration(); wc.ssid = "\"ProjectRainbow\""; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedkeymanagement.set(wificonfiguration.keymgmt.none); int netid = wifimanager.addnetwork(wc); wifimanager.setwifienabled(true); wifimanager.enablenetwork(netid, true); //End Wifi configuration tglstartstop.setonclicklistener(this); tglconnect.setonclicklistener(this); se); lost"); received"); /* * Starts the counter for the heartbeat function. * Will be called every 5 seconds */ public void HeartbeatCounterStart() { counterhandler.postdelayed(heartbeat, 5000); /* * Stops the counter. */ public void HeartbeatCounterStop() { counterhandler.removecallbacks(heartbeat); /* * This will run when the HeartbeatCounter reaches its * counter value. Checks the server conncetion by calling * heartbeat in the TCP class. If a heartbeat is received * everything is ok otherwise will the tcp connection * close. */ private Runnable Heartbeat = new Runnable() { public void run() { boolean hb = tcp.heartbeat(); if (tcp.getisconnected() && hb) { HeartbeatCounterStart(); else if (!hb) { tcp.closeconnection(); ((ToggleButton)findViewById(R.id.tglConnectDisconnect)).setChecked(fal ((ToggleButton) findviewbyid(r.id.tglstartstop)).setchecked(false); ((ToggleButton) findviewbyid(r.id.tglwater)).setchecked(false); ((ToggleButton) findviewbyid(r.id.tglstartstop)).setenabled(false); ((ToggleButton) findviewbyid(r.id.tglwater)).setenabled(false); showtoast("server connection ; /* * Shows the incoming string in a System.err.println("No heartbeat 43

51 Appendix C ServoControl.java * toast message on the display for 3 seconds. */ public void showtoast(string messagetoshow) { final Toast toastmessage = Toast.makeText(this, messagetoshow, 3000); toastmessage.setgravity(gravity.center, Gravity.CENTER, Gravity.CENTER); toastmessage.show(); /* * Will be called when a click on a button * occurs. Checks which button that was clicked * and makes different changes. If the connect button * is clicked and there is no connection a new thread * will be started and show a progress dialog while a * connection to the server i trying to get established. */ public void onclick(view v) { Thread thread = new Thread(this); final ToggleButton tglconnect = (ToggleButton) findviewbyid(r.id.tglconnectdisconnect); final ToggleButton tglstartstop = (ToggleButton) findviewbyid(r.id.tglstartstop); final ToggleButton tglwater = (ToggleButton) findviewbyid(r.id.tglwater); if (v == tglconnect) { if (!tcp.getisconnected()) { pd = ProgressDialog.show(this, "", "Connecting to server...",true, false); thread.start(); else { HeartbeatCounterStop(); tcp.sendexitpositions(); tglstartstop.setchecked(false); tglwater.setchecked(false); tglstartstop.setenabled(false); tglwater.setenabled(false); else if (v == tglstartstop) { if (tglwater.isenabled()) { tcp.sendpositions(0, 0, 0); tglwater.setenabled(false); tglwater.setchecked(false); else { tglwater.setenabled(true); /* * The thread that will be started when * a server connection is trying to get * established. A specific handler takes care of * the changes needed whether the connection * is ok or not. */ 44

52 Appendix C ServoControl.java public void run() { if (tcp.trytoconnect()) { handler.sendemptymessage(0); HeartbeatCounterStart(); else { handler.sendemptymessage(1); /* * This handler is called when a server connection * has been established or failed to establish. If * the connection is ok the incoming message is "0" * otherwise "1". Makes the needed changes and dismisses * the dialogue. */ private Handler handler = new Handler() public void handlemessage(message msg) { if (msg.what == 0) { ((ToggleButton) findviewbyid(r.id.tglstartstop).setenabled(true); ((ToggleButton) findviewbyid(r.id.tglwater)).setenabled(false); pd.dismiss(); else if (msg.what == 1) { ((ToggleButton) findviewbyid(r.id.tglconnectdisconnect)).setchecked(false); pd.dismiss(); showtoast("no server connection or server busy!"); ; /* * Is called when the application gets in * focus. Registers the accelerometer listener * and sets the buttons to its start values. protected void onresume() { super.onresume(); msensormanager.registerlistener(this, maccelerometer, SensorManager.SENSOR_DELAY_NORMAL); ((ToggleButton) findviewbyid(r.id.tglconnectdisconnect)).setchecked(false); ((ToggleButton) findviewbyid(r.id.tglstartstop)).setchecked(false); ((ToggleButton) findviewbyid(r.id.tglstartstop)).setenabled(false); ((ToggleButton) findviewbyid(r.id.tglwater)).setchecked(false); ((ToggleButton) findviewbyid(r.id.tglwater)).setenabled(false); /* * Is called when the application loses focus. 45

53 Appendix C ServoControl.java * Unregisters the accelerometer listener and if * there is a connection to the server it will be * disconnected. protected void onpause() { super.onpause(); msensormanager.unregisterlistener(this); if (((ToggleButton) findviewbyid(r.id.tglstartstop)).ischecked()) { ((ToggleButton)ViewById(R.id.tglStartStop)).setChecked(false); if (tcp.getisconnected()) { tcp.sendexitpositions(); /* * Not used */ public void onaccuracychanged(sensor sensor, int accuracy) { /* * Is called everytime the accelerometer value is changed. * If the controlling button is on and no shake is registered * the values from the event will be sent to sendpositions. * event.values[0] is the x-value, event.values[1] the y-value * and event.values[2] the z-value (not used) */ public void onsensorchanged(sensorevent event) { if (((ToggleButton) findviewbyid(r.id.tglstartstop)).ischecked()) { updateaccelparameters(event.values[0], event.values[1], event.values[2]); if ((!shakeinitiated) && isaccelerationchanged()) { shakeinitiated = true; else if ((shakeinitiated) && isaccelerationchanged() &&!shaketoast) { showtoast("please don't shake me!"); shaketoast = true; else if ((shakeinitiated) && (!isaccelerationchanged())) { shakeinitiated = false; else if ((!shakeinitiated) && (!isaccelerationchanged())) { shaketoast = false; double[] xy = new double[2]; xy[0] = event.values[0]; xy[1] = event.values[1]; sendpositions(xy); 46

54 Appendix C ServoControl.java /* * Store the acceleration values given by the sensor is based on code by * Thomas Manthey from the AndroidCookbook.com * ( *.seam;jsessionid=278c53288c9f75d55d8316b0165d748e *?recipeid=529&recipefrom=viewtoc, ) */ private void updateaccelparameters(float xnewaccel, float ynewaccel, float znewaccel) { /* * we have to suppress the first change of acceleration, it results from * first values being initialized with 0 */ if (firstupdate) { xpreviousaccel = xnewaccel; ypreviousaccel = ynewaccel; zpreviousaccel = znewaccel; firstupdate = false; else { xpreviousaccel = xaccel; ypreviousaccel = yaccel; zpreviousaccel = zaccel; xaccel = xnewaccel; yaccel = ynewaccel; zaccel = znewaccel; /* * If the values of acceleration have changed on at least two axises, we are * probably in a shake motion Thomas Manthey from the AndroidCookbook.com * ( * C53288C9F75D55D8316B0165D748E?recipeId=529&recipeFrom=ViewTOC, * ) */ private boolean isaccelerationchanged() { float deltax = Math.abs(xPreviousAccel - xaccel); float deltay = Math.abs(yPreviousAccel - yaccel); float deltaz = Math.abs(zPreviousAccel - zaccel); return (deltax > shakethreshold && deltay > shakethreshold) (deltax > shakethreshold && deltaz > shakethreshold) (deltay > shakethreshold && deltaz > shakethreshold); /* * Sends the incoming values to sendpositions in the * tcp class and the correct value for the water depending * on if the water button is checked or not. */ public void sendpositions(double[] xy) { if (tcp.getisconnected()) { 47

55 Appendix C ServoControl.java if (((ToggleButton) findviewbyid(r.id.tglwater)).ischecked()) { tcp.sendpositions(xy[0], xy[1], 1); else { tcp.sendpositions(xy[0], xy[1], 0); 48

56 Appendix C TCP.java package project.rainbow.comm; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.printwriter; import java.net.inetsocketaddress; import java.net.socket; import java.net.socketaddress; import java.net.socketexception; import java.net.unknownhostexception; public class TCP { // The servers ip address private final String SERVER_IP = " "; // The port number on which the server will receive data private final int SERVER_PORT = 4445; private Socket clientsocket = null; private PrintWriter out = null; private BufferedReader in = null; private boolean isconnected = false; /* * Tries to connect to the server with a * specific ip address and port number. Creates * one output and one input stream. Returns true * if connection establishes otherwise false. */ public boolean trytoconnect() { try { SocketAddress sockaddr = new InetSocketAddress(SERVER_IP,SERVER_PORT); clientsocket = new Socket(); clientsocket.connect(sockaddr, 3000); out = new PrintWriter(clientSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader( clientsocket.getinputstream())); isconnected = true; if (!heartbeat()) { closeconnection(); isconnected = false; catch (UnknownHostException e) { System.err.println("Don't know about host: Project Rainbow."); try { clientsocket.close(); catch (IOException e1) { System.err.println("Couldn't close clientsocket after UnknownHostException"); e1.printstacktrace(); isconnected = false; catch (IOException e) { try { clientsocket.close(); catch (IOException e1) { System.err.println("Couldn't close clientsocket after IOException"); e1.printstacktrace(); isconnected = false; 49

57 Appendix C TCP.java System.err.println("Couldn't get I/O for the connection to: Project Rainbow."); try { if (clientsocket.isclosed()) { this.isconnected = false; else if (!clientsocket.isclosed()) { this.isconnected = true; catch (NullPointerException e) { this.isconnected = false; System.err.println("NullPointerException in trytoconnect()"); return isconnected; /* * Can be called to check if the socket connection * is established. */ public boolean getisconnected() { try { if (clientsocket.isclosed()) { this.isconnected = false; else if (!clientsocket.isclosed()) { this.isconnected = true; catch (NullPointerException e) { this.isconnected = false; System.err.println("Exception in getisconnected()"); return this.isconnected; back. If is /* * Sends a "H" to the server and waits for 3 seconds to get a "H" * this doesn't happen the connection is lost. Returns true if a "H" * received otherwise false. */ public boolean heartbeat() { boolean hb = false; String inputline = ""; try { clientsocket.setsotimeout(3000); out.println("h"); catch (SocketException e1) { System.err.println("Couldn't send heartbeat!"); try { while ((inputline = in.readline())!= null) { if (inputline.equals("h")) { System.out.println("Heartbeat received"); hb = true; break; 50

58 Appendix C TCP.java catch (IOException e) { System.out.println("No heartbeat received"); return hb; /* * Is called when the application is going * to disconnect from the server. */ public void sendexitpositions() { out.println("x"); try { this.clientsocket.close(); catch (IOException e) { System.err.println("Couldn't close clientsocket in sendexitpositions()"); e.printstacktrace(); this.isconnected = false; /* * Closes the socket connection */ public void closeconnection() { try { clientsocket.close(); catch (IOException e) { this.isconnected = false; System.err.println("NullPointerException in trytoconnect()"); /* * Sends the information to the server. */ public void sendpositions(double x, double y, int w) { // Character for the server to let it know steering data is coming out.println("a"); // The position from the accelerometer in x-direction out.println(x); // The position from the accelerometer in y-direction out.println(y); // If the water should be turned on w = 1 otherwise w = 0 out.println(w); 51

59 Appendix D TCPServer.java Appendix D Serverns källkod. import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.printwriter; import java.net.*; import java.util.calendar; public class TCPServer2 { private static InetAddress wiflyaddress; private static DatagramSocket wiflysocket; public static void main(string args[]) { newwiflyconnection(); newconnection(); /* * Creates an UDP socket which will be used to * send data to the WiFly on the Arduino board. */ public static void newwiflyconnection() { try { wiflysocket = new DatagramSocket(); wiflyaddress = InetAddress.getByName(" "); catch (UnknownHostException e) { e.printstacktrace(); catch (SocketException e1) { e1.printstacktrace(); /* * Sends the incoming bytes to the WiFly. */ public static void sendtowifly(byte x, byte y, byte w) { byte datatowifly[] = new byte[3]; datatowifly[0] = x; datatowifly[1] = y; datatowifly[2] = w; DatagramPacket packettowifly = new DatagramPacket(dataToWiFly, datatowifly.length, wiflyaddress, 8888); try { wiflysocket.send(packettowifly); catch (IOException e) { e.printstacktrace(); /* * Listens for and establishes a connection to a client. * While a client is connected the input stream is read. * If first incoming character is an "A" the next three lines will be 52

60 Appendix D TCPServer.java been inactivity. back disconnect listen * the x-value, y-value and the water value. If the same values has * received 150 times the client will be disconnected due to * If first incoming character is a "H" will the server send a "H" * to the client, this is the clients heart beat function. If first * incoming character is a "X" this means the client wants to * and the server closes the connections and streams and starts to * for a new client. */ public static void newconnection() { ServerSocket serversocket = null; int[] oldxy = new int[2]; int oldw = -1, notactive = 0; int nr = 0; long starttime = 0; try { serversocket = new ServerSocket(4445); catch (IOException e) { System.out.println("Could not listen on port: 4445"); System.exit(-1); Socket clientsocket = null; try { clientsocket = serversocket.accept(); catch (IOException e) { System.out.println("Accept failed: 4445"); System.exit(-1); try { PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true); BufferedReader in = new BufferedReader(new InputStreamReader( clientsocket.getinputstream())); String inputline; double[] dbinputxy = new double[2]; int[] xy = new int[2]; int inputw = -1; Calendar cal = Calendar.getInstance(); starttime = cal.gettimeinmillis(); while (clientsocket.isconnected()) { clientsocket.setsotimeout(7500); inputline = in.readline(); if (!inputline.equals("x") &&!inputline.equals("h")) { System.out.println("Connected!X"); if (inputline.equals("a")) { System.out.println("Connected A"); try { dbinputxy[0] = Double.parseDouble(in.readLine()); dbinputxy[1] = Double.parseDouble(in.readLine()); xy = calculatepositions(dbinputxy); inputw = Integer.parseInt(in.readLine()); if (xy[0] < 0) { xy[0] = 0; 53

61 Appendix D TCPServer.java else if (xy[0] > 180) { xy[0] = 180; if (xy[1] < 0) { xy[1] = 0; else if (xy[1] > 180) { xy[1] = 180; nr++; sendtowifly((byte) xy[0], (byte) xy[1],(byte) inputw); catch (NumberFormatException e) { e.getstacktrace(); if (oldxy[0] == xy[0] && oldxy[1] == xy[1] && oldw == inputw) { notactive++; else { notactive = 0; if (notactive == 150) { out.close(); in.close(); clientsocket.close(); serversocket.close(); newconnection(); oldxy[0] = xy[0]; oldxy[1] = xy[1]; oldw = inputw; else if (inputline.equals("h")) { System.out.println("Heartbeat received"); out.println("h"); else if (inputline.equals("x")) { System.out.println("Connected XX"); sendtowifly((byte) 90, (byte) 90, (byte) 0); out.close(); in.close(); clientsocket.close(); serversocket.close(); newconnection(); System.out.println("Connected X"); sendtowifly((byte) 90, (byte) 90, (byte) 0); out.close(); in.close(); clientsocket.close(); serversocket.close(); newconnection(); catch (IOException e) { System.out.println("IOException"); try { clientsocket.close(); serversocket.close(); catch (IOException e1) { System.out.println("IOException, Couldn't close client- or serversocket."); newconnection(); catch (NullPointerException e1) { 54

62 Appendix D TCPServer.java System.out.println("NullPointerException"); try { clientsocket.close(); serversocket.close(); catch (IOException e2) { System.out.println("IOException, Couldn't close client- or serversocket."); newconnection(); /* * Calculates the incoming double values with interval (-10)-10 * to the interval in degrees instead. Returns as integers. */ public static int[] calculatepositions(double[] xy) { double[] retxy = new double[2]; int[] retint = new int[2]; retxy[0] = (((xy[0] - -10) * (180-0)) / ( )) + 0; retint[0] = (int) Math.round(retXY[0]); retxy[1] = (((xy[1] - -10) * (180-0)) / ( )) + 0; retint[1] = (int) Math.round(retXY[1]); return retint; 55

63 Appendix E WiFly_FinalReceive.pde Appendix E Kod för arduinon. /* * For the Arduino Mega ADK board with a WiFly-shield. Reads * incoming data from the spi on the WiFly. The incoming * data controls 4 servos on pin 2, 3, 4, and 5. Pin 22 is * connected to a chip which controls 2 valves. When pin is high * the valves are on and when pin is low the valves are turned * off. The servos are detached when not in use and attached before * a value are written to them preventing the servos to be on all * the time. * Created by: Carl-Philip Olsson & Henrik Andersson */ #include "WiFly.h" #include "Servo.h" Servo servos[4]; int income[3]; void setup() { Serial.begin(9600); SpiSerial.begin(); pinmode(22, OUTPUT); Serial.println(WiFly.ip()); servos[0].attach(2); servos[1].attach(3); servos[2].attach(4); servos[3].attach(5); void loop(){ if ( SpiSerial.available() > 0) { servos[0].attach(2); servos[1].attach(3); servos[2].attach(4); servos[3].attach(5); delay(50); income[0]=spiserial.read(); delay(2); income[1]=spiserial.read(); delay(2); 56

64 Appendix E WiFly_FinalReceive.pde income[2]=spiserial.read(); //Test print Serial.print("x:"); Serial.println(income[0]); Serial.print(" y:"); Serial.println(income[1]); Serial.print(" w:"); Serial.println(income[2]); //End test print int value = 0; //Left plate if(income[0]<=24){ servos[0].write(24); servos[0].detach(); else if(income[0]>=160){ servos[0].write(160); servos[0].detach(); else{ servos[0].write(income[0]); servos[0].detach(); if(income[1]<=33){ servos[1].write(180-33); servos[1].detach(); else if(income[1]>=161){ servos[1].write( ); servos[1].detach(); else{ servos[1].write(180-income[1]); servos[1].detach(); //End Left plate //Right plate if(income[0]<=33){ servos[2].write(180-33); servos[2].detach(); else if(income[0]>=155){ servos[2].write( ); servos[2].detach(); 57

65 Appendix E WiFly_FinalReceive.pde else{ servos[2].write(180-income[0]); servos[2].detach(); if(income[1]<=33){ servos[3].write(180-33); servos[3].detach(); else if(income[1]>=157){ servos[3].write( ); servos[3].detach(); else{ servos[3].write( 180-income[1]); servos[3].detach(); //End right plate //Water if(income[2]==1){ digitalwrite(22, HIGH); else{ digitalwrite(22, LOW); //End water servos[0].detach(); servos[1].detach(); servos[2].detach(); servos[3].detach(); // End loop 58

66 Appendix F Appendix F Specifikationer för Arduino Mega ADK Microcontroller ATmega2560 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 54 (of which 14 provide PWM output) Analog Input Pins 16 DC Current per I/O Pin 40 ma DC Current for 3.3V Pin 50 ma Flash Memory 256 KB of which 8 KB used by bootloader SRAM 8 KB EEPROM 4 KB Clock Speed 16 MHz 59

67 Appendix G Appendix G Radio egenskaper för RN-131G Parameter Specifications Frequency 2402 ~ 2480MHz Modulation b compatibility : DSSS(CCK-11, CCK-5.5, DQPSK-2, DBPSK-1) g : OFDM (default) Channel intervals 5MHz Channels 1-14 Transmission rate (over the air) 1 11Mbps for b / 6 54Mbps for g Receive sensitivity -85dBm typ. Output level (Class1) +18dBm Maximum RF input to U.FL connector 10 dbm Egenskaper för RN-131G - Qualified 2.4GHz IEEE b/g transceiver - High throughput, 1Mbps sustained data rate with TCP/IP and WPA2 - Ultra-low power - 4uA sleep, 40mA Rx, 210mA Tx (max) - Small, compact surface mount module - On board ceramic chip antenna and U.FLconnector for external antenna - 8 Mbit flash memory and 128 KB RAM - UART hardware interface - 10 general purpose digital I/O - 8 analog sensor interfaces - Real-time clock for wakeup and time stamping - Accepts 3.3V regulated or 2-3V battery - Supports Adhoc connections - On board ECOS -OS, TCP/IP stacks - Wi-Fi Alliance certified for WPA2-PSK - FCC / CE/ ICS certified and RoHS compliant. 60

68 Appendix H Appendix H Ritning för att skära ut lock och botten till bågen i laserskäraren. 61

Installationsmanual 501 GPS Tracker

Installationsmanual 501 GPS Tracker Installationsmanual 501 GPS Tracker 2011-09-14 1. Beskrivning av enhet: Framsida: Baksida: GSM antenn GPS antenn mini USB kontakt Huvudkontakt Funktionsknapp 2. Sätta i SIM kortet: Följ stegen nedan för

Läs mer

Micro:bit och servomotorer

Micro:bit och servomotorer Micro:bit och servomotorer Servomotorer som beskrivs här är så kallade micro servos och har beteckningarna: FS90 FS90R En servomotor har tre kablar. En brun som kopplas till GND, en röd som är för strömförsörjning

Läs mer

Programmera i teknik - kreativa projekt med Arduino

Programmera i teknik - kreativa projekt med Arduino NYHET! Utkommer i augusti 2017 Smakprov ur boken Programmera i teknik - kreativa projekt med Arduino av Martin Blom Skavnes och Staffan Melin PROJEKT LJUS s 1 I det här projektet kommer du att bygga en

Läs mer

Tack för att du har köpt Mobile WiFi. Med Mobile WiFi-enheten får du en snabb trådlös nätverksanslutning.

Tack för att du har köpt Mobile WiFi. Med Mobile WiFi-enheten får du en snabb trådlös nätverksanslutning. Tack för att du har köpt Mobile WiFi. Med Mobile WiFi-enheten får du en snabb trådlös nätverksanslutning. I det här dokumentet får du information om Mobile WiFi så att du kan börja använda enheten direkt.

Läs mer

Vad finns i paketet. Detta bör finnas i paketet: Ett trådlöst modem, E5 Ett batteri Denna manual samt säkerhetsinformation En USB-kabel En nätadapter

Vad finns i paketet. Detta bör finnas i paketet: Ett trådlöst modem, E5 Ett batteri Denna manual samt säkerhetsinformation En USB-kabel En nätadapter Innehåll Vad finns i paketet. 2 Lär känna ditt modem.. 3 Förbered modemet för användning 5 Starta modemet första gången. 6 Koppla upp en dator via USB.. 8 Koppla upp en eller flera enheter via WiFi.. 9

Läs mer

Börja med att ladda ner appen Blacklens till din mobil. Finns både till iphone på Apple Store och till Android på Google Play.

Börja med att ladda ner appen Blacklens till din mobil. Finns både till iphone på Apple Store och till Android på Google Play. Sida 1 BLACKLENS APPEN Börja med att ladda ner appen Blacklens till din mobil. Finns både till iphone på Apple Store och till Android på Google Play. ANSLUTNING Det finns två sätt att ansluta kameran på:

Läs mer

Manuell SMARTCD.G2 02.2015

Manuell SMARTCD.G2 02.2015 02.2015 2 / 14 1 Avsedd användning... 3 2 Säkerhetsanvisningar... 4 3 Ingår i leveransen... 5 4 Anslutning till en dator/bärbar dator... 6 5 Ladda batterierna... 7 6 Driftsättning... 8 7 Konfigurering

Läs mer

SP-1101W/SP-2101W Quick Installation Guide

SP-1101W/SP-2101W Quick Installation Guide SP-1101W/SP-2101W Quick Installation Guide 05-2014 / v1.0 1 I. Produktinformation I-1. Paketets innehåll I-2. Omkopplare smart kontakt Frontpanel Snabbinstallationsguide CD med snabbinstallationsgui den

Läs mer

n-abler STYRKULA Handbok Underhåll Avfallshantering Förbrukad produkt ska hanteras som elektronikavfall

n-abler STYRKULA Handbok Underhåll Avfallshantering Förbrukad produkt ska hanteras som elektronikavfall Underhåll n-abler STYRKULA n-abler styrkula har inga utbytbara eller reparerbara delar. Om reparation blir nödvändig var vänlig kontakta er leverantör. För ytterligare information eller frågor, kontakta

Läs mer

Fast grön WiFi/IP - router ansluten Fast orange WiFi - direkt ansluten. Blinkar orange söker WiFi anslutning Fast röd inspelning på

Fast grön WiFi/IP - router ansluten Fast orange WiFi - direkt ansluten. Blinkar orange söker WiFi anslutning Fast röd inspelning på LAWMATE WIFI/IP KAMERA - START 1. Se till att kameran är ansluten till vägguttag eller att batteriet är laddat 2. Ta fram mobiltelefon eller urfplatta som ska användas vid installationen 3. Se till att

Läs mer

Instruktion elektronikkrets till vindkraftverk

Instruktion elektronikkrets till vindkraftverk Instruktion elektronikkrets till vindkraftverk Färdig koppling D1 R2 IC1 R1 D2 R3 D3 R7 R5 T1 T2 R6 T3 R6 Uppgiften innehåller: Namn Värde Utseende Antal R1 11 kω brun, brun, svart, röd, brun 1 st R2 120

Läs mer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se

Läs mer

n-abler PRO STYRKULA Handledning

n-abler PRO STYRKULA Handledning Underhåll n-abler PRO har inga utbytbara eller reparerbara delar. Om reparation blir nödvändig var vänlig kontakta er leverantör. n-abler PRO STYRKULA För ytterligare information eller frågor, kontakta

Läs mer

Felsökning-självhjälp. Punkt 1. Kontrollera bredbandsutrustningen.

Felsökning-självhjälp. Punkt 1. Kontrollera bredbandsutrustningen. Felsökning-självhjälp All elektronisk utrustning kan sluta att fungera på grund av att den blir gammal, utsätts för åverkan eller att naturfenomen (åska, vatten och eld) slår ut den. Men mest normalt är

Läs mer

Batteri. Lampa. Strömbrytare. Tungelement. Motstånd. Potentiometer. Fotomotstånd. Kondensator. Lysdiod. Transistor. Motor. Mikrofon.

Batteri. Lampa. Strömbrytare. Tungelement. Motstånd. Potentiometer. Fotomotstånd. Kondensator. Lysdiod. Transistor. Motor. Mikrofon. Batteri Lampa Strömbrytare Tungelement Motstånd Potentiometer Fotomotstånd Kondensator Lysdiod Transistor Motor Mikrofon Högtalare Ampèremeter 1 1. Koppla upp kretsen. Se till att motorns plus och minuspol

Läs mer

INSTALLATIONSGUIDE Com Hem WiFi Hub L1 Bredband Fastighet FiberLAN

INSTALLATIONSGUIDE Com Hem WiFi Hub L1 Bredband Fastighet FiberLAN INSTALLATIONSGUIDE Com Hem WiFi Hub L1 Bredband Fastighet FiberLAN Power Internet Wireless 2.4 GHz Wireless 5Ghz WPS Ethernet Voice TV 2.4 5 Namn trådlöst nätverk (SSID): comhemxxxxxx Lösenord trådlöst

Läs mer

RADIOMOTTAGARE RGBW SOM STYR EN GEMENSAM ANOD FÖR LED-strip

RADIOMOTTAGARE RGBW SOM STYR EN GEMENSAM ANOD FÖR LED-strip TELECO AUTOMATION SRL - Via dell Artigianato, - 0 Colle Umberto (TV) ITALIEN TELEFON: ++9.0.5 FAX: ++9.0.5 - www.telecoautomation.com Det här dokumentet tillhör Teleco Automation Srl som förbehåller sig

Läs mer

AirPatrol WiFi Version 2 Fullständig Manual. for ios V4.2

AirPatrol WiFi Version 2 Fullständig Manual. for ios V4.2 AirPatrol WiFi Version 2 Fullständig Manual for ios V4.2 Index 3 - Vad gör AirPatrol WiFi? 4 - Lampor och knappar 5 - WiFi-nätverk. 6 - Installation av AirPatrol WiFi 7 - Steg för Snabb Inställning 8 -

Läs mer

Startinstruktion för Swivl Robot den automatiska kameramannen. Version 1.1 2014-10-22

Startinstruktion för Swivl Robot den automatiska kameramannen. Version 1.1 2014-10-22 Startinstruktion för Swivl Robot den automatiska kameramannen Version 1.1 2014-10-22 Swivl Robot kan användas för att spela in en föreläsning eller lektion. Kameran som är placerad på Roboten följer automatiskt

Läs mer

BRUKSANVISNING APPlicator kontaktlåda för ios & Android*

BRUKSANVISNING APPlicator kontaktlåda för ios & Android* BRUKSANVISNING APPlicator kontaktlåda för ios & Android* 1 Kompatibilitet APPlikator är kompatibel med följande ios-enheter: ipad - alla modeller ipod Touch - 3:e generationen och senare iphone - 3GS och

Läs mer

INSTALLATIONSGUIDE Technicolor TG389ac Bredband Fastighet FiberLAN

INSTALLATIONSGUIDE Technicolor TG389ac Bredband Fastighet FiberLAN INSTALLATIONSGUIDE Technicolor TG389ac Bredband Fastighet FiberLAN Power Internet Wireless GHz Wireless Ghz Power Internet Wireless GHz Wireless Ghz Power Internet Wireless GHz Wireless Ghz INSTALLATION

Läs mer

SeniorNet Huddinge Dagens tema: Trådlösa uppkopplingar

SeniorNet Huddinge Dagens tema: Trådlösa uppkopplingar SeniorNet Huddinge 2018-04-26 Dagens tema: Trådlösa uppkopplingar Olika sätt att koppla upp sig trådlöst WIFI eller Bluetooth Bluetooth används vid uppkoppling på korta avstånd. Strömsnålt. Går ej att

Läs mer

Manual Lead tracking. Version 1.0 2013-12-12

Manual Lead tracking. Version 1.0 2013-12-12 Manual Lead tracking Version 1.0 2013-12-12 Innehållsförteckning 1 Inledning... 3 1.1 Om manualen... 3 1.2 Om tjänsten... 3 2 Använd tjänsten för första gången... 4 2.1 Installera applikationen... 4 2.2

Läs mer

MOBILT INKÖP MANUAL VERSION 3. Sida 1

MOBILT INKÖP MANUAL VERSION 3. Sida 1 MOBILT INKÖP MANUAL VERSION 3 Sida 1 Allmän beskrivning... 3 Orderprocess... 3 Ute i butiken... 3 På kontoret/vid datorn... 3 Mobilt inköp handdator... 5 Användande... 5 Order översikt... 5 1. Ny order...

Läs mer

Quick start manual. Smart-House 2015-04-20. Rev 1.1

Quick start manual. Smart-House 2015-04-20. Rev 1.1 Quick start manual Smart-House 2015-04-20 Rev 1.1 Innehåll Förord... 3 Programvara... 4 Hämta programvara... 4 PC krav... 4 Dokumentation... 5 Manualer... 5 Projektdokumentation... 5 Smart-Dupline... 5

Läs mer

Tack för att du har köpt CPE. CPE-enheten ger dig trådlös nätverksanslutning med hög hastighet.

Tack för att du har köpt CPE. CPE-enheten ger dig trådlös nätverksanslutning med hög hastighet. Snabbstart Tack för att du har köpt CPE. CPE-enheten ger dig trådlös nätverksanslutning med hög hastighet. I det här dokumentet får du den information om CPE som du behöver för att börja använda enheten

Läs mer

MINIX NEO A2 Användarguide

MINIX NEO A2 Användarguide MINIX NEO A2 Användarguide Produkt Information Tack för att du köpt en MINIX NEO A2. MINIX NEO A2 är en trådlös air mouse + dubbelsidigt tangentbord med inbyggd mikrofon och högtalare. MINIX NEO A2 utnyttjar

Läs mer

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning Vad är kommunikation? Kommunikation är ett vitt begrepp. Vi använder det för att benämna till exempel ett samtal eller att vi själv förflyttar oss med till exempel tåg eller buss. Kommunikation kommer

Läs mer

iloq P10S-programmeringsenhet Manual

iloq P10S-programmeringsenhet Manual iloq P10S-programmeringsenhet Manual INNEHÅLL ALLMÄNT... 3 ATT ANVÄNDA PROGRAMMERINGSENHETEN... 5 Strömanslutning... 5 Programmera cylinder... 5 Programmera nyckel... 5 Läsa av händelseloggen... 6 Batteribyte...

Läs mer

Konfigurationsdokument M1

Konfigurationsdokument M1 Filename: Konfigurationsdokument M1 Page: 1(15) Konfigurationsdokument M1 Revision history Date Version Changes Changed by 2014-10-24 0.1 First draft AB 2015-01-21 0.2 Uppdaterad AB 2015-01-29 0.3 Uppdaterad

Läs mer

Instruktion för I/O-Kort, med USB-anslutning.

Instruktion för I/O-Kort, med USB-anslutning. Instruktion för I/O-Kort, med USB-anslutning. I/O-kortet har: 8 digitala ingångar. Avsedda för slutande kontakter. Gemensam plus-matning 15Volt. Öppen ingång = 0. 8 digitala utgångar. Utgångskrets typ

Läs mer

IdeaTab A3000. Snabbstartsguide v1.0

IdeaTab A3000. Snabbstartsguide v1.0 IdeaTab A3000 Snabbstartsguide v1.0 Välkommen Frontkamera Volymknapp Läs den här guiden noga innan du börjar använda din IdeaTab. Guiden ger dig tips för hur du ställer in och använder din IdeaTab. Informationen

Läs mer

Quickstart manual. Rev SHTOOL Quickstart manual Smart-House

Quickstart manual. Rev SHTOOL Quickstart manual Smart-House Quickstart manual Rev. 2.3 2017-09-14 SHTOOL 6.5.33 1 Innehåll 1 FÖRORD... 3 2 PROGRAMVARA... 4 2.1 Hämta programvara... 4 2.2 PC krav... 4 3 DOKUMENTATION... 5 3.1 Manualer... 5 3.2 Projektdokumentation...

Läs mer

Installationsguide / Användarmanual

Installationsguide / Användarmanual (Ver. 2.6.0) Installationsguide / Användarmanual Innehåll 1. Välkommen Sid 1 Välkommen som Internet kund hos Seth s Bredband Kontrollera att din Internetlåda innehåller: 2. Anslutningsguide Sid 2 Koppla

Läs mer

krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan.

krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan. energi krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan. elektricitet är när negativa och positiva laddningar dras till varandra.

Läs mer

Systemskiss. LiTH Autonom bandvagn med stereokamera 2010-09-24. Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

Systemskiss. LiTH Autonom bandvagn med stereokamera 2010-09-24. Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad Gustav Hanning Version 1.0 Status Granskad Godkänd Jonas Callmer 2010-09-24 1 PROJEKTIDENTITET 2010/HT, 8Yare Linköpings tekniska högskola, institutionen för systemteknik (ISY) Namn Ansvar Telefon E-post

Läs mer

Swing-Gate. ECO B/S Installation av Swing Gate

Swing-Gate. ECO B/S Installation av Swing Gate Swing-Gate ECO B/S Installation av Swing Gate Generellt Nedanstående manual berör installation av motorer som omfattas av SKANDIMATIK`S produktprogram. Kontrollpanelen innehåller följande EU standarder:

Läs mer

Invest Living Smart controller M

Invest Living Smart controller M Användarmanual Invest Living Smart controller M Ladda ner till din Smartphone (IOS 7.0 eller senare, Android 4.0 eller senare) Invest Living Smart Controller Innehållsförteckning 1. Specifikation / Info

Läs mer

Felsökningsguide för Asgari-kameror

Felsökningsguide för Asgari-kameror Felsökningsguide för Asgari-kameror Välkommen till vår felsökningsguide! Här finner du lösningar på de vanligaste problemen som kan uppstå på vissa datorer och enheter. Om du fortfarande behöver mer hjälp

Läs mer

AirPatrol WiFi fullständig bruksanvisning V1.0

AirPatrol WiFi fullständig bruksanvisning V1.0 AirPatrol WiFi fullständig bruksanvisning V1.0 Index Vad gör AirPatrol WiFi? 3 Ljus och knappar 4 WiFi Network 5 Installation av AirPatrol WiFi 6 Skickande av kommandon 24 Tillägg / ta bort favoriter 25

Läs mer

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit Vad är en UART? Beteckningen UART är en förkortning för det engelska uttrycket Universal Asynchronous Receiver Transmitter, vilket översatt till svenska blir ungefär Universell Asynkron Mottagare/Sändare.

Läs mer

Pulsmätare med varningsindikatorer

Pulsmätare med varningsindikatorer Pulsmätare med varningsindikatorer Elektro- och informationsteknik Projektrapport, EITF11 Digitala Projekt Charlie Hedhav Sofia Johansson Louise Olsson 2016-05-17 Abstract During the course Digitala Projekt

Läs mer

Falck 6604 VaktFalk TeleLarm

Falck 6604 VaktFalk TeleLarm Bruksanvisning Falck 6604 VaktFalk TeleLarm Artikelnummer: 300 800 Innehållsförteckning Inledning... 3 Översikt över tillkopplingar och ingångar... 4 Introduktion i programmering av Vaktfalken... 5 Uppstart...

Läs mer

BRUKSANVISNING. För Gree+ appen för pumpar med inbyggd wifi. Distributör: Gree v.2. Tillfällavägen Sävedalen

BRUKSANVISNING. För Gree+ appen för pumpar med inbyggd wifi. Distributör: Gree v.2. Tillfällavägen Sävedalen Gree+ 1804 v.2 BRUKSANVISNING För Gree+ appen för pumpar med inbyggd wifi Distributör: Tillfällavägen 15 433 63 Sävedalen www.scanmont.se Tack för att du valde denna klimatanläggning. Läs noga igenom bruksanvisningen

Läs mer

Z-LYFTEN PRODUKTION AB MONTERINGSANVISNING

Z-LYFTEN PRODUKTION AB MONTERINGSANVISNING Z-LYFTEN PRODUKTION AB MONTERINGSANVISNING 55508 Radiomanöverdon 2008-03-19 Försäljning/Sales/Verkauf Mossvägen 8, 641 49 KATRINEHOLM,SWEDEN Telephone: +46 150-489550 Telefax: +46 150-489551 E-mail: zepro@zepro.com

Läs mer

Installationsguide. Lynx Mobile RxTx. Dokumentversion: 1.3/131106

Installationsguide. Lynx Mobile RxTx. Dokumentversion: 1.3/131106 Installationsguide Lynx Mobile RxTx Dokumentversion: 1.3/131106 Innehåll Introduktion... 3 1.1 Lynx Mobile RxTx komponenter... 3 1.2 Funktion... 4 1.3 Flera platser... 4 Installation... 5 1.4 Lynx Mobile

Läs mer

Ubiquiti M5 Trådlös WiFi-länk för VAKA-system

Ubiquiti M5 Trådlös WiFi-länk för VAKA-system Manual Uppdaterad 2018-10-25 Ubiquiti M5 Trådlös WiFi-länk för VAKA-system Axema Access Control AB Box 90215 120 23 Stockholm, Sweden 08-722 34 40 info@axema.se www.axema.se Ubiquiti M5-16 Introduktion

Läs mer

PCI ETHERNET CARD 100 MB

PCI ETHERNET CARD 100 MB PCI ETHERNET CARD 100 MB Användarhandbok Version 1.0/Winbond Upphovsrätt Ingen del av denna manual får utan tillverkarens föregående skriftliga tillstånd reproduceras eller överlämnas, i någon form eller

Läs mer

INSTALLATIONS- OCH BRUKSANVISNING AV STYRENHET FÖR EL-BASTUAGGREGAT UKU

INSTALLATIONS- OCH BRUKSANVISNING AV STYRENHET FÖR EL-BASTUAGGREGAT UKU INSTALLATIONS- OCH BRUKSANVISNING AV STYRENHET FÖR EL-BASTUAGGREGAT UKU 2 INNEHÅLL 1. FÖRE INSTALLATIONEN... 2 2. INSTALLATION AV STYRENHET UKU... 3 SYRPANEL - UKU... 4 KONTAKTORLÅDA... 4 TEMPERATURGIVARE

Läs mer

ENKEL INTRODUKTIO Du kanske länge har funderat vad alla begrepp som Wifi, surfplatta och app står för, kanske detta dokument kan lösa dina problem.

ENKEL INTRODUKTIO Du kanske länge har funderat vad alla begrepp som Wifi, surfplatta och app står för, kanske detta dokument kan lösa dina problem. ENKEL INTRODUKTIO Du kanske länge har funderat vad alla begrepp som Wifi, surfplatta och app står för, kanske detta dokument kan lösa dina problem. Katarina Eriksson ipad ipad +Äldre=sant Enkel beskrivning

Läs mer

JVC CAM Control (för Windows) Användarguide

JVC CAM Control (för Windows) Användarguide JVC CAM Control (för Windows) Användarguide Svenska Detta är en instruktionsmanual för mjukvaran (för Windows) för Live Streaming Camera GV-LS2/GV-LS1 skapad av JVC KENWOOD Corporation. Operatörssystemet

Läs mer

Setup Internet Acess CSE-H55N

Setup Internet Acess CSE-H55N Setup Internet Acess CSE-H55N Installation och konfigurering av converter (omvandlare) CSE-H55N för tillgång till internet Rev 1.0 September 2014 Översatt till Svenska Innehåll 1. Installationsverktyg...

Läs mer

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04 Formula Blue Digitala Projekt 8p Jesper Ferm E02 Carl Hakenäs E04 Abstract The purpose with this project was to get some understanding how Bluetooth works and how to use it in practical applications. A

Läs mer

DIGITALA PROJEKT Väderstation

DIGITALA PROJEKT Väderstation DIGITALA PROJEKT Väderstation Christian Lindquist, E03 Leonardo Bello, E03 Abstract Almost everybody has some kind of temperature measurement device in their home. The latest in this industry are more

Läs mer

Startboxen innehåller följande utrustning. Modem Nätverkskabel Strömadapter

Startboxen innehåller följande utrustning. Modem Nätverkskabel Strömadapter Manual Huawei B260a Startboxen innehåller följande utrustning Modem Nätverkskabel Strömadapter 2 3 Modem Huawei B260a Betydelsen av modemets lampor 1. 2. 3. 4. 5. 6. 7. 8. Anslutning för extern antenn

Läs mer

PowerView Motorisering Smarta gardiner som gör ditt liv lite enklare

PowerView Motorisering Smarta gardiner som gör ditt liv lite enklare PowerView Motorisering Smarta gardiner som gör ditt liv lite enklare Scene Quickstart guide The Art of Window Styling En fantastisk utveckling för gardinvärlden. Denna guide hjälper dig att enkelt komma

Läs mer

Vanliga frågor och svar

Vanliga frågor och svar Vanliga frågor och svar Anslutning och konfiguration 2014-04-21 TaHoma, ta kontroll over ditt hem! 1. Hur upprättar jag anslutningarna? Koppla först boxen till bredbandsmodemet med hjälp av medföljande

Läs mer

Robotfotboll med Arduino

Robotfotboll med Arduino Robotfotboll med Arduino Av Staffan Melin och Martin Blom Bild & form-skolan, Masthugget, Göteborg 2015 Staffan Melin, staffan.melin@oscillator.se Martin Blom, martinblomblom@hotmail.com Detta verk är

Läs mer

Ipad i teknikundervisningen

Ipad i teknikundervisningen Ipad i teknikundervisningen Innan vi börjar 1. Anslut till MAUs nätverk 2. Om du har platta: ladda ner appen micro:bit från Appstore eller Google Play 3. Lite material som berör passet: https://tinyurl.com/cetis-malmo

Läs mer

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

Snabbstartsguide. Mobil WiFi ZTE MF910

Snabbstartsguide. Mobil WiFi ZTE MF910 TA 82 145 03-13 Snabbstartsguide Mobil WiFi ZTE MF910 Innehållsförteckning Välkommen...2 Lär känna din mobila WiFi...3 Informationsikoner...4 Förberedelser... 5-6 Logga in på enhetens administrationssida...7

Läs mer

Idrifttagande av Truma inet Systemet. En praktisk komplettering till monteringsanvisningen

Idrifttagande av Truma inet Systemet. En praktisk komplettering till monteringsanvisningen Idrifttagande av Truma inet Systemet En praktisk komplettering till monteringsanvisningen Förutsättningar och beståndsdelar för Truma inet Systemet Truma inet Box styrcentralen för Truma inet Systemet

Läs mer

Sirius II Installation och Bruksanvisning

Sirius II Installation och Bruksanvisning Sirius II Installation och Bruksanvisning Innehåll 1. Introduktion... 2. Installation av Sirius II programvara... 3. Anslutning Data Linker interface.... 4. Sirius II funktioner.... 5. Bruksanvisning....

Läs mer

BILAGA. En handmanövrerad mekanisk apparat för dosering av vätska till en behållare för titreranalys (så kallad digital titreringsapparat).

BILAGA. En handmanövrerad mekanisk apparat för dosering av vätska till en behållare för titreranalys (så kallad digital titreringsapparat). En handmanövrerad mekanisk apparat för dosering av vätska till en behållare för titreranalys (så kallad digital titreringsapparat). Apparaten består av en justerbar mekanisk fördelare med plats för en

Läs mer

Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till. elvisualiseringsverktyg

Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till. elvisualiseringsverktyg ordlista Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till elvisualiseringsverktyg 2 3 datorgrafik 4 Datorgrafik är bilder skapade med hjälp av en dator, ofta i särskilda

Läs mer

Laborationskort - ML4

Laborationskort - ML4 microlf ML Laborationskort - ML ML är ett enkelt laborationskort avsett för inledande laborationsövningar i Datorteknik. Kortet innehåller 0 olika sektioner som enkelt kopplas samman via 0-polig flatkabel.

Läs mer

Parrot UNIKA. Quick start guide

Parrot UNIKA. Quick start guide Parrot UNIKA Quick start guide Parrot UNIKA Installationsscheman... Installation... Parrot MKi Mode A... Mode B... Mode C... Mode D... Parrot ASTEROID Mode A... Mode B... Mode C... Mode D... Mode E...

Läs mer

Säkerhetskopiera mobilen

Säkerhetskopiera mobilen Säkerhetskopiera mobilen gratis och helautomatiskt 7 Bästa gratistipsen 7 För Android, Iphone och Windows Phone 7 Säkerhetskopiera till Dropbox. Så fixar du automatisk säkerhetskopiering av mobilen Visst

Läs mer

Manual Sportident Onlinekontroll via GPRS

Manual Sportident Onlinekontroll via GPRS Manual Sportident Onlinekontroll via GPRS 2010-08-22 Komponenter För att använda onlinekontroll över GPRS behövs tre delar: GPRS modul (GPRS-modem med samlingsbox och batterier). PC-mjukvara BBRClient

Läs mer

Innehållsförteckning. L3044_MobilWiFi_Manual_110x90.indd 1 2013-03-27 14

Innehållsförteckning. L3044_MobilWiFi_Manual_110x90.indd 1 2013-03-27 14 Innehållsförteckning Välkommen... 2 Lär känna din mobila WiFi... 3 Informationsikoner... 4 Förberedelser... 5-6 Logga in på enhetens administrationssida...7 Anslut till internet via mobilt nätverk - 4G

Läs mer

TRUST USB VIDEO EDITOR

TRUST USB VIDEO EDITOR TRUST USB VIDEO EDITOR S Anvisningar för snabb installation Version 1.0 1 1. Inledning Denna handbok är avsedd för användare av Trust USB Video Editor. Du måste ha viss erfarenhet av datorer för att kunna

Läs mer

BYGG-VAKT. v i d s t r ö m a v b r o t t. Manual Bygg-Vakt

BYGG-VAKT. v i d s t r ö m a v b r o t t. Manual Bygg-Vakt BYGG-VAKT L a r m a r v i d s t r ö m a v b r o t t Manual Bygg-Vakt 1. Produktinformation....... 2. Funktion......... 3. Användningsområden......... 4. Tekniska specifikationer......... 5. Komma igång

Läs mer

Programmering av. PADDY mini

Programmering av. PADDY mini multimedia Programmering av PADDY mini art. nr: CCS037 PRODUKTER SOM ANVÄNDS I DETTA EXEMPEL: PADDY mini CCS037 PADDY mini CCS012 PADDY mini CCS500 VSCOM USB TILL SERIELL DB9 LAPTOP MED WINDOWS 7 QUICKPAD

Läs mer

Tack för att du valde GoXtreme Wifi Control- funktionskamera. Läs bruksanvisningen noggrant innan du. använder kameran. Kamera: Delar och knappar

Tack för att du valde GoXtreme Wifi Control- funktionskamera. Läs bruksanvisningen noggrant innan du. använder kameran. Kamera: Delar och knappar Bruksanvisning Tack för att du valde GoXtreme Wifi Control- funktionskamera. Läs bruksanvisningen noggrant innan du använder kameran. Kamera: Delar och knappar 1 1. Avtryckaren 8. Mikro USB -koppling 2.

Läs mer

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN PROJEKT LJUD PROJEKT LJUD s 1 I det här projektet ska du koppla en krets som innehåller en högtalare och skriva ett program som får högtalaren att spela toner och melodier. Materiel Arduino dator kopplingsdäck

Läs mer

INSTALLATIONSGUIDE Com Hem WiFi Hub L1

INSTALLATIONSGUIDE Com Hem WiFi Hub L1 INSTALLATIONSGUIDE Com Hem WiFi Hub L1 INTRODUKTION Så ska det se ut när det är klart! På bilden ser du hur kablarna ska vara kopp lade när du har installerat klart. Följ bara de olika stegen i den här

Läs mer

Installations- och bruksanvisning för Gree Smart app: Hansol -seriens luftvärmepump med WiFi

Installations- och bruksanvisning för Gree Smart app: Hansol -seriens luftvärmepump med WiFi 02/2016, ed. 1 BRUKSANVISNING Installations- och bruksanvisning för Gree Smart app: Hansol -seriens luftvärmepump med WiFi Distributör: Tillfällavägen 15 433 63 Sävedalen www.scanmont.se Tack för valet

Läs mer

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: 1.0 2013 (OS)

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: 1.0 2013 (OS) LABORATION DATORKONSTRUKTION TSEA83 UART Version: 1.0 2013 (OS) Namn och personnummer Godkänd 1 blank sida 2 Innehåll 1 Inledning 5 1.1 Syfte................................. 5 1.2 Förberedelser............................

Läs mer

HDMI, DisplayPort och USB. Utbildningsmaterial med fokus på certifieringar

HDMI, DisplayPort och USB. Utbildningsmaterial med fokus på certifieringar HDMI, DisplayPort och USB Utbildningsmaterial med fokus på certifieringar 1 HDMI 2 2 HDMI versioner HDMI versioner har olika specifikationer och stödjer olika funktioner. Alla nya specifikationer är bakåtkompatibla

Läs mer

Inlämningsuppgift 12b Router med WiFi. Här ska du: Installera och konfigurera en trådlös router i nätverket.

Inlämningsuppgift 12b Router med WiFi. Här ska du: Installera och konfigurera en trådlös router i nätverket. DATORTEKNIK 1A Router med WiFi Inlämningsuppgift 12b Router med WiFi Namn: Datum: Här ska du: Installera och konfigurera en trådlös router i nätverket. Du behöver ha tillgång till följande: Minst två datorer,

Läs mer

BRUKSANVISNING iswitch kontakt med inbyggd kontaktlåda

BRUKSANVISNING iswitch kontakt med inbyggd kontaktlåda BRUKSANVISNING iswitch kontakt med inbyggd kontaktlåda 1 Kompatibilitet iswitch är kompatibel med följande ios-enheter: ipad - alla modeller ipod Touch - 3:e generationen och senare iphone - 3GS och senare

Läs mer

hjälpsamma team via cspolaroid@camarketing.com.

hjälpsamma team via cspolaroid@camarketing.com. Polaroid ZIP Bläckfria Fototryck Bruksanvisning {Allmän Produktbild} Hej! Välkommen till Polaroid -familjen. Den här bruksanvisningen erbjuder dig en kort genomgång av din nya Mini-skrivare. För mer information

Läs mer

Manual Skogsappen - Hemkomstkontroll

Manual Skogsappen - Hemkomstkontroll Manual Skogsappen - Hemkomstkontroll Detta dokument utgör användarhandledningen till funktionen hemkomstkontroll i mobilappen Skogsappen som tillhör tjänsten epiforest. E p i s c o p e M o n i t o r i

Läs mer

PowerView Motorisering Smarta gardiner som gör ditt liv lite enklare

PowerView Motorisering Smarta gardiner som gör ditt liv lite enklare PowerView Motorisering Smarta gardiner som gör ditt liv lite enklare Scene Quickstart guide En fantastisk utveckling för gardinvärlden. Denna guide hjälper dig att enkelt komma igång med ditt nya PowerView

Läs mer

ANVÄNDARMANUAL SESAM 800 MOBIL BAKGAVELLYFT 942913-000 -C0

ANVÄNDARMANUAL SESAM 800 MOBIL BAKGAVELLYFT 942913-000 -C0 ANVÄNDARMANUAL SESAM 800 MOBIL BAKGAVELLYFT 942913-000 -C0 2 (16) Innehåll 1 Introduktion 3 2 Omfattning 3 3 Teknisk specifikation 4 4 Kort beskrivning av systemet 5 4.1 Mottagare 5 4.2 Sändare 5 5 Beskrivning

Läs mer

HDMI, Displayport och USB. Utbildningsmaterial med fokus på certifieringar

HDMI, Displayport och USB. Utbildningsmaterial med fokus på certifieringar HDMI, Displayport och USB Utbildningsmaterial med fokus på certifieringar 1 HDMI 2 2 HDMI versioner HDMI versioner har olika specifikationer och stödjer olika funktioner. Alla nya specifikationer är bakåtkompatibla

Läs mer

The Intelligent Timer

The Intelligent Timer The Intelligent Timer Linnea Karell och Oscar Bagge, I10 Handledare: Bertil Lindvall 2013-05-20 Abstract The objective of this project was to build a prototype of a digital timer. The product design specification

Läs mer

n-abler JOYSTICK Handbok Underhåll Avfallshantering Förbrukad produkt ska hanteras som elektronikavfall

n-abler JOYSTICK Handbok Underhåll Avfallshantering Förbrukad produkt ska hanteras som elektronikavfall Underhåll n-abler joystick har inga utbytbara eller reparerbara delar. Om reparation blir nödvändig var vänlig kontakta er leverantör. n-abler JOYSTICK För ytterligare information eller frågor, kontakta

Läs mer

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia Konstruktion av en radiostyrd legobil Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia 1 1.Innehållsförtäckning Rapport Radiostyrd LEGO bil...1 1. Innehållsförtäckning...2 2.0 Inledning...3

Läs mer

FlyBot. Copyright Sagitta Pedagog AB

FlyBot. Copyright Sagitta Pedagog AB FlyBot FlyBot är en flyplansmodell med fyra lysdioder, en tuta och en motor som driver propellern. Här lär du dig att programmera DC-motorns fart och riktning. 41 Robotfakta LED-kort På LED-kortet sitter

Läs mer

Produktutvecklingsprocessen. (e)lvis

Produktutvecklingsprocessen. (e)lvis ordlista (e)lvis datorgrafik...5 effekt...7 elektricitet...9 energi...11 grenuttag...13 HDMI...15 komponenter...17 kretskort...19 kwh...21 minidator...23 minneskort...25 projektor...27 protokoll...29 radiomodul...31

Läs mer

iphone/ipad Snabbguide för anställda på HB

iphone/ipad Snabbguide för anställda på HB iphone/ipad Snabbguide för anställda på HB Innehållsförteckning: Första uppstarten... 1 Apple-ID... 1 Hitta min iphone... 1 Trådlöst nätverk (Wi-Fi)... 2 Kalender, E-post & Kontakter... 3 GW-Sync konfiguration...

Läs mer

Salusfin s intelligenta värme kontroll: Installationsguiden

Salusfin s intelligenta värme kontroll: Installationsguiden Salusfin s intelligenta värme kontroll: Installationsguiden Du hittar detaljerade instruktioner på våra supportsidor angående alla steg som ska utföras under installationen. Under supportsidorna hittas

Läs mer

Installationsmanual DLD Wide Range (GPRS) www.vdo.se. Remote Download Device (DLD) gör överföringar av färdskrivardata kostnadseffektiv 2012-01-11

Installationsmanual DLD Wide Range (GPRS) www.vdo.se. Remote Download Device (DLD) gör överföringar av färdskrivardata kostnadseffektiv 2012-01-11 Installationsmanual DLD Wide Range (GPRS) Remote Download Device (DLD) gör överföringar av färdskrivardata kostnadseffektiv och enkel. www.vdo.se Installation av DLD Wide range (GPRS) DTCO DLD Den nya

Läs mer

Smart Rogic Manual. Robostick Manual

Smart Rogic Manual. Robostick Manual Smart Rogic Manual Robostick Manual Ladda ner Smart Rogic Programfönster Programmera 4 Kopiera / Klipp ut 5 Ta bort symbol 6 Ångra / Gör om 7 Funktion 8 Ta bort program 9 Anslut via Bluetooth 0 Överföra,

Läs mer

Roboten. Sida 1 av 11

Roboten. Sida 1 av 11 EV3 ipad Roboten Fyra output portar A,B,C och D(motorer) Fyra input portar 1,2,3 och 4 (sensorer) USB, Bluetooth, eller Wi-Fi koppling 16 MB flash minne 64 MB RAM SD Card Port: 32 GB Flera inbyggda verktyg

Läs mer

EV3 Roboten. Sida 1 av 13

EV3 Roboten. Sida 1 av 13 EV3 Roboten Fyra output portar A,B,C och D(motorer) Fyra input portar 1,2,3 och 4 (sensorer) USB, Bluetooth, eller Wi-Fi koppling 16 MB flash minne 64 MB RAM SD Card Port: 32 GB Flera inbyggda verktyg

Läs mer

Utseende. 1.Lins 2.Inspelningsknapp 3.Fotograferingsknapp _ SWE 01

Utseende. 1.Lins 2.Inspelningsknapp 3.Fotograferingsknapp _ SWE 01 Utseende 3 2 1 1.Lins 2.Inspelningsknapp 3.Fotograferingsknapp SWE 01 13 4.Micro-USB-port 10 12 11 6 7 8 9 4 5 5.Batteriströmknapp 6.Sida upp-knapp 7.Strömknapp 8.OK-knapp 9.Sida ner-knapp 10.LCD 11.Ljus

Läs mer

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Styrteknik 7.5 hp distans: E-1000 och E-Designer PLC8A:1 E1000 operatörsterminaler En operatörsterminal ger ett gränssnitt mellan männinska-maskin, (MMI människa-maskininteraktion, HMI Human Machine Interface) Alla terminalerna i E1000-serien är utvecklade

Läs mer

Installations- och Programmerings- instruktion GLYDEA

Installations- och Programmerings- instruktion GLYDEA Installations- och Programmerings- instruktion GLYDEA 1 Glydea TM Mått Montering skena 1. Märk ut var hållarna skall sitta 2. Borra i taket eller på väggen där fästena skall sitta 3. Montera fästena 4.

Läs mer