• No results found

Presentationsverktyg för att visa bild på flera skärmar samtidigt: Multiprojicering med ProjectionAid

N/A
N/A
Protected

Academic year: 2022

Share "Presentationsverktyg för att visa bild på flera skärmar samtidigt: Multiprojicering med ProjectionAid"

Copied!
38
0
0

Loading.... (view fulltext now)

Full text

(1)

Sj ¨alvst ¨andigt arbete i informationsteknologi Maj 2016

Presentationsverktyg f ¨or att visa bild p ˚a flera sk ¨armar samtidigt

Multiprojicering med ProjectionAid

Douglas Fr ¨oling Oliver Stein Emil ¨ Osterberg

Civilingenj ¨orsprogrammet i informationsteknologi

(2)

Institutionen f ¨or informationsteknologi

Bes ¨oksadress:

ITC, Polacksbacken L ¨agerhyddsv ¨agen 2

Postadress:

Box 337 751 05 Uppsala

Hemsida:

http:/www.it.uu.se

Abstract

Presentationsverktyg f ¨ or att visa bild p ˚a flera sk ¨armar samtidigt

Multiprojicering med ProjectionAid Douglas Fr ¨oling

Oliver Stein Emil ¨Osterberg

To tackle the problem with students experiencing poor flow during lec- tures where projectors are used, we have developed a solution to min- imize possible distractions. There is a lack of cheap and user-friendly solutions for handling multiple projectors from one computer in today’s market. Therefore, we have designed an adapter that can be used for connecting two video displays to one video source. Functions for freez- ing and hiding the displayed image have also been implemented. A pro- totype of the adapter was produced. Tests conducted on the prototype have shown that the quality of the frozen image is sufficient to display lecture slides with readable text in larger lecture halls. On the other hand, the resolution is too low for displaying smaller text and detailed pictures. Switching between the two video outputs is not yet supported in the prototype. An alternative implementation of the adapter has also been designed. This solution is assumed to produce a better result than the one used for creating the prototype.

Handledare: Sofia Cassel och Bj¨orn Victor Examinator: Bj¨orn Victor

(3)

Sammanfattning

F¨or att bem¨ota problemet med att studenter kan uppleva d˚aligt fl¨ode p˚a f¨orel¨asningar d¨ar projektor anv¨ands har vi tagit fram en l¨osning f¨or att minska st¨orande moment som kan f¨orekomma. P˚a marknaden idag saknas billiga och l¨attanv¨anda l¨osningar f¨or att hantera flera projektorer fr˚an en dator. Vi har utvecklat en adapter som kan anv¨andas f¨or att koppla tv˚a bildvisare till en bildk¨alla. Adaptern har ¨aven funktioner f¨or att frysa eller m¨orkl¨agga bilden som projiceras. Under projektet har ¨aven en prototyp av adaptern tillverkas. Tester av prototypen visar att kvaliteten p˚a frysbilden ¨ar tillr¨acklig f¨or att visa en presentationsbild med l¨asbar text i en st¨orre f¨orel¨asningssal, men uppl¨osningen ¨ar f¨or l˚ag f¨or att kunna visa liten text eller detaljerade bilder. V¨axlingen mellan bildutg˚angar ¨an

¨annu inte implementerad i prototypen. En alternativ implementationsl¨osning har ocks˚a tagits fram. Denna l¨osning antas ge ett b¨attre resultat ¨an den l¨osning vi valt att tillverka en prototyp av.

(4)

Inneh ˚all

1 Introduktion 1

2 Bakgrund 1

3 Syfte, m˚al, och motivation 2

3.1 Syfte . . . 2

3.2 M˚al . . . 3

3.3 Motivation . . . 3

3.4 Avgr¨ansningar . . . 4

4 Relaterat arbete 4 5 Metod 5 6 Systemstruktur 6 6.1 Logik f¨or att v¨axla mellan utg˚angar . . . 7

6.2 System f¨or att frysa bilden . . . 7

6.2.1 Raspberry Pi med videof˚angare . . . 8

6.2.2 Mikrokontroller med bildbuffert . . . 8

6.2.3 F¨or- och nackdelar med alternativen . . . 8

7 Krav och utv¨arderingsmetoder 9 7.1 Krav . . . 9

7.2 Utv¨arderingsmetoder . . . 10

8 Implementation av systemen 11 8.1 Den implementerade adaptern . . . 12

(5)

8.1.1 Styrsystem och mjukvara . . . 12

8.1.2 Omkopplingskrets . . . 14

8.1.3 Anv¨andargr¨anssnitt . . . 15

8.2 Den alternativa l¨osningen . . . 16

8.2.1 Mjukvara . . . 16

8.2.2 Fryskrets . . . 17

9 Utv¨arderingsresultat 18 9.1 Bildkvalitet . . . 19

9.2 Frysf¨ordr¨ojning . . . 19

9.3 Uppstartshastighet . . . 19

9.4 Str¨omf¨ors¨orjning . . . 19

9.5 Diskussion av utv¨arderingsresultat . . . 20

10 Resultat och Diskussion 20 11 Slutsatser 22 12 Framtida arbete 23 12.1 Nuvarande l¨osning . . . 23

12.2 Alternativ l¨osning . . . 23

Litteraturf¨orteckning 25

A Exempel fr˚an p˚a anv¨andning av TS5V522 fr˚an datablad 29

B K¨allkod till Pythonskriptet 30

(6)

2 Bakgrund

1 Introduktion

M˚anga kan idag uppleva st¨orande moment eller d˚aligt flyt under presentationer, och f¨orel¨asare st¨oter ibland p˚a problem med att smidigt anv¨anda projektorer i samband med undervisning [1]. Vi har designat en multifunktionell projektoradapter som enkelt och smidigt ska underl¨atta vid presentationer, demonstrationer och dylikt.

Tanken med produkten ¨ar att delvis minska m¨angden st¨orningsmoment under dessa tillf¨allen, men ocks˚a att ¨oppna m¨ojligheter f¨or nya s¨att att anv¨anda projektorer och andra bildvisare.

Adaptern g¨or det m¨ojligt f¨or presentat¨oren att frysa (visa stillbild av aktuellt materi- al) eller m¨orkl¨agga bilden som visas p˚a projektorn, s˚a att presentat¨oren kan anv¨anda sin dator utan att detta syns f¨or publiken. Man kan ocks˚a koppla adaptern till tv˚a olika projektorer samtidigt och kunna v¨alja vilken av dessa som ska visa presentationen. Det finns st¨od f¨or att frysa bilden p˚a den ena projektorn och sedan forts¨atta presentationen p˚a den andra projektorn medan den frysta bilden ligger kvar. F¨orhoppningen med den- na funktion ¨ar att den ska minska just de distraktioner som uppst˚ar n¨ar en presentat¨or b¨orjar v¨axla mellan program eller beh¨over h˚alla information uppe samtidigt som andra program anv¨ands.

Adaptern inriktar sig fr¨amst p˚a universitetsmilj¨on och f¨orel¨asningar med presentationer, men kan potentiellt ocks˚a anv¨andas i andra milj¨oer, exempelvis kontor och m¨oteslokaler, multimediaunderh˚allning eller reklam f¨or att bara n¨amna n˚agra.

2 Bakgrund

Introduktionen av overheadprojektorer (OH-projektorer) under 1960-talet bidrog till en

¨okad insikt om hur tekniska hj¨alpmedel kan anv¨andas f¨or att presentera information [2]. Dessa projektorer projicerar transparenta bilder, som belyses av en ljusk¨alla, genom en fokuserande lins som f¨orstorar bilden p˚a en projektorduk. Skolor och universitet implementerade tidigt OH-projektorerna i undervisningssammanhang, och den fortsatta utvecklingen f¨or f¨orb¨attrad teknik tog fart [3]. Den nya teknologin kring datorer som uppstod under 1980-talet gjorde det attraktivt att b¨orja anv¨anda elektronisk projicering av bild som ers¨attning f¨or den existerande OH-projektorn [4]. Den digitala projektorn fungerar p˚a liknande s¨att som dess f¨oreg˚angare, men projicerar ist¨allet bilder h¨amtade fr˚an en digital k¨alla, som t.ex. en dator.

Stora resurser har sedan dess lagts p˚a att f¨orb¨attra den globala tillg¨angligheten till tek-

(7)

3 Syfte, m˚al, och motivation

nisk utrustning i utbildningssyfte [5]. Detta har lett till att datorer och projektionsverktyg f¨or att presentera information idag finns i de flesta klassrum d¨ar undervisning sker.

Satsningen p˚a teknisk utrustning har bidragit till att flera studier gjorts p˚a hur stora effekter som tekniken faktiskt har p˚a inl¨arningsprocessen hos elever. Enligt en studie tycker studenterna sj¨alva att f¨orel¨asningar som presenteras via projektor ¨ar l¨attare att f¨orst˚a, samt mer intressegivande [6]. De p˚ast˚ar ¨aven att de ¨ar mer motiverade att forts¨atta n¨arvara vid f¨orel¨asningar d¨ar denna teknik utnyttjas. Observeras ist¨allet det faktiska studieresultatet hos studenter [7] kan man se att det ¨ar sv˚art att hitta n˚agon skillnad p˚a resultatet i kurser d¨ar endast “traditionella” undervisningsmetoder s˚asom skrift p˚a tavla anv¨ands j¨amf¨ort med d¨ar dator och projektor anv¨ands. Detta visar att det finns utrymme f¨or att f¨orb¨attra den teknik som projektorer tillf¨or under f¨orel¨asningar.

