Designspecifikation. Status. David Sandberg, Tobias Lundqvist, Rasmus Dewoon, Marcus Wirebrand Version 1.0. Granskad Godkänd

Relevanta dokument
Systemskiss. Status. David Sandberg, Tobias Lundqvist, Rasmus Dewoon, Marcus Wirebrand Version 1.0. Granskad Godkänd

Testplan. Status. David Sandberg, Tobias Lundqvist, Rasmus Dewoon, Marcus Wirebrand Version 1.2. Granskad Godkänd

Manual. Mini. En Joystickmus för styrning av datorer Point-it! Mini USB Point-it! Mini USB Kula

Projektplan David Sandberg Version 1.0

Det andra alternativet är att ladda upp filer genom att klicka på plustecknet nere till vänster. Man klickar sig in på den mapp som man vill att

Utforska rymden med iphone

Utveckla arbetsmiljö och verksamhet genom samverkan

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

DATASAMORDNING NYHETERNA I CHAOS Utbildning Chaos/Handledning - Nyheterna i Chaos 3/

SE Bruksanvisning. VIKTIGT: Både kanten på torkarbladet och Mr. Ti s uppsamlingsdel ska komma i direkt kontakt med glasrutan.

Dash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.

BÅGSKYTTEFÖRBUNDET MEMBER OF SVERIGES RIKSIDROTTSFÖRBUND AND FÉDERATION INTERNATIONALE DE TIR A L ARC

Foto för Windows 10. för seniorer

Kapitel 12 Dekorera fasad och sektion... 3

För unga vuxna Vuxenutbildning. Den svenska skolan för nyanlända

Manual Milestone 112. Iris Hjälpmedel AB Juni 2011 Ver: 1.01

Systemskiss. Självetablerande sensornätverk med 3G och GPS. Version 0.2. Christian Östman Datum: 15 maj 2008

Föreningen Nordens lokala hemsidor

Syftet med en personlig handlingsplan

LPP laboration. Förmågor: Centralt innehåll: Kunskapskrav:

Testplan. LIPs. LiTH Golfspelande industrirobot med kamera Mats Tjäder Version 1.0. Status. TSRT71 Reglerteknisk projektkurs Mats Tjäder 1

Logga in. Gå in på: Klicka på Logga in. Klicka på den region, kommun eller organisation där din verksamhet finns

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Koncept Katalog 2009

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

PLATINA 1(15) Ett ärende, från början till slut

Sammanfattning av kursdag 2, i Stra ngna s och Eskilstuna

Manual Gamla Akka-plattan

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Kapitel 10 Rumsdefinition... 3

Manual ÄBO Genomförandeplan IBIC Social dokumentation Omsorgspersonal

Hur man spelar 7-manna fotboll

4-6 Trianglar Namn:..

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

Förberedelsematerial för utvecklingssamtal

Manual Ledningskollen i mobilen

Anpassad symbolpalett till teknikövningar i OCAD. Installera symbolpaletten i din dator

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

LiTH. WalkCAM Kravspecifikation. Redaktör Andreas Fältskog Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

för M Skrivtid utbreder sig (0,5 p)

Frågor och svar för föreningar om nya ansökningsregler för aktivitetsbidrag från och med 1 januari 2017

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Skriva B gammalt nationellt prov

Tillståndsmaskiner. 1 Konvertering mellan Mealy och Moore. Ola Dahl och Mattias Krysander Linköpings tekniska högskola, ISY, Datorteknik

Hemsida Arbetsrum. Skapa arbetsrumslista

Fler feriejobb för ungdomar i kommuner och landsting sommaren 2015

Upplägg och genomförande - kurs D

Guide till Wordpress text- och bildredskap

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

Kom igång med RIB Karta 1

Informationsplan för delprojekt Information och utbildning inom Insektsbekämpning 2011

Ljusridå för pekning

Hur skapar man formula r

Menys webbaserade kurser manual för kursdeltagare. Utbildningsplattform: Fronter

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Svensk Bruksanvisning

Anmälan om sjukhusens läkemedelsförsörjning

Kurs: Svenska som andraspråk Kurskod: GRNSVA2 Verksamhetspoäng: 1000

Upprättad Reviderad AVVIKELSE och RISKHANTERING riktlinjer

Sjukgymnasten tipsar om rörelser att göra hemma

Regler för Standard/Mini-Sumo under Robot-SM 2011

MANUAL För externa leverantörer Projektportal Investera

Bra att veta samt tips och trix i SiteVision 3

1,2C 4,6C 1A. X-kuber. strävorna