P˚a Uppsala Universitet finns ett v¨axande intresse av att ut¨oka m¨ojligheterna f¨or att ha flera projektorer i klassrum. I nul¨aget saknas dock utrustning f¨or att testa hur det skulle vara att anv¨anda flera projektorer samtidigt fr˚an en enda dator. Att installera system f¨or att g¨ora detta kan bli v¨aldigt kostsamt, och p˚a denna grund best¨amde vi oss f¨or att f¨ors¨oka ta fram denna adapter p˚a en s˚a l˚ag budget som m¨ojligt.

3 Syfte, m ˚al, och motivation

I f¨oljande delsektioner beskrivs projektets syfte, de m˚al som resultatet ska uppfylla och varf¨or det ¨ar viktigt med detta projekt. Vi presenterar ¨aven avgr¨ansningar som gjorts f¨or att begr¨ansa projektets bredd.

3.1 Syfte

Tanken ¨ar att v˚ar adapter huvudsakligen ska kunna anv¨andas i utbildningssyfte un- der f¨orel¨asningar f¨or att minska risken att studenter tappar fokus och blir distrahera- de fr˚an den information som presenteras. Med hj¨alp av adaptern ska man kunna fo- kusera b¨attre genom att minimera st¨orningsmoment, och d¨armed kunna effektivisera inl¨arningsprocessen hos ˚ah¨orare. Adaptern ska ¨aven kunna anv¨andas f¨or att enkelt d¨olja k¨anslig information som anv¨andaren ej vill visa upp under en presentation.

Vidare hoppas vi att kunna l¨agga en intressant grund f¨or vidareutveckling av nya s¨att att visa upp material fr˚an singul¨ara bildk¨allor p˚a flera projiceringsverktyg, bildsk¨armar och s˚a vidare, f¨or att till exempel kunna dra ner p˚a antalet datorer som beh¨ovs n¨ar man visar flera olika bilder p˚a m˚anga sk¨armar.

(8)

3 Syfte, m˚al, och motivation

3.2 M ˚al

M˚alet var att designa och implementera adaptern s˚a att den kan anslutas mellan exem- pelvis dator och projektor, vilken ska hj¨alpa till och underl¨atta f¨or personer som h˚aller i presentationer. Denna adapter ska:

• Kunna frysa och sl¨acka den projicerade bilden samtidigt som datorn f¨orblir of¨or¨andrad och kan d¨armed anv¨andas som vanligt.

• Ha st¨od f¨or att visa olika bilder till olika bildvisare samtidigt med bara en bildk¨alla (med vissa begr¨ansningar, se sektion 3.4).

• Vara enkel att anv¨anda i meningen att den ¨ar kompakt, portabel och har ett l¨attf¨orst˚att anv¨andargr¨anssnitt.

Vidare har vi tagit fram mer konkreta krav som vi ¨amnar att uppfylla med projektets slutprodukt, se mer detaljer i sektion 7.1. B˚ade dessa krav och m˚alen vi n¨amnt ovan har styrt designvalen och utf¨orandet av adaptern under projektets g˚ang.

3.3 Motivation

Under f¨orel¨asningar har studenter en tendens att tappa intresset f¨or det presenterade materialet d˚a information h¨amtas fr˚an olika platser [1]. V¨axling mellan flera program bryter fl¨odet under f¨orel¨asningen och distraherar ˚ah¨orare.

Ett exempel som understryker detta problem kan se ut enligt f¨oljande:

Undervisningsansvarig f¨or en programmeringskurs p˚a universitetet ska h˚alla en interak- tiv f¨orel¨asning, d¨ar studenterna f˚ar i uppgift att l¨osa ett problem genom att skriva ett en- kelt program efter en introduktion om n¨odv¨andiga kunskaper som beh¨ovs. F¨orel¨asaren visar sedan sin l¨osning p˚a problemet via en projektor, samt s¨oker efter andras l¨osningar via internet f¨or att diskutera dessa med studenterna. Under v¨axlingen fram och tillbaka mellan de diverse programmen (f¨orel¨asningsanteckningar, textredigerare f¨or program- kod och webbl¨asare) b¨orjar flera studenter att f¨orlora intresset.

Om f¨orel¨asaren ist¨allet hade t.ex. fortsatt med att visa sin l¨osning p˚a projektorn under den tid som anv¨andes f¨or att g¨ora s¨okningar i webbl¨asaren kunde studenterna haft en b¨attre m¨ojlighet till fortsatt koncentration p˚a det relevanta materialet. Adaptern som vi utvecklat kan frysa eller sl¨acka sk¨armen med endast ett knapptryck, och ¨ar oberoende av datorns mjukvara och dess inst¨allningar. Detta ¨ar en enklare och mer anv¨andarv¨anlig

(9)

4 Relaterat arbete

l¨osning j¨amf¨ort med flera av de tillv¨agag˚angss¨att som funnits tidigare, se exempel p˚a detta under sektion 4.

3.4 Avgr ¨ansningar

Vi har valt att endast st¨odja upp till tv˚a bildvisare parallellt med adaptern, d˚a ett st¨orre antal kr¨aver en mer avancerad upps¨attning komponenter och d¨armed en st¨orre budget.

F¨or projektets m˚al finns dessutom inget specifikt behov av fler m¨ojliga utg˚angar, och tv˚a projektorer kan utnyttja den funktionalitet vi vill ta fram v¨al. Vi har ocks˚a begr¨ansat adaptern till att bara kunna visa en live bild och en fryst eller sl¨ackt bild samtidigt p˚a tv˚a bildvisare. Anledningen ¨ar att det ¨ar om¨ojligt att visa tv˚a olika live eller frysta bilder samtidigt med bara en bildutg˚ang fr˚an systemet som fryser bildsignalen och bara en bildk¨alla, vilket ¨ar fallet i det system vi implementerat. Vad som kan g¨oras f¨orklaras mer i detalj i senare sektioner.

Fokus har f¨orst och fr¨amst lagts p˚a att f˚a adaptern att fungera mellan dator och projektor med kablar inkopplade. Vi har inte utvecklat systemet f¨or att st¨odja tr˚adl¨os anslutning, eftersom detta ¨ar tidskr¨avande och ˚aterigen en ut¨okning av budgeten, och f¨or v˚ara syften tj¨anar vi inte n˚agot p˚a denna ut¨okning.

Trots att ett av m˚alen var att designa en s˚a kompakt produkt som m¨ojligt har detta inte haft prioriteten under projektet. Adaptern som tagits fram ¨ar endast en prototyp och det viktigaste ¨ar att ha en adapter att designa en beh˚allare f¨or n¨ar funktionaliteten ¨ar p˚a plats.

4 Relaterat arbete

Det finns ett flertal olika s¨att som problemet med vad som visas upp p˚a projektorn tack- lats p˚a, b˚ade i mjukvara och h˚ardvara. Ett exempel p˚a en mjukvarubaserad l¨osning till problemet som finns implementerat i m˚anga operativsystem idag ¨ar att utvidga skriv- bordet med en extern bildsk¨arm, se till exempel Windows utvidgningsfunktion [8]. P˚a detta s¨att kan anv¨andaren best¨amma vad som ska visas p˚a projektorn samtidigt som den egna delen av skrivbordet kan anv¨andas utan att dessa program projiceras. Problemet med denna metod ¨ar att varje f¨onster som ska visas p˚a projektorn manuellt m˚aste flyttas

¨over till denna del av det utvidgade skrivbordet, samt att anv¨andaren m˚aste specificera inst¨allningar f¨or detta i operativsystemet. Detta kan leda till de st¨orningsmoment som diskuterats tidigare. L¨osningen ¨ar ocks˚a beroende av vilket operativsystem som anv¨ands, vilket vi vill undvika med v˚ar adapter.

(10)

5 Metod

Bland h˚ardvarubaserade l¨osningar existerar ett videoupptagningskort med frysfunktion [9] fr˚an f¨oretaget Colorado Video. I grundl¨aget, kallat “live mode”, sl¨apps den aktuel- la videosignalen direkt ut till utsignalen. I frysl¨aget visar utsignalen den frysta bilden kontinuerligt, tills anv¨andaren v¨axlar tillbaka till grundl¨aget. Med m˚atten 22x16x7cm

¨ar produkten dock huvudsakligen ¨amnad till att vara statisk och anv¨andas vid en och samma plats ist¨allet f¨or att vara portabel. Kortet ¨ar ¨aven relativt dyrt (1195 US-dollar).

Vidare finns det projektorer med en inbyggd frysfunktion [10] . Nackdelen ¨ar att dessa kr¨aver att anv¨andaren har full kontroll ¨over projektorn. Detta ¨ar inte alltid fallet. F¨or att frysa bilden p˚a dessa projektorer beh¨ovs en fj¨arrkontroll och den har man inte alltid tillg˚ang till n¨ar man kommer till en plats med en fast installerad projektor.

F¨or att designa v˚ar adapter har vi beh¨ovt kolla p˚a flera liknande exempel d¨ar man tidigare implementerat delar av problemet. Det finns flera olika typer av projekt att hitta d¨ar en Raspberry Pi anv¨ands f¨or att l¨asa in en videosignal f¨or att sedan bearbeta denna. En av de vanligaste ¨ar skapandet av ett ljussystem till TV-apparater d¨ar LED-lampor producerar ett bakgrundsljus som ska sm¨alta in med de bilder som visas p˚a sk¨armen, s˚a kallat Ambilight[11]. En videof˚angare tar d˚a TV-apparatens videosignal och skickar detta till en Raspberry Pi som analyserar de f¨arger som visas [12]. De korrekta f¨argerna skickas sedan ut till respektive LED-lampa, vilket skapar det slutliga bakgrundsljuset. Till v˚ar adapter har vi samma behov av att f˚a in en bildsignal, och d¨arf¨or har vi byggt vidare p˚a l¨osningen med videof˚angaren i detta projekt.

5 Metod

F¨or att styra hela systemet och hantera frysning av bilden anv¨ands en Raspberry Pi (vidare kallad RPi), och systemet har programmerats med Python 2.7 [13]. RPi:n har tillg˚ang till GPIO-kontakter [14] vilket vi utnyttjar f¨or att kommunicera med andra di- gitala komponenter i systemet.

Det finns flera f¨ardiga bibliotek till RPi f¨or bland annat styrning av GPIO och bildvis- ning, vilka l˚ater oss spara tid och arbete genom att slippa l¨osa problem som redan ¨ar l¨osta. F¨or styrning av GPIO-kontakter anv¨ands biblioteket RPi.GPIO[15]. F¨or bildvis- ning anv¨ands biblioteket Pygame[16]. F¨or videoupptagning fr˚an videof˚angaren anv¨ands programmet MPlayer[17] vilket vi startar genom ett Pythonskript.

F¨or att leda signalen till antingen systemet f¨or att frysa bilden eller direkt ut of¨or¨andrad kr¨avs en upps¨attning omkopplare och kretsar (dessa beskrivs i detalj i sektion 8). Vi har designat ett kopplingsschema f¨or att ˚astadkomma detta med omkopplare designade f¨or VGA. D˚a vissa av komponenter ¨ar v¨aldigt sm˚a anv¨andes adaptrar som kretsar kan l¨odas

(11)

6 Systemstruktur

fast p˚a f¨or att ge utrymme f¨or l¨odning till sladdar. Se sektionerna 6.1 och 8 f¨or n¨armare

¨oversikt respektive detalj p˚a hur denna krets ser ut.

6 Systemstruktur

Betraktat fr˚an anv¨andaren best˚ar systemet av sj¨alva adaptern, som f˚ar en insignal fr˚an en bildk¨alla (exempelvis dator) och har tv˚a utsignaler som g˚ar till n˚agon form av bildvisare (exempelvis projektor eller TV), vilket exemplifierats i figur 1. Internt best˚ar systemet av ing˚ang och utg˚angar, logik f¨or att v¨alja mellan utg˚angarna samt ett system f¨or att frysa bilden och sl¨acka sk¨armen.

Projektor 1

Projektor 2 ProjectionAid

adapter Dator

Figur 1: En grafisk ¨overblick av yttre systemet, d¨ar man kan se ett exempel p˚a var adaptern kan anv¨andas.

(12)

6 Systemstruktur

6.1 Logik f ¨ or att v ¨axla mellan utg ˚angar

Bildsignalen kan ledas till flera utg˚angar i adaptern. Detta sk¨ots med hj¨alp av omkopp- lare som styrs via GPIO fr˚an RPi:n. F¨or att styra detta anv¨ands knappar som anv¨andaren interagerar med, vilka skickar signaler till RPi:n via GPIO. Beroende p˚a vilken knapp som trycks ner skickar RPi:n olika styrsignaler till omkopplarna och dirigerar var VGA- signalen ska skickas. En ¨overblick ¨over kopplingsschemat visas i figur 2, d¨ar man kan se upps¨attningen av omkopplare vi har designat f¨or att ˚astadkomma v¨axlingen.

Knappar för frysning och skärmsläck

Videofångare till USB VGA till composit video

HDMI till VGA

Raspberry Pi

Logik för omkoppling av VGA-signalen VGA in

VGA ut 1

VGA ut 2 Förgrening

SW 1

SW 2

SW 3

SW 4

SW = omkopplare

Figur 2: Schematisk bild ¨over PrejectionAid-adaptern. Figuren visar hur VGA- insignalen f¨orgrenas och g˚ar b˚ade till RPi:n via tv˚a adaptrar och till omkopplarna, d¨arefter vidare till en av utg˚angarna.

6.2 System f ¨ or att frysa bilden

Under projektet togs flera designalternativ fram f¨or att l¨osa problemet med att frysa bilden fr˚an k¨allan och visa upp den. Tv˚a av dessa alternativ diskuteras nedan.

(13)

6 Systemstruktur

6.2.1 Raspberry Pi med videof ˚angare

Den f¨orsta l¨osningen bygger p˚a att RPi:n anv¨ander en videof˚angare [18], eftersom enkortsdatorn saknar inbyggd bilding˚ang. Videof˚angaren l¨aser en kompositvideosig- nal och skickar ut denna via USB. F¨or att kunna anv¨anda videof˚angaren beh¨over vi f¨orst omvandla adapterns insignal till kompositvideo. Detta g¨ors med en VGA-till- kompositvideo-omvandlare. Att l¨asa videosignalen med en RPi:s GPIO-kontakter ¨ar inte ett alternativ. GPIO-kontakterna kan endast l¨asa digitala signaler, men inte heller en digital videosignal, till exempel HDMI, kan l¨asas d˚a RPi:s processor ¨ar f¨or l˚angsam [19]

f¨or att kunna l¨asa GPIO-kontakterna s˚a fort som kr¨avs [20].

Operativsystemet som anv¨ands ¨ar Raspbian wheezy, och mjukvaran som vi tagit fram utg¨ors av ett Pythonscript p˚a RPi:n. Skriptet lyssnar p˚a knapptrycken via GPIO och tar in en stillbild fr˚an videof˚angaren och visar denna i fullskr¨am. P˚a s˚a s¨att kommer anv¨andaren uppleva att bilden fryser. Denna bild visas sedan via HDMI-utg˚angen p˚a RPi:n, som genom en HDMI-till-VGA-omvandlare n˚ar till adapterns utg˚angar.

6.2.2 Mikrokontroller med bildbuffert

Den andra l¨osningen g˚ar ut p˚a att insignalen, i form av en VGA-signal, konverteras till en digital signal med en ADC, som sedan kan sparas p˚a ett SRAM-minne i form av en stillbild n¨ar knappen f¨or frysning trycks in. Denna bild konverteras sedan med en DAC tillbaka till en analog signal som slutligen kan projiceras. En mikrokontroller sk¨oter styrningen av minnet och skickar information om n¨ar en ny stillbild ska l¨asas in eller n¨ar bildsignalen ska skickas ut, p˚a liknande s¨att som detta skulle hanteras av en RPi i den f¨orsta l¨osningen.

6.2.3 F ¨or- och nackdelar med alternativen

F¨ordelen med den f¨orsta l¨osningen ¨ar att en RPi redan har f¨ardig grafikhantering med en HDMI-utg˚ang. Detta underl¨attade att konfigurera den att skicka ut bildsignaler. Den har ocks˚a har GPIO-kontakter som kan programmeras att hantera knappar eller omkopplar- na t.ex. [21]. Nackdelen ¨ar att den externa videof˚angaren kr¨avs, vilket p˚a en l˚ag budget ger en l¨agre uppl¨osning p˚a bilden med kompositvideo, 720 x 576 [18], j¨amf¨ort med t.ex.

HDMI.

F¨ordelen med en mikrokontroller som t.ex. en Arduino skulle vara att den ¨ar snabbare att starta och l¨att g˚ar att programmera f¨or digitala komponenter som omkopplare och knap- par. Denna l¨osning skulle troligtvis ¨aven bli mer kompakt j¨amf¨ort med anv¨andningen

(14)

7 Krav och utv¨arderingsmetoder

av en RPi tillsammans med videof˚angare. Nackdelen ¨ar saknaden av ett f¨ardigt video- gr¨anssnitt och grafikhantering, vilket g¨or det mer komplicerat att hantera bildsignaler.

Dessutom skulle vi beh¨ova s¨atta oss in i mycket information f¨or att f¨orst˚a hur vi imple- menterar systemet p˚a ett bra s¨att.

7 Krav och utv ¨arderingsmetoder

De konkreta krav som st¨alldes p˚a det slutliga resultatet specificeras h¨ar, tillsammans med metoder f¨or hur kraven faktiskt evaluerades.

7.1 Krav

D˚a adaptern huvudsakligen ¨ar ¨amnad f¨or anv¨andning i anslutning med projektorer, s˚a baseras kraven p˚a detta syfte. Specifikt g¨aller det kravet om uppstartshastighet d˚a den starttid vi vill uppn˚a ¨ar v¨aldigt l˚angsam om adaptern skulle anv¨andas med exempelvis en TV eller en datorsk¨arm. De konkreta krav vi st¨allt p˚a v˚ar slutprodukt inom detta projektarbete ¨ar f¨oljande:

Visa tv˚a simultana bilder: Adaptern ska kunna ge upp till tv˚a olika utsignaler sam- tidigt, d¨ar en visar insignalen live och den andra antingen en fryst bild eller en sk¨armsl¨ackare.

Oberoende av bildk¨allans mjukvara: Anv¨andaren ska inte beh¨ova ha n˚agon extra mjukvara f¨or adaptern, utan den ska vara helt frist˚aende gentemot bildk¨allan och bildsk¨armar, projektorer etc. och fungera direkt efter inkoppling och uppstart.

Snabb uppstart: Det ska g˚a att anv¨anda adaptern senast 60 sekunder fr˚an det att man f¨orsett den med str¨om, men g¨arna mindre, ner till 30 sekunder. Denna tid kan j¨amf¨oras med hur l˚ang tid det tar att starta en projektor och att visa upp bilden, vilket baseras p˚a m¨atningar vi gjorde p˚a tv˚a olika projektorer i klassrum p˚a uni- versitetet. Beroende p˚a hur nyligen projektorn varit p˚aslagen tog det minst en halv minut, men oftast en knapp minut fr˚an p˚aslagning till att bilden visades. Adaptern b¨or ej vara l˚angsammare.

Tillr¨acklig str¨omf¨ors¨orjning via USB fr˚an dator: Adaptern ska kunna str¨omf¨ors¨orjas via micro-USB, antingen fr˚an dator eller fr˚an ett eluttag. USB-porten p˚a dagens datorer ger vanligtvis ut en str¨omstyrka p˚a mellan 500-900mA [22] beroende p˚a USB-version, och max detta men g¨arna mindre b¨or r¨acka f¨or att l˚ata adaptern fungera som den ska.