HARALD. Systemskiss. Version 0.3 Redaktör: Patrik Johansson Datum: 20 februari Status

Office 365 Kompetens 2013 / MB

Programvaruuppdateringar Användarhandbok

Morgonsamling till lågstadier

CAEBBK01 Drag och tryckarmering

Föräldrabroschyr. Björkhagens skola - en skola med kunskap och hjärta. Vad ska barnen lära sig i skolan?

Introduktion till Adobe Acrobat Connect Pro

Hävarmen. Peter Kock

Formation (3-1:4:1-1)

Vad är en webbläsare?

Skogsbruk på ren svenska Lektion 4: Mästare på både förnyelse och återvinning. Tema: Återvinning Ämne: Biologi, Kemi Årskurs: 7-9

Virkade tofflor. Storlek & By: Pratamedrut. pratamedrut.se/blog/virkade tofflor 1

ÖSS jolles Seglarsaga

Vi skall skriva uppsats

När jag har arbetat klart med det här området ska jag:

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Manual BizPart Semesterplan

MULTI COMAI WEBBKALENDER

Utbildningsplan för arrangörer

Teckenuppgift Träningsspel av substantiv och verb Isabelle Örneholm och Sarah Weström

Fullför installation av ELIQ

Externa mediekort. Dokumentartikelnummer: I den här handboken beskrivs hur du använder externa mediekort. Oktober 2005

Jo, Den Talande Boken har så många möjligheter inbyggda, att den kan användas från förskoleklassen och ända upp på högstadiet.

Teknisk rapport. Status. David Sandberg, Tobias Lundqvist, Rasmus Dewoon, Marcus Wirebrand Version 0.3. Granskad Godkänd

Svenska som andraspråk, 1000 verksamhetspoäng

Översikt. Rapport från skolverket. Förändring av matematikprestationerna Grundtankar bakom Pixel

Infobric Ease Snabbguide

Pianospelets grunder- lär hela klassen två låtar på 8-veckor.

Nationell källa för ordinationsorsak kopplad till nationell informationsstruktur

Del A Kundmottagning och kostnadsberäkning för reparation

CHECKLISTA FÖR. Entreprenad. Arbetsplatsens utformning

KA Webb Arbetsmarknadsutbildningar och förberedande utbildningar

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

Lathund. Drift Teknisk Förvaltning Redigera driftåtgärder INFORMATION FRÅN VITEC

Transkript:

Designspecifikation David Sandberg, Tobias Lundqvist, Rasmus Dewoon, Marcus Wirebrand Version 1.0 Status Granskad Godkänd

Projektidentitet Grupp 2, 2010/HT Linköpings Tekniska Högskola, ISY Namn Ansvar Telefon E-mail David Sandberg Projektledare 073-9504672 davsa746@student.liu.se Marcus Wirebrand Test- och kvalitetsansvarig 070-2778625 marwi908@student.liu.se Rasmus Dewoon Designansvarig 070-2326302 rasde529@student.liu.se Tobias Lundqvist Dokumentansvarig 070-7124429 toblu024@student.liu.se E-postlista för hela gruppen: tsbb11mt@googlegroups.com Hemsida: Kund: Datorseende/ISY, LiU Kontaktperson hos kund: Michael Felsberg, mfe@isy.liu.se, 013-282460. Kursansvarig: Michael Felsberg, mfe@isy.liu.se, 013-282460. Handledare: Fredrik Larsson, larsson@isy.liu.se. 1

Innehåll 1 Inledning 4 1.1 Parter..................................... 4 1.2 Syfte och mål................................. 4 1.3 Användning.................................. 4 1.4 Bakgrundsinformation............................ 4 2 Översikt av system 4 2.1 Grov beskrivning av produkten....................... 6 2.2 Gester..................................... 6 3 Delsystem 1 - Hårdvara 6 3.1 Inledande beskrivning av delsystem 1.................... 6 3.2 Komponenter................................. 7 3.2.1 Dator................................. 7 3.2.2 Projektor............................... 7 3.2.3 Kamera................................ 7 3.2.4 Diod.................................. 8 3.2.5 Nätaggregat.............................. 8 3.2.6 Högtalare............................... 8 3.2.7 Labbkort................................ 9 3.2.8 Glasskiva............................... 9 3.2.9 Fläktar................................. 10 3.3 Lådkonstruktion................................ 10 3.4 IR-diodernas kretsschema.......................... 11 3.5 Kopplingsschema............................... 12 4 Delsystem 2 - Mjukvara 12 4.1 Inledande beskrivning av delsystem 2.................... 12 4.2 CaptureVideo................................. 13 4.3 ImageProcessing............................... 13 4.4 Calibrate.................................... 14 4.5 Analyze.................................... 14 4.6 Controller................................... 15 4.7 TUIO..................................... 15 2