(15)

7 Krav och utv¨arderingsmetoder

7.2 Utv ¨arderingsmetoder

Efter implementation av prototypen av adaptern utf¨ordes tester i f¨orsta hand f¨or att se till att den uppfyller b˚ade v˚ara och v˚ara intressenters krav, men ¨aven andra funktioner och typer av prestanda testades. De flesta av kraven ¨ar enkla att utv¨ardera d˚a produkten antingen uppfyller dem eller ej. H¨ar beskriver vi de tester vi har utf¨ort p˚a prototypen s˚a l˚angt den var implementerad vid deadline.

F¨or att testa kraven om str¨omf¨ors¨orjning och att vara oberoende av bildk¨allan utf¨ordes tester p˚a ett urval datorer p˚a universitetet. Tv˚a saker testades h¨ar. F¨orst testades om adaptern fungerar som t¨ankt med str¨omf¨ors¨orjning b˚ade fr˚an datorernas USB-portar och fr˚an USB-adaptrar med str¨omk¨alla p˚a 550mA och 850mA. Sedan testades om det g˚ar att anv¨anda adaptern utan att installera extra mjukvara, eller g¨ora n˚agra konfigurationer p˚a datorn. F¨or att avg¨ora detta skulle datorn automatiskt k¨anna av att en bildsk¨arm kopplats in genom VGA och kunna skicka ut sin bild normalt som om det faktiskt vore en bildsk¨arm och inte ett f¨orem˚al med ok¨and funktion som kopplats till VGA-utg˚angen.

Kravet om snabb uppstart testades genom att ta tid fr˚an att man kopplar in matningen tills dess att adaptern ¨ar redo att visa bild och anv¨andas. Denna tid j¨amf¨ordes med tiden det tar f¨or en projektor att starta, se sektion 7.1.

Ut¨over grundkraven utv¨arderades ¨aven bildkvaliteten p˚a adapterns utsignaler. Vi testade hur v¨al text g˚ar att l¨asa p˚a avst˚and f¨or att se huruvida produkten g˚ar att anv¨anda i en stor f¨orel¨asningssal eller ej, s¨arskilt med avseende p˚a den frysta bilden. F¨or att unders¨oka detta har vi utnyttjat teorier g¨allande textstorlek i relation till bildavst˚and, baserad p˚a information fr˚an artikeln Readability in classrooms [23] skriven av A. H. W. van der Zanden. Informationen vi baserar utv¨arderingen p˚a kan sammanfattas enligt f¨oljande:

Den h¨ojd p˚a bokst¨aver som kr¨avs f¨or att en projicerad text ska ses som fullt l¨asbar ber¨aknas med hj¨alp av trigonometri. Varje bokstav b¨or uppta en vinkel p˚a π/540 ra- dianer, eller 20 b˚agminuter (ofta f¨orekommande enhet i sammanhanget, en b˚agminut motsvarar π/10800 radianer), i synf¨altet hos den ˚ah¨orare som sitter l¨angst ifr˚an bilden under en presentation. Med 20 b˚agminuter som riktlinje och ett avst˚and p˚a L centimeter till bilden ber¨aknas bokstavsh¨ojden H centimeter enligt formeln

H = L · tan(π/540).

I en f¨orel¨asningssal d¨ar det st¨orsta avst˚andet till tavlan ¨ar exempelvis 10 meter b¨or bok- stavsh¨ojden s˚aledes vara

H = 1000 · tan(π/540) ≈ 5.8cm f¨or att uppfylla det ¨onskade resultatet.

(16)

8 Implementation av systemen

En exempelbild med text i olika typsnittsstorlekar skapades f¨or att utf¨ora testet. I klass- rummet projicerades sedan bilden via frysfunktionen p˚a adaptern och observerades fr˚an ett uppm¨att avst˚and. Genom den ovanst˚aende formeln kunde vi avg¨ora hur stor texten m˚aste vara f¨or att n˚a v¨ardet p˚a 20 b˚agminuter vid det uppm¨atta avst˚andet, och d˚a se om texten faktiskt ¨ar lika l¨asbar som den b¨or vara. Utifr˚an dessa m¨atningar noterade vi de olika typsnittsstorlekarna som leder till god l¨asbarhet (n¨ar det handlar om text) f¨or olika positioner p˚a betraktaren i klassrummet.

Vi har ¨aven j¨amf¨ort bilden fr˚an n¨ar signalen g˚ar live genom adaptern med bilden om vi inte hade haft n˚agon adapter f¨or att se om omkopplaren inf¨or n˚agon f¨ors¨amring i bild- kvaliteten. F¨or att testa det betraktade vi bildkvaliteten b˚ade n¨ar adaptern var inkopplad och utan den p˚a samma sk¨arm fr˚an samma bildk¨alla. Detta ger ˚atminstone en tydlig upp- fattning om kvaliteten f¨ors¨amrats m¨arkbart, men det ¨ar sv˚art att j¨amf¨ora om den endast skiljer sig lite.

Aven frysfunktionens responsivitet testades f¨or att avg¨ora om produkten kan anv¨andas¨ f¨or att pausa ett videoklipp eller om frysfunktionen endast b¨or anv¨andas f¨or att fry- sa slides. F¨or att det ska vara anv¨andbart att anv¨anda adaptern f¨or att pausa en video b¨or frysningen ske i stort s¨att omedelbart. Vi valde att s¨atta ett tak p˚a en frystid till 0.1 sekunder f¨or detta. F¨or att frysa stillbilder under en presentation kan en betydligt l¨angre f¨ordr¨ojning accepteras. Tv˚a till tre sekunder f¨ordr¨ojning skulle fortfarande vara anv¨andbart.

D˚a omkopplingskretsen inte hunnit implementeras i prototypen finns inte st¨od f¨or att koppla in mer ¨an en bildvisare. D¨arf¨or har inte kravet om att kunna visa tv˚a bilder samtidigt kunnat testas.

8 Implementation av systemen

I den h¨ar sektionen g˚ar vi ner p˚a en djupare detaljniv˚a om hur vi har implementerat de olika delarna av systemet. Ut¨over det beskriver vi ocks˚a i detalj det alternativa systemet f¨or att frysa bilden som kort beskrevs i 6.2.2. Notera att vi inte implementerat denna alternativa l¨osning, utan bara beskriver hur den skulle implementeras den om vi valt att g¨ora det.

(17)

8 Implementation av systemen

8.1 Den implementerade adaptern

Implementationen av adaptern innefattar b˚ade mjukvara p˚a RPi:n och h˚ardvara utanf¨or enkortsdatorn. H¨ar f¨oljer de olika delarna som utg¨or systemet.

8.1.1 Styrsystem och mjukvara

RPi:n utg¨or systemets k¨arna och har programmerats att styra GPIO-kontakterna f¨or att lyssna p˚a knapptryck eller styra de externa omkopplarna, samt hantera videoupptagning, frysprocessen och sk¨armsl¨ackning. All kod har skrivits med Python 2.7 [13]. F¨or k¨allkod se bilaga B. Pythonskriptet k¨ors automatiskt s˚a fort adaptern startat.

F¨or att f˚anga bilden fr˚an videof˚angaren anv¨ands en mediaspelare designad f¨or Linux kal- lad MPlayer [17]. En loop i Pythonskriptet lyssnar p˚a GPIO-kontakterna. N¨ar anv¨andaren trycker p˚a en knapp f¨or att frysa bilden k¨ors ett systemkommando som startar MPlayer som i sin tur l¨aser 5 bildrutor fr˚an videosignalen och sparar dessa. F¨or att g¨ora detta k¨ors MPlayer med argumentet “-vo jpeg” som sparar de l¨asta bildrutorna som jpg-filer och argumentet “-frames 5” som s¨ager ˚at MPlayer att bara l¨asa de f¨orsta 5 bildrutorna.

Anledningen till att 5 bilder sparas ¨ar att det tar tid f¨or videosignalen att stabiliseras och f¨orst efter ungef¨ar 5 bildrutor ¨ar bilden ren fr˚an st¨orningar, se figur 3. Den femte av des- sa bilder visas sedan i fullsk¨arm med hj¨alp av modulen Pygame [16]. Fler ¨an 5 bildrutor hade kunnat sparats f¨or att ytterligare garantera att bilden ¨ar st¨orningsfri, men att l¨asa och spara bildrutorna tar tid och en avv¨agning gjordes att fler ¨an 5 bildrutor skulle ta f¨or l˚ang tid att l¨asa utan att ge ett markant b¨attre resultat.

Figur 3: Till v¨anster visas hur den f¨orsta bildrutan i videosignalen har st¨orningar i form av gr¨ona str¨ack. Till h¨oger visas den femte bildrutan som ¨ar fri fr˚an st¨orningar.

(18)

8 Implementation av systemen

(a)

(b)

Figur 4: GPIO-numreringen p˚a en Raspberry Pi modell B+, h¨amtad fr˚an raspber- rypi.org [24]. ¨Overst, (a), visas numreringen med BOARD-layout och underst, (b), med BCM-layout.

F¨or att lyssna p˚a GPIO-kontakterna anv¨ands en modul i Python f¨or GPIO p˚a RPi:n, kallad RPi.GPIO [15]. N¨ar modulen anv¨ands beh¨over anv¨andaren f¨orst st¨alla in hur GPIO-kontakterna ska numreras, s˚a att Python f¨orst˚ar vilka kontakter som avses n¨ar man adresserar dem. Kontakterna kan numreras p˚a tv˚a s¨att, antingen genom GPIO.BOARD eller GPIO.BCM, se figur 4. Vi valde att anv¨anda GPIO.BOARD d˚a numreringen f¨or oss ¨ar l¨attare att anv¨andare eftersom den g˚ar i ordning som kontakterna sitter p˚a RPi:n.

Numreringen p˚a GPIO.BCM kan ocks˚a skilja mellan olika modeller s˚a f¨or att minska riken f¨or att g¨ora fel valde vi bort den numreringen.

F¨or att koppla en tryckknapp till GPIO-kontakterna m˚aste en av kontakterna s¨attas till insignalskontakt. Med argumentet pull up down=GPIO.PUD UP i GPIO.setup ak- tiveras en pull-up resistor f¨or den specifika kontakten. Utan denna skulle det inte vara m¨ojligt att l¨asa insignalen d˚a v¨ardet p˚a kontakten skulle v¨axla slumpm¨assigt mellan 1 och 0 s˚a l¨ange str¨ombrytaren inte ¨ar ansluten [25].

(19)

8 Implementation av systemen

8.1.2 Omkopplingskrets

Bildsignalen beh¨over dirigeras till tv˚a olika delar, och f¨or att g¨ora det anv¨ands en upp- s¨attning omkopplare f¨or att styra vart signalen leds. En ¨overblick ¨over kretsen gavs tidigare i figur 2. Signalen beh¨over ledas delvis till RPi:n f¨or att bilden ska kunna fry- sas vid behov, delvis f¨orbi fryssystemet till utg˚angarna f¨or att skickas of¨or¨andrad till bildvisaren. Alla in- och utg˚angar till kretsen best˚ar av VGA-kontakter.

I figur 2 ses ett exempel d¨ar ing˚angssignalen g˚ar fr˚an VGA in till VGA ut 1, vilket blir live-bilden, medan RPi:n skickar ut sin bild via VGA ut 2. Detta visar ett typexempel p˚a vad adaptern kan g¨ora med de designval vi har gjort. Med bara en utg˚ang p˚a en RPi, och med bara en bildk¨alla, kan man endast f˚a en live-bild och en fryst alternativt sl¨ackt bild samtidigt, vilket ¨aven beskrevs i sektion 3.4. I v˚ar implementation inneb¨ar det att n¨ar man v¨aljer att visa live-bilden p˚a ena utg˚angen, s˚a visas bilden fr˚an RPi:n p˚a den motsatta utg˚angen.

VGA in 1

SELECT (hög, låg) VGA in 2

VGA ut 1

VGA ut 2

VGA in 1

SELECT (hög, låg) VGA in 2

VGA ut 1

VGA ut 2

Figur 5: F¨orenklad bild ¨over logiken i omkopplarna som anv¨ands i adaptern. Om select- ing˚angen f˚ar en h¨og signal, f¨oljer videosignalen de bl˚a pilarna. Om select-ing˚angen f˚ar en l˚ag signal f¨oljer videosignalen ist¨allet de svarta pilarna.

F¨or att styra VGA-signalen har vi anv¨ant omkopplare dedikerade f¨or VGA som har kom- ponentnamnet TS5V522C [26], vilka inf¨orskaffats fr˚an Texas Instruments. Omkoppla- ren har in- och utg˚angar anpassade f¨or tv˚a insignaler och tv˚a utsignaler av VGA-format,

(20)

8 Implementation av systemen

och kan v¨axla mellan vilka tv˚a ing˚angar som g˚ar till vilka tv˚a utg˚angar. I bilaga A finns ett exempel fr˚an databladet d¨ar tillverkaren beskriver hur omkopplaren anv¨ands f¨or detta. Vi har baserat v˚ara kopplingar p˚a detta exempel f¨or att uppn˚a omkopplare som antingen v¨aljer en av tv˚a insignaler och skickar en utg˚ang, eller motsatsen, dvs. den skickar en insignal till en av tv˚a utg˚angar, se figur 5.

Enligt databladet f¨or omkopplaren anv¨ands en kontrolling˚ang f¨or att v¨alja mellan vilken ing˚ang som leds till vilken utg˚ang. Detta kan vi styra med GPIO-kontakterna p˚a RPi:n, och p˚a s˚a s¨att kan omkopplarna styras genom att lyssna p˚a knapptryck fr˚an anv¨andaren, avg¨ora vilka omkopplare som ska ¨andras och sedan skicka ut motsvarande signaler, allt i mjukvaran p˚a enkortsdatorn. TS5V522C kan anv¨anda b˚ade 3.3V och 5V som h¨og signal eller logisk 1:a, vilket matchar niv˚aerna hos GPIO-kontakterna p˚a RPi:n som vanligtvis

¨ar 3.3V, d¨arf¨or beh¨ovs ingen omvandling av sp¨anningsniv˚an mellan omkopplarna och styrsystemet.

8.1.3 Anv ¨andargr ¨anssnitt

Anv¨andargr¨anssnittet p˚a adaptern best˚ar av en VGA-videoing˚ang, tv˚a VGA-videoutg˚angar, fyra knappar f¨or att frysa eller sl¨acka bilden p˚a utg˚ang ett eller tv˚a, tv˚a knappar f¨or att skicka livesignalen till antingen utg˚ang 1 eller utg˚ang 2 samt en micro-USB-ing˚ang f¨or str¨omf¨ors¨orjning, se figur 6. F¨or att anv¨anda adaptern kopplar anv¨andaren video- utg˚angen p˚a sin bildk¨alla till VGA-ing˚angen p˚a adaptern. Anv¨andaren kopplar sedan de projektorer eller bildsk¨armar som ska anv¨andas till adapterns VGA-utg˚angar. Om bara en bildvisare ska anv¨andas beh¨over inget kopplas in i den andra VGA-utg˚angen. F¨or att f¨orse adaptern med str¨om kopplas en micro-USB-sladd in i str¨oming˚angen, och som str¨omk¨alla kan antingen dator eller USB-adapter anv¨andas.

F¨or att frysa den nuvarande livebilden trycker anv¨andaren p˚a den frysknapp (markerad F), som h¨or till den videoutg˚ang som f¨or n¨arvarande anv¨ands. Vill anv¨andaren ist¨allet l¨agga p˚a en sk¨armsl¨ackare ¨over bilden trycker anv¨andaren p˚a sl¨ackknappen (markerad B f¨or “blind”). F¨or att styra live-bilden till ¨onskad utg˚ang anv¨ands knappen p˚a motsva- rande sida (markerad L). En lysdiod visar n¨ar adaptern ¨ar redo att anv¨andas.

(21)

8 Implementation av systemen

F1

B1

L1

F2

B2

L2

Figur 6: Anv¨andargr¨anssnittet p˚a ProjectionAid sett ovanifr˚an. Knapparna F1 och F2 anv¨ands f¨or att frysa utsignal ett respektive utsignal 2. P˚a samma s¨att anv¨ands knapparna B1 och B2 f¨or att m¨orkl¨agga och L1 och L2 f¨or att skicka live-signalen till respektive utsignal. En lysande gr¨on LED signalerar att adaptern ¨ar redo att anv¨andas.

8.2 Den alternativa l ¨ osningen

I sektion 6.2.2 beskrevs kort en alternativ l¨osning f¨or att frysa bilden som matas in till adaptern. H¨ar beskriver vi i detalj hur den skulle implementeras, men notera att detta inte ¨ar n˚agot vi utf¨ort under projektet utan det ¨ar bara en teoretisk design. Precis som f¨or den implementerade l¨osningen skulle denna best˚a av b˚ade mjukvara samt h˚ardvara.

8.2.1 Mjukvara

D˚a en mikrokontroller anv¨ands som den huvudsakliga logiska styrenheten ist¨allet f¨or en RPi, skulle implementationen av mjukvara se avsev¨art annorlunda ut. Ett programspr˚ak som till exempel Python ligger p˚a en relativt h¨og abstraktionsniv˚a, vilket inneb¨ar att man kommer l¨angre ifr˚an den faktiska h˚ardvaran. Mikrokontrollern m˚aste sk¨ota min-

(22)

8 Implementation av systemen

neshantering och styrning av adressering som ¨ar n¨odv¨andig vid kommunikation med SRAM-minnet, s˚a ett st¨orre behov av kontroll finns. Ett av de vanligaste spr˚aken som anv¨ands f¨or programmering av en mikrokontroller som uppfyller detta ¨ar C, vilket vi skulle anv¨anda.

8.2.2 Fryskrets

Insignalen ¨ar i VGA-format och d¨armed analog. Signalen konverteras med en analog- till-digital-omvandlare (ADC) f¨or att f˚a en digitaliserad version som kan hanteras av digitala komponenter och kretsar. Vi skulle anv¨anda en ADC ¨ar speciellt anpassad f¨or just videosignaler [27]. Genom information i VGA-signalen genereras automatiskt en klockfrekvens som ¨ar l¨amplig f¨or sampling samt senare rekonstruktion av den analoga signalen.

Anv¨andargr¨anssnittet f¨or frysfunktionen best˚ar som tidigare utav knappar, och mikro- kontrollern programmeras att lyssna p˚a dessa. N¨ar knappen f¨or frysning trycks in samplas en bild fr˚an den nu digitaliserade insignalen, f¨or att lagras i SRAM-minnet. Storle- ken p˚a varje samplad bild beror p˚a ¨onskad uppl¨osning av bilden samt den generera- de klockfrekvensen. Antag att 3 bitar av minnet (1 bit f¨or varje f¨arg, allts˚a r¨od, gr¨on samt bl˚a) allokeras f¨or att spara varje pixel i en bild. Om den samplade bilden d˚a har en uppl¨osning p˚a 1960x1080 pixlar kommer 1 960 · 1 080 · 3 = 6 350 400 bitar, eller 6 350 400/16 = 396 900 ord, beh¨ovas f¨or att spara hela bilden. Detta motsvarar cirka 7,9kB. N¨ar hela bilden har lagrats kommer de anv¨anda minnesadresserna att repeteras f¨or inl¨asning, vilket skapar den frysta bilden, tills det att knappen f¨or live-bild trycks ner.