Dokumenthistorik Version Datum Utförda förändringar Utförd av Granskad 0.1 2010-09-17 Skapande av dokument. ds, rd, mw, tl 0.2 2010-09-24 Första utkast. ds, rd, mw, tl fl 0.3 2010-09-29 Justerat efter handledares önskemål. ds fl 0.4 2010-09-29 Justerat efter handledares önskemål. ds 0.5 2010-09-30 Designspecifikation klar. ds 3

1 Inledning Syftet med projektet är att tillverka en skärm med inbyggd multi-touch och ritplatta, samt att utveckla ett gränssnitt mot operativsystemet. Målet är att kunna ersätta tavlan i undervisning och diskussioner med multi-touch-skärmen. I projektet ska både hårdsamt mjukvaran utvecklas av projektgruppen. 1.1 Parter Projektets beställare är Michael Felsberg, projektmedlemmar David Sandberg, Marcus Wirebrand, Rasmus Dewoon och Tobias Lundqvist samt handledare Fredrik Larsson. 1.2 Syfte och mål Syftet med projektet är att tillverka en multi-touch-skärm och utveckla ett gränssnitt mot operativsystemet. Målet är att kunna ersätta tavlan i undervisning och diskussioner med multi-touch-skärmen. Mål för projektgruppen är att utöver beställarens krav tillämpa sina förkunskaper inom berörda områden, samt att lära sig mer om de ingående komponenterna och att utvecklas som grupp i projektarbete. 1.3 Användning Användningsområdet för en multi-touch-skärm är att kunna styra program med flertalet fingertryckningar samt fingerrörelser. 1.4 Bakgrundsinformation Beställaren har ett intresse att kunna byta ut normal tavelundervisning med en mer interaktiv undervisning på en multi-touch-skärm. 2 Översikt av system Systemet består av två separata delar. En hårdvarudel samt en mjukvarudel. Mjukvarudelens uppgift är att tolka hårdvarudelens data för att styra operativsystemet. Hårdvarudelen projicerar bilden från OS X på skärmen. IR-dioder belyser skärmen så att tryck på skärmen reflekterar tillbaka IR-ljus. En kamera detekterar IR-ljus och skickar vidare till mjukvarudelen för analys. Mjukvarudelen i systemet ska analysera tryck på skärmen med hjälp av data från kameran. När tryck på skärmen identifierats och lokaliserats ska denna information förmedlas 4

till OS X genom ett existerande API. Figur 1: Ramkonstruktionen och hårdvaran inuti Figur 2: Lådans utsida och glas 5

2.1 Grov beskrivning av produkten Systemets hårdvarukomponenter är en dator, en projektor, en kamera och en skärm att projicera på. IR-dioder kommer sättas i kluster som belyser skärmen. När användaren trycker på skärmen så reflekteras ljuset tillbaka till kameran och kamerabilden skickas till mjukvarudelen för analys. Resultat från mjukvarudelen kopplas till OS X genom befintligt API. 2.2 Gester Användaren kan utföra olika typer av gester med handen för att styra operativsystemet. I tabell 1 återfinns gesternas olika funktioner. Antalet Gest Händelse fingrar 1 Nudda Vänsterklick 1 Drag Makera/flytta 2 Nudda Högerklick 2 Dra uppåt Scrolla up 2 Dra nedåt Scrolla ner 2 Nypa inåt Zooma in 2 Nypa utåt Zooma ut 2 Rotera Rotation 3 Dra åt vänster Gå bakåt 3 Dra åt höger Gå framåt 4 Dra uppåt Dölj alla fönster 4 Dra nednåt Visa alla fönster Tabell 1: Möjliga gester 3 Delsystem 1 - Hårdvara Hårdvarudelen ger ett gränssnitt för användaren mot mjukvarudelen av systemet. 3.1 Inledande beskrivning av delsystem 1 Hårdvarudelen projicerar bilden från OS X på skärmen med en LED-projektor. Anledningen till att en LED-projektor används är för att hålla nere temperaturen i lådan. IR-dioder belyser skärmen underifrån så att tryck på skärmens ovansida reflekterar tillbaka IR-ljus. En kamera detekterar IR-ljuset och skickar den resulterande bilden vidare till mjukvarudelen för analys. Kameran är en vanlig färgkamera med IR-filter. 6