De digitala signaler som bilden best˚ar av skickas vidare fr˚an minnet till en digital-till- analog-omvandlare (DAC) f¨or att rekonstruera den ursprungliga analoga signalen. Pre- cis som f¨or ADC:n anv¨ands en DAC som ¨ar anpassad f¨or videosignaler. Den klockfre- kvens som anv¨andes i ADC:n skickas in i denna DAC f¨or en korrekt rekonstruktion.

(23)

9 Utv¨arderingsresultat

Figur 7: Schematisk bild ¨over den alternativa l¨osningen. Figuren visar endast frysmodu- len. Logiken f¨or omkoppling mellan VGA-signaler ¨ar densamma som tidigare, se figur 2.

Mikrokontrollern agerar som SRAM-minnets styrenhet, f¨or att bland annat dirigera vart i minnet varje del av samplingen ska sparas genom en adressignal fr˚an kontrollern till minnet. En utg˚ang p˚a mikrokontrollern kopplas till minnets ing˚ang f¨or att m¨ojligg¨ora skrivning av data under sampling, medan en annan utg˚ang kopplas till minnets ing˚ang f¨or att m¨ojligg¨ora l¨asning, se figur 7. N¨ar frysknappen trycks ner avl¨aser mikrokon- trollern detta, och utg˚angen f¨or skrivning till minnet aktiveras. Fr˚an minnets basadress

¨okas adressen f¨or varje anv¨and bit tills det att r¨aknaren n˚ar slutadressen f¨or sampling- en (samplingens storlek definieras i kontrollerns programkod). N¨ar slutadressen n˚as sl˚as signalen f¨or skrivning om till l¨asning av minnet, vilket visar den slutliga bilden.

R¨aknaren nollst¨alls och minnet rensas n¨ar signalen fr˚an frysknappen kopplas fr˚an via ett andra knapptryck.

9 Utv ¨arderingsresultat

H¨ar presenteras resultaten av utv¨arderingsmetoderna p˚a de krav som specificerades i sektion 7.1, samt en anknytande diskussion f¨or att analysera orsakerna till dessa resultat.

(24)

9 Utv¨arderingsresultat

9.1 Bildkvalitet

Tester har genomf¨orts i olika f¨orel¨asningssalar med olika projektorer. Vi testade l¨as- barheten av text enligt teorin som beskrevs i sektion 7.2. V˚ara tester visade att i en av salarna p˚a ett avst˚and av 9 meter fr˚an projektorduken kunde man utan att anstr¨anga sig l¨asa text med fontstorlek 24. H¨ojden p˚a dessa bokst¨aver var cirka 4 cm. Detta ger en vinkel p˚a 15.3 b˚agminuter. F¨or att f˚a en vinkel p˚a 20 b˚agminuter fr˚an detta avst˚and beh¨ovs en teckenh¨ojd p˚a 5.2 cm, vilket motsvarade en fontstorlek p˚a 30.

I en annan sal p˚a ett avst˚and av 11 meter fr˚an projektorduken kunde man ocks˚a l¨asa utan anstr¨angning med en fontstorlek p˚a 24 med en teckenh¨ojd p˚a 4 cm. Detta ger en vinkel p˚a 12.5 b˚agminuter, vilket ¨ar f¨or liten text f¨or att anv¨andas i en s˚apass stor sal.

F¨or att f˚a den optimala vinkeln p˚a 20 b˚agminuter beh¨over tecknen vara 6.3 cm h¨oga, vilket motsvarar en fontstorlek p˚a cirka 40.

9.2 Frysf ¨ ordr ¨ ojning

Fr˚an dess att anv¨andaren trycker p˚a frysknappen till dess att en frusen bild visas tar det cirka 5 sekunder.

9.3 Uppstartshastighet

Uppstartstiden m¨attes till att vara 1 minut och 16 sekunder. Denna tid ¨ar uppm¨att d¨ar operativsystemet var installerat p˚a ett minneskort som har upp till 90MB/s och 80MB/s l¨as- respektive skrivhastighet [28].

9.4 Str ¨ omf ¨ ors ¨ orjning

Under dessa tester var b˚ade omvandlaren som konverterar VGA till komposit och vide- of˚angaren inkopplade till RPi:n direkt. Vid matning av 850mA via USB-adapter i eluttag till RPi:n visas endast en helt gr¨on bild n¨ar frysprocessen har aktiverats, oavsett vad som visas p˚a den anslutna datorn. Vid matning av 550mA till RPi:n ¨ar systemet ostabilt och tenderar att st¨angas av.

N¨ar matning togs direkt fr˚an datorer blev resultatet samma som ovan, p˚a vissa datorer blev bilden gr¨on, p˚a vissa blev hela systemet ostabilt. Datorer med USB 3.0 klarade att h˚alla systemet stabilt, men bilden blev fortfarande gr¨on.

(25)

10 Resultat och Diskussion

Vi testade ¨aven att anv¨anda externa str¨omk¨allor till antingen omvandlaren eller vide- of˚angaren, vilket f¨orb¨attrade resultatet. N¨ar omvandlaren matas fr˚an RPi:n men vide- of˚angaren anv¨ander extern matning fungerar adaptern som den ska, men tv¨artom leder till att bilden blir d˚alig. Allts˚a beh¨over videof˚angaren mer str¨om ¨an RPi:n kan avvara.

9.5 Diskussion av utv ¨arderingsresultat

Testerna g¨allande bildkvaliteten visar att f¨or att projicera text i en st¨orre sal ¨ar uppl¨osningen p˚a den frysta bilden inte en begr¨ansning. F¨or att uppn˚a optimal l¨asbarhet b¨or presen- tat¨oren skapa presentationer med st¨orre textstorlek ¨an den minsta l¨asbara, och eftersom den minsta l¨asbara texten vi uppn˚adde var mindre ¨an den optimala kan anv¨andaren utan problem anv¨anda adaptern f¨or text s˚a l¨ange inneh˚allet i presentationerna anpassas f¨or tittare l˚angt bak i salarna.

Dock finns problemet att liten text blir om¨ojlig att skala upp och l¨asa n¨ar uppl¨osningen p˚a kompositvideo ¨ar s˚a liten. Det medf¨or att adaptern kan bli mindre anv¨andbar f¨or tillf¨allen d¨ar tittarna befinner sig n¨armare den projicerade bilden ¨an i ett stort klassrum, d˚a typsnittsstorleken antas kunna vara mindre. Detta skulle ocks˚a f¨orb¨attras avsev¨art med en b¨attre videof˚angare eller ocks˚a den alternativa l¨osningen f¨or videofrysningen som beskrevs tidigare i sektion 8.2.

Uppstartshastigheten var l˚angsammare ¨an vad kravet hade satts till. Det operativsystem som RPi:n k¨or samt det minneskort som anv¨ands ¨ar faktorer som p˚averkar detta. Med ett OS som startar snabbare hade tiden avsev¨art minskats.

M¨angden str¨om som beh¨ovs blev ocks˚a mer ¨an v¨antat. Alla de f¨ardiga omvandlarna som anv¨ands kr¨aver str¨omf¨ors¨orjning. Omvandlaren f¨or VGA till kompositvideo beh¨over t.ex. 500mA f¨or att fungera korrekt. Problemet som d˚a uppst˚ar ¨ar att den str¨om som RPi:n f˚ar genom datorns USB-anslutning (500-900mA) snabbt f¨orbrukas f¨or att driva hela systemet. Detta bekr¨aftades i sektion 9.4, vilket inneb¨ar att ett vanligt USB-uttag i en dator ej r¨acker f¨or att str¨omf¨ors¨orja systemet. F¨or att anv¨anda systemet utan problem kr¨avs en USB-adapter som ansluts via eluttag och ger ut en str¨omstyrka p˚a 2A.

10 Resultat och Diskussion

Detta projekt har konkret resulterat i en prototyp till den adapter vi ville ta fram utifr˚an v˚ara m˚al i sektion 3. Vid skrivandet av denna rapport ¨ar prototypen inte fullt implemen- terad och best˚ar av m˚anga l¨osa f¨ardiga delar, exempelvis videof˚angaren eller omvand-

(26)

10 Resultat och Diskussion

larna. De delar vi har implementerat tas upp och diskuteras nedan:

Frysfunktionaliteten ¨ar f¨ardig. Den klarar av att l¨asa in bildsignalen, frysa den och vi- sa upp en stillbild vid knapptryck. Som n¨amnts tidigare har bilden en uppl¨osning p˚a 720x576, och denna bild skalas upp till att passa bildvisarens uppl¨osning.

En f¨orb¨attring g¨allande bilduppl¨osningen hade varit intressant att kolla p˚a, trots att kva- liteten ¨ar godk¨and f¨or l¨asning av text som tidigare n¨amnts i sektion 9. Grunden till detta

¨ar att den videof˚angare som anv¨ands endast st¨odjer kompositvideo eller S-video, som bildar en flaskhals med sin begr¨ansade uppl¨osning. Ett alternativ hade varit en vide- of˚angare som direkt st¨odjer HDMI [29] ist¨allet f¨or kompositvideo, men dessa ¨ar betyd- ligt dyrare, vilket ¨ar anledningen till att en s˚adan l¨osning valdes bort. F¨or syftet med att frysa presentationsbilder kan det vi dock s¨aga att l¨osningen duger i f¨orh˚allande till hur lite videof˚angaren kostade (129SEK).

Under k¨orning av frysprocessen ligger processoranv¨andningen p˚a 100 %, se figur 8 som visar processoranv¨andningen p˚a RPi:n medan Mplayer l¨aser av och visar den f˚angade videon. Konverteringen av den r˚aa videoinsignalen till ett digitalt format sker i den dator (RPi:n i detta fall) som videof˚angaren ¨ar ansluten till.

Figur 8: CPU-anv¨andning p˚a RPi:n under uppspelning av den f˚angade videosignalen.

Konverteringen tycks medf¨ora en alltf¨or stor anstr¨angning p˚a den relativt begr¨ansade

(27)

11 Slutsatser

CPU:n hos en RPi, vilket p˚averkar kvaliteten. Resultatet av detta ses bland annat i fi- gur 3, d¨ar st¨orningar i form av gr¨ona str¨ack uppst˚ar. En videof˚angare som sj¨alv sk¨oter denna konvertering oberoende av den anslutna datorn [30] hade troligtvis gett ett b¨attre bildresultat. Ett annat alternativ hade varit att l˚ata den GPU som RPi:n innehar sk¨ota konverteringen direkt utan inverkan av CPU:n, vilket b¨or f¨orb¨attra bildresultatet (den officiella kameramodulen till RPi:n implementerar bland annat denna metod). GPU:n st¨odjer n¨amligen videokodningsformatet H.264 [31] f¨or b˚ade kodning samt avkodning via h˚ardvaran. Tyv¨arr ¨ar det ej m¨ojligt hos videoenheter som ansluts via USB-port p˚a RPi:n att f˚a direkt kontakt med GPU:n.

Ut¨over frysfunktionen har vi ¨aven sett till att vid str¨omtillf¨orsel startar adaptern och Pyt- honskriptet som hanterar allt s¨atts ig˚ang automatiskt. Den ¨ar oberoende av den bildk¨alla som ansluts.

Denna funktionalitet ¨ar inte en stor del men ¨ar viktigt f¨or att adaptern ska vara l¨att att anv¨anda, och fungerar i nul¨aget som det var t¨ankt utifr˚an m˚alen och kraven.

Ett mindre problem i nul¨aget ¨ar att alla delar av adaptern fortfarande ¨ar separata delar.

Det bidrar till att den ¨ar v¨aldigt otymplig. F¨or att ˚atg¨arda detta skulle man delvis kunna demontera de f¨ardiga delarna och l¨oda ihop dem och montera i ett chassi, men f¨or att ta det ¨annu l¨angre skulle man beh¨ova designa ett kretskort och ha s˚a f˚a komponenter som m¨ojligt f¨or att uppn˚a samma funktionalitet. Detta ¨ar dock v¨aldigt tidskr¨avande och kan l¨att bli dyrt d˚a bra design av kretskort inte ¨ar trivialt och att bara tillverka enstaka kort ¨ar kostsamt. Vid produktion av flera adaptrar om den slutgiltiga produkten blir anv¨andbar i st¨orre utstr¨ackning ¨ar detta alternativ dock mer intressant.

11 Slutsatser

Resultatet av detta projekt ¨ar en design f¨or en adapter som underl¨attar vid f¨orel¨asningar och presentationer med projektorer, och m¨ojligg¨or anv¨andning av flera bildvisare. En f¨ardig adapter har ej implementerats, men v˚ar prototyp har n˚agra av de funktioner som slutprodukten skulle ha. Prototypen visar bland annat att den designade adaptern har en fungerande frysfunktion som kan projicera l¨asbara bilder. Trots att vi inte f¨ardigst¨allt sj¨alva prototypen s˚a har vi tagit fram designen f¨or hur hela adaptern ska implementeras och fungera.

Det unika med adaptern ¨ar att den erbjuder b˚ade frysning av bild och delning av signalen till flera bildvisare, vilket l˚ater anv¨andaren projicera olika bilder fr˚an en enda dator samtidigt. Att adaptern ocks˚a g¨or detta p˚a en budget under 1500SEK ¨ar intressant d˚a m˚anga liknande produkter som har delar av funktionerna kostar mycket mer.

(28)

12 Framtida arbete

12 Framtida arbete

Den fortsatta utvecklingen av systemet kan dels ske med avseende p˚a den i nul¨aget implementerade l¨osningen, men ¨aven med avseende p˚a den alternativa l¨osning som togs upp i sektion 8.2. H¨ar beskrivs d¨arf¨or potentiella f¨orb¨attringar utifr˚an b˚ada l¨osningarna.

12.1 Nuvarande l ¨ osning

Flera saker g˚ar att f¨orb¨attra i den nuvarande l¨osningen. Det viktigaste ¨ar att implemen- tera kretsen som dirigerar om VGA-signalen med omkopplarna. I nul¨aget har vi bara designat den, men den beh¨over fortfarande byggas, testas och f¨ardigst¨allas.

Som n¨amndes i avsnitt 10 kan en videof˚angare som st¨oder HDMI anv¨andas f¨or att f¨orb¨attra uppl¨osningen. Med detta skulle man kunna byta ut hela systemet att anv¨anda HDMI b˚ade till den frysta bilden och omkopplarna, och d¨armed avsev¨art f¨orb¨attra bild- kvaliteten. En enkortsdator med snabbare processor skulle troligen ocks˚a f¨orb¨attra bild- kvaliteten hos den frysta bilden. De flesta f¨orb¨attringar kan l¨att g¨oras genom att spendera mer pengar p˚a delsystemen till adaptern.

Ett v¨aldigt intressant arbete vore att ta fram en massproduktionsv¨anlig design, vilket skulle hj¨alpa anv¨andarv¨anligheten genom att g¨ora adaptern s˚a kompakt och robust som m¨ojligt.

12.2 Alternativ l ¨ osning

Om fortsatt utveckling av adaptern fr˚an dess prototypstadium till en f¨ardig produkt skul- le vara aktuell hade l¨osningen best˚aende av en mikrokontroller tillsammans med en bildbuffert f¨ormodligen varit mer attraktiv. Mer detaljer kring l¨osningen gavs i sektion 8.2.

F¨ordelen med denna l¨osning ¨ar att adaptern inte bara skulle bli mindre i storlek, den skulle ¨aven kunna beh˚alla samma uppl¨osning p˚a den frysta bilden som insignalen. Stor- leksminskningen ¨ar m¨ojlig d˚a samtliga komponenter l¨ods fast direkt p˚a ett kretskort.

Varken RPi:n eller de f¨ardiga omvandlarna beh¨ovs.

D˚a en enkortsdator ej ¨ar anv¨ands hade ¨aven uppstarten av adaptern blivit snabbare med denna l¨osning. RPi:n kr¨aver ett operativsystem som m˚aste starta s˚a fort str¨omanslutning sker innan den g˚ar att anv¨anda. Mikrokontrollern ¨ar helt frist˚aende ett operativsystem och skulle d¨armed fungera direkt vid mottagning av str¨om. Det skulle ¨aven bli l¨attare

(29)

12 Framtida arbete

att driva adaptern d˚a de f¨ardiga omvandlarna inte l¨angre anv¨ands.

Nackdelen med dessa sm˚a komponenter ¨ar att de beh¨over ett specialdesignat kretskort f¨or att m¨ojligg¨ora l¨odning, vilket som n¨amndes i kapitel 10 ¨ar tidskr¨avande samt kost- samt.

(30)

Litteraturf¨orteckning

Litteraturf ¨ orteckning

[1] N. Baloian, J. A. Pino, and H. U. Hoppe, “Dealing with the students’ attention problem in computer supported face-to-face lecturing,” Journal of Educational Technology & Society, 2008.

[2] J. W. J. McNerney, A century of innovation: the 3M story, 1st ed. 3M Company, 2002.

[3] P. Grunwald, “Overhead projector,” 1989, US Patent 4,829,327. [Online].

Available: https://www.google.ch/patents/US4829327

[4] P. Vandenberghe, Handbook of Visual Display Technology. Berlin, Heidelberg:

Springer Berlin Heidelberg, 2012, ch. Data Projectors.

[5] C. Mouza and N. C. Lavigne, Emerging technologies for the classroom: a learning sciences perspective, 1st ed. New York, USA: Springer, 2013.

[6] A. Szabo and N. Hastings, “Using it in the undergraduate classroom: should we replace the blackboard with powerpoint?” Computers & Education, 2000.

[7] J. M. Apperson, E. L. Laws, and J. A. Scepansky, “The impact of presentation graphics on students’ experience in the classroom,” Computers & Education, 2006.

[8] “Flytta f¨onster mellan flera bildsk¨armar.” [Online]. Available: http://windows.

microsoft.com/sv-se/windows/move-windows-between-multiple-monitors#1TC=

windows-7

[9] DD441CS Hi-Def Video Freeze Frame - User’s manual, Colorado Video. [Online].

Available: http://www.colorado-video.com/Manuals/Manual-DD441CS.pdf [10] cp-x1230 User’s manual - Operating guide. [Online]. Available: http:

//www.hitachi-america.us/supportingdocs/forhome/DisplayTechnologiesGroup/

lcdprojectors/SupportingDocuments/cp-x1230 um.pdf

[11] Philips Ambilight. 2016-05-02. [Online]. Available: http://www.philips.se/c-m-so/

tv-apparater/p/ambilight/

[12] C. Moser, “How to build an Ambilight for every HD-

MI input source,” 2014. [Online]. Available: https://christianmoser.me/

how-to-ambilight-for-every-hdmi-source/

[13] “Python 2.7.0 release.” [Online]. Available: https://www.python.org/download/

releases/2.7/

(31)

Litteraturf¨orteckning

[14] “General-purpose input/output,” Apr. 2016, page Version ID: 717557060.

[Online]. Available: https://en.wikipedia.org/w/index.php?title=General-purpose input/output&oldid=717557060

[15] “Rpi.gpio.” [Online]. Available: https://pypi.python.org/pypi/RPi.GPIO [16] “Pygame documentation.” [Online]. Available: http://www.pygame.org/docs/

[17] “MPlayer Features.” [Online]. Available: http://www.mplayerhq.hu/design7/info.