3.2 Komponenter Hårdvarudelen innehåller flertalet komponenter listade enligt nedan. 3.2.1 Dator Datorn är en Mac Mini med 1,6 MHz Intel Core processor och 2 GB RAM-minne. Grafikkortet är ett Intel GMA950. Figur 3: Mac Mini 3.2.2 Projektor Projektorn är LG:s LED-projektor HX300G som lyser med 300 ANSI och har XGAupplösning 1024x768. Figur 4: Projektor 3.2.3 Kamera Kameran är en Point Grey FL2G kamera med maximal upplösning 1296x964 i 30 FPS. 7

Figur 5: Kamera 3.2.4 Diod Dioder är SFH484-L av LED-typ med våglängd 880 nm och har intensiteten 80 mw/sr. Figur 6: Diod 3.2.5 Nätaggregat Deltacos nätaggregat ATX12V som genererar 350 W. Figur 7: Nätaggregat 3.2.6 Högtalare Högtalarelementen tas från Deltacos minihögtalare på 2 W som strömmatas via USB. 8

Figur 8: Högtalare 3.2.7 Labbkort ELFA:s förtennade laboratoriekort 48-313-84 som är 100x160 mm stort. Figur 9: Labbkort 3.2.8 Glasskiva 6 mm tjock glasskiva med ena sidan blästrad. Figur 10: Glasskiva 9

3.2.9 Fläktar Systemet kommer att använda fläktar för att kyla ner luften inuti lådan och föra ut varm luft. 3.3 Lådkonstruktion Lådan består av ett ramverk av trälister med måtten 22x45 mm. I flera av hörnen har vinkeljärn skruvats fast för att förstärka stabiliteten hos ramverket. Kring ramverket har plywoodskivor med tjockleken 12 mm monterats. Detta skyddar komponenterna på lådans insida samt minimerar störande IR-strålning som kan påverka effektiviteten hos systemet. På ena kortsidan av lådan finns en dörr för lätt åtkomst av systemets komponenter. På undersidan av lådan sitter fyra stycken hjul fastsatta. Detta ger den nödvändiga mobilitet som krävs. Två av dessa hjul är låsbara så att lådan inte flyttas allt för lätt när den används. På ovansidan av lådan ligger en glasskiva med måtten 77,4x58,0x0,6 cm vars ena sida är blästrad. Runt kanten där glasskivan möter trälådan sitter en tunn list. Figur 11: Lådans dimensioner 10

Figur 12: Ramverkets dimensioner 3.4 IR-diodernas kretsschema Nätaggregatet ger 12 V vilket diodkretsarna använder. En krets består av 7 st dioder och ett 15 ohms motstånd i serie. En kretsplatta innehåller 5 st sådana serier parallellkopplade, och lådan innehåller 4 st likadana enheter. Figur 13: Kretsschema 11

3.5 Kopplingsschema Hårdvarukomponenterna monteras enligt nedan. För att förenkla för slutanvändaren installeras även en förgreningssladd i lådan som då enbart behöver koppla in en strömsladd vid användning. Figur 14: Hårdvarans kopplingar 4 Delsystem 2 - Mjukvara Mjukvarudelen analyserar användarens interaktioner med skärmen och förmedlar vad som sker till operativsystemet. 4.1 Inledande beskrivning av delsystem 2 Mjukvarudelen i systemet ska analysera tryck på skärmen med hjälp av data från kameran. När ett eller flera tryck på skärmen identifierats och lokaliserats ska denna information förmedlas till OS X genom ett befintligt API. Mer avancerade gester som operativsystemet inte kan hantera kommer att skickas till externa program med hjälp av TUIO-protokollet [5]. För att få en korrekt analys från mjukvaran ska systemet kunna kalibreras. Nedan står det mer ingående vad de olika modulerna ska åstakomma och till varje modul finns en tabell som listar funktioner som ingår i modulen. Mjukvarudelen kommer att skrivas i C++. 12

Figur 15: Flödesschema för mjukvara 4.2 CaptureVideo Klassen CaptureVideo ska läsa in bilder från kameran och spara undan dem i minnet. Det ska finnas en möjlighet att komma åt en pekare till bildens minnesadress utifrån klassen. Funktion init getframe captureframe Beskrivning Initierar instantsen. Returnerar den senast inlästa bilden. Läser in bild från kameran. 4.3 ImageProcessing Klassen ImageProcessing ska behandla bilderna som sparas med CaptureVideo. Till att börja med kommer en kompensering för bakgrund att göras på bilden, efter det så ses blobbar från fingertryckningar tydligare. I detta läge görs en lågpassfiltrering på bilden för att dämpa lokala högfrekventa artefakter och efter det en tröskling för att få en binärbild. Till sist lokaliseras blobbarna och information om varje blobb sparas i en struct. Structen innehåller information om blobbens position, storlek, lokalt maximum och vinkel. Alla structer sparas i en vektor som sedan kan kommas åt utifrån klassen så den kan kommas åt i Analyze-klassen. Klassen utnyttjar OpenCV [1] för att utföra bildbehandling. 13