html

[18] EasyCAP Video Capture with Audio - Quick Installation Guide, 2016-04- 29. [Online]. Available: http://lifastleg1680.com/ebay install guide/EasyCAP%

20Manual.pdf

[19] J. Pihlajamaa, “Benchmarking Raspberry Pi GPIO Speed – Co- de and Life.” [Online]. Available: http://codeandlife.com/2012/07/03/

benchmarking-raspberry-pi-gpio-speed/

[20] “Bandwidth Used by Common Digital Video Resolutions - Natio- nal Instruments.” [Online]. Available: http://digital.ni.com/public.nsf/allkb/

E366BB70207394A186257C200067FEB8

[21] “Raspberry Pi Model B+ 512mb RAM ID: 1914 - $29.95 : Adafruit Industries, Unique & fun DIY electronics and kits,” 2016-04-15. [Online]. Available:

https://www.adafruit.com/product/1914

[22] Apple, “Apple Computers and Displays: Powering peripherals through USB,”

2016-05-04. [Online]. Available: https://support.apple.com/en-us/HT204377 [23] A. H. W. van der Zanden, “Readability in classrooms,” 2014. [Online]. Available:

http://homepage.tudelft.nl/9c41c/Readability in classrooms.pdf

[24] “Gpio: Models a+, b+, raspberry pi 2 b and raspberry pi 3 b.” [Online]. Available:

https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/

[25] “Pull-up resistor,” May 2016, page Version ID: 719239844. [Online]. Available:

https://en.wikipedia.org/w/index.php?title=Pull-up resistor&oldid=719239844 [26] Texas Instruments, 5-BITS VIDEO EXCHANGE SWITCH FOR DUAL VGA

SOURCE TO SINK -2V UNDERSHOOT PROTECTION WITH LOW ON-STATE RESISTANCE, 2016-05-06. [Online]. Available: http://www.ti.com/lit/ds/symlink/

ts5v522c.pdf

(32)

Litteraturf¨orteckning

[27] T. Instruments, TRIPLE 8-/10-BIT 165-/110-MSPS VIDEO AND GRAPHICS DIGITIZER WITH HORIZONTAL PLL, 2016-04-15. [Online]. Available:

http://www.ti.com/lit/ds/symlink/tvp7002.pdf

[28] 32gb Micro Samsung SDHC Pro Memory Card with SD Adaptor. 2016- 05-18. [Online]. Available: http://fb.uk.samsung.com/consumer/memory-storage/

memory-cards/micro-sd/MB-MG32DA/EU

[29] USB CAPTURE HDMI Specification, Magewell. [Online]. Availab- le: http://www.magewell.com/wp-content/uploads/2015/07/USB-Capture-HDMI Spec-sheet.pdf

[30] USB 2.0 HD PVR Gaming and Video Capture Device – 1080p HDMI / Component, StarTech. [Online]. Available: https://www.startech.com/media/

products/USB2HDCAP/PDFs/USB2HDCAP Datasheet-SV.pdf

[31] T. Wiegand, G. J. Sullivan, G. Bjontegaard, and A. Luthra, “Overview of the h.264/avc video coding standard,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, 2003.

(33)
(34)

A Exempel fr ˚an p ˚a anv ¨andning av TS5V522 fr ˚an

datablad

(35)

B K ¨allkod till Pythonskriptet

i m p o r t pygame i m p o r t s y s

i m p o r t RPi . GPIO a s GPIO i m p o r t o s

i m p o r t t i m e

i m p o r t T k i n t e r a s t k

# D e f i n e f r e e z e 1 = 8 f r e e z e 2 = 10 b l a c k 1 = 7 b l a c k 2 = 5 l i v e 1 = 11 l i v e 2 = 13 e x i t A p p = 12 r e a d y = 18 s w i t c h 1 = 19 s w i t c h 2 = 21 s w i t c h 3 = 22 s w i t c h 4 = 23 n o S i g n a l = 0 l i v e = 1 f r o z e n = 2 b l a c k = 3

# s t a t e f l a g s o u t 1 = l i v e o u t 2 = n o S i g n a l

r o o t = t k . Tk ( )

s c r e e n w i d t h = r o o t . w i n f o s c r e e n w i d t h ( ) s c r e e n h e i g h t = r o o t . w i n f o s c r e e n h e i g h t ( ) d e f f r a m e g r a b ( ) :

(36)

o s . s y s t e m ( ” rm / home / p i / D e s k t o p / i m g d i s p / ∗ . j p g ” )

o s . s y s t e m ( ” m p l a y e r − f s t v : / / −t v d e v i c e = / dev / v i d e o 0 : i n p u t = 0 : q u a l i t y =100 −vo j p e g : q u a l i t y = 1 0 0 : o u t d i r = / home / p i / D e s k t o p / i m g d i s p / −f r a m e s 5 ” )

d e f f u l l s c r e e n ( ) :

s c r e e n = pygame . d i s p l a y . s e t m o d e ( ( s c r e e n w i d t h , s c r e e n h e i g h t ) , pygame . FULLSCREEN )

i m g S u r f = pygame . i m a g e . l o a d ( ” / home / p i / D e s k t o p / i m g d i s p / 0 0 0 0 0 0 0 5 . j p g ” )

i m g S u r f = pygame . t r a n s f o r m . s c a l e ( i m g S u r f , ( s c r e e n w i d t h , s c r e e n h e i g h t ) )

# r e c t = i m g S u r f . g e t r e c t ( )

# r e c t = r e c t . move ( ( x , y ) )

s c r e e n . b l i t ( i m g S u r f , ( 0 , 0 ) ) pygame . d i s p l a y . f l i p ( )

d e f b u t t o n P r e s s e d ( b u t t o n ) :

r e t u r n n o t GPIO . i n p u t ( b u t t o n ) d e f u p d a t e S i g n a l s ( ) :

# s e n d o u t c o r r e c t c o n t r o l s i g n a l s d e p e n d i n g on t h e v a l u e s o f o u t 1 and o u t 2

r e t u r n

d e f b u t t o n L o o p ( ) : g l o b a l o u t 1 , o u t 2 u p d a t e = F a l s e w h i l e T r u e :

i f b u t t o n P r e s s e d ( f r e e z e 1 ) : u p d a t e = T r u e

i f o u t 1 == l i v e and ( o u t 2 == n o S i g n a l or o u t 2

== b l a c k or o u t 2 == f r o z e n ) : o u t 2 = n o S i g n a l

o u t 1 = f r o z e n e l i f o u t 1 == f r o z e n :

(37)

o u t 2 = n o S i g n a l o u t 1 = l i v e

#Do s o m e t h i n g n i c e i f b u t t o n P r e s s e d ( f r e e z e 2 ) :

#Do s o m e t h i n g n i c e break

i f b u t t o n P r e s s e d ( b l a c k 1 ) :

#Do s o m e t h i n g n i c e break

i f b u t t o n P r e s s e d ( b l a c k 2 ) :

#Do s o m e t h i n g n i c e break

i f b u t t o n P r e s s e d ( l i v e 1 ) :

#Do s o m e t h i n g n i c e break

i f b u t t o n P r e s s e d ( l i v e 2 ) :

#Do s o m e t h i n g n i c e break

i f b u t t o n P r e s s e d ( e x i t A p p ) : break

i f u p d a t e :

u p d a t e = F a l s e f r a m e g r a b ( ) f u l l s c r e e n ( ) t i m e . s l e e p ( . 5 ) u p d a t e S i g n a l s ( )

pygame . q u i t ( )

i f n a m e == ” m a i n ” : GPIO . s e t m o d e ( GPIO . BOARD)

GPIO . s e t u p ( f r e e z e 1 , GPIO . IN , p u l l u p d o w n = GPIO . PUD UP )

GPIO . s e t u p ( f r e e z e 2 , GPIO . IN , p u l l u p d o w n = GPIO .

(38)

PUD UP )

GPIO . s e t u p ( b l a c k 1 , GPIO . IN , p u l l u p d o w n = GPIO . PUD UP )

GPIO . s e t u p ( b l a c k 2 , GPIO . IN , p u l l u p d o w n = GPIO . PUD UP )

GPIO . s e t u p ( l i v e 1 , GPIO . IN , p u l l u p d o w n = GPIO . PUD UP ) GPIO . s e t u p ( l i v e 2 , GPIO . IN , p u l l u p d o w n = GPIO . PUD UP ) GPIO . s e t u p ( e x i t A p p , GPIO . IN , p u l l u p d o w n = GPIO .

PUD UP )

GPIO . s e t u p ( r e a d y , GPIO . OUT) GPIO . s e t u p ( s w i t c h 1 , GPIO . OUT) GPIO . s e t u p ( s w i t c h 2 , GPIO . OUT) GPIO . s e t u p ( s w i t c h 3 , GPIO . OUT) GPIO . s e t u p ( s w i t c h 4 , GPIO . OUT)

pygame . d i s p l a y . i n i t ( ) GPIO . o u t p u t ( r e a d y , 1 )

b u t t o n L o o p ( )

GPIO . o u t p u t ( r e a d y , 0 )

References

Related documents

Vi r¨aknar de numeriska v¨ardena f¨or styvhet-, konvektion-, resp... Ekvationen

Dessa åtgärder liknar de anpassningar som lärarna gör rent allmänt för att stimulera motivationen hos alla elever men beskrevs av respondenterna som strategier för att hantera

Element¨ ar gruppteori, hemuppgifter till torsdag vecka

Element¨ ar gruppteori, hemuppgifter till torsdag vecka 401. Vilka element kan v¨aljas som generator f¨ or

Undersök konvergensen hos

Låt f vara en strängt monoton funktion denierad på intervallet [a, b].. Visa att f kan ha högst ett nollställe på

(Varför? Vilka antaganden skulle då

[r]