Funktion init draw setparameters preprocess findblobs getblobs Beskrivning Initierar instantsen. Ritar ut originalkamerabild, trösklad bild, uppstädad bild samt slutgiltiga detektioner på skärmen. Sätter bakgrundskompenseringsparamterar. Trösklar och förbättrar kvalitén på originalbilden vilket resulterar i en binärbild. Finner blobbarnas kamerakoordinater. Returnerar den senaste bildens blobbpositioner. 4.4 Calibrate Calibrate-klassen används endast när systemet ska kalibreras. Kalibrering utförs genom att det på skärmen ritas ut en pil till varje hörn av bilden och personen som kalibrerar systemet får trycka på spetsen av dessa pilar. När position för bildens hörn har bestämts i kamerakoordinater så kan en homografi mellan kamerakoordinaterna och skärmkoordinaterna beräknas. Homografin ska sedan skickas vidare till Analyze-klassen så att den kan transformera blobbarnas positioner till skärmkoordinater. Klassen utnyttjar Open- CV [1] för att utföra bildbehandling. Funktion init draw backgroundcompenstation findhomography gethomography Beskrivning Initierar instantsen. Ritar ut ett användargränssnitt för kalibrering. Bakgrundskompensering. Finner homografin mellan kamera- och skärmkoordintarer. Retunerar homografin mellan kamera- och skärmkoordintarer. 4.5 Analyze Analyze-klassen ska sköta tracking av blobbar och identifiera vilka gester som utförs. Även denna klass har en struct där information om blobbarna lagras. I denna struct finns utöver den information som skickades vidare från ImageProcessing-klassen information om vilken position blobben först lokaliserades på och livslängd. 14

Funktion init trackblobs transformtoscreencoordinates recognizeevent Beskrivning Initierar instantsen. Parar ihop senaste bildens blobbar med föregående bilders blobbar. Transformerar blobbarnas kamerakoordinater till skärmkoordinater. Tolkar blobbarnas position och rörelse för att finna vilken typ av gest som utförs av användaren. 4.6 Controller Controller är en klass som får instruktioner från klassen Analyze för att styra operativsystemet Mac OS X. Klassen utnyttjar Carbon [2] och CoreFoundation [3] som är två inbyggda API:er i OS X. Dessa två API:er möjliggör simulering av mus- och tangetbordstryck. Funktion leftclickat rightclickat clickat doubleclickat movemouseto scrollpixels leftmousedownat leftmouseupat pressandmove getmouseposition opendashboard showallwindows hideallwindows Beskrivning Utför ett vänsterklick på given position. Utför ett högerklick på given position. Funktion som leftclickat och rightclickat ropar på för att utföra vänster- och högerklick. Utför ett dubbelklick på given position. Flyttar muspekaren till given position. Scrollar givet antal pixlar. Håller ner vänster musknapp på given position. Släpper vänster musknapp på given position. Håller ner vänster musknapp och drar från givna start- och slutpositioner. Returnerar musens position. Öppnar Dashboard. Visar alla öppna fönster i operativsystemet. Döljer alla fönster i operativsystemet. 4.7 TUIO TUIO [5] är ett öppet ramverk som specificerar ett protokoll och API för multi-touch. TUIO-protokollet tillåter sändning av abstrakt data. Protokollet kodar kontrolldata från analysmodulen och skickar datan till klientprogram som klarar av att avkoda datan. Serverimplementationen finns redan skriven i C++ som enbart behövs kopplas ihop med 15

analysmodulen. Klientimplementationer finns färdigskrivna till flertalet språk, som t.ex. AS3, C++, Python, Matlab, Objective-C m.m [4]. Referenser [1] Gary Bradski. OpenCV. http://opencv.willowgarage.com/, 2010. [Besökt 2010-09-24]. [2] Apple Inc. Carbon. http://developer.apple.com/carbon/, 2009. [Besökt 2010-09-20]. [3] Apple Inc. CoreFoundation. http://developer.apple.com/corefoundation/, 2009. [Besökt 2010-09-20]. [4] Martin Kaltenbrunner. Software Implementing TUIO. http://www.tuio.org/?software, 2010. [Besökt 2010-09-20]. [5] Martin Kaltenbrunner. TUIO. http://www.tuio.org/, 2010. [Besökt 2010-09-20]. 16