Version 1.0 Distributionslista Befattning Bolag/enhet Namn Åtgärd Info. Student KaU Niklas Ivarsson Student KaU Andreas Bergman Konsult/huvudhandledare Sogeti Konsultchef Sogeti Åsa Maspers Konsult/handledare Sogeti Thomas Heder Projektledare/handledare Sogeti Marcus Persson
Innehållsförteckning 1. Allmän beskrivning av uppdraget... 3 1.1 Bakgrund... 3 2.... 4 2.1 Raspberry Pi 2... 4 2.2 Visningsklienten... 5 2.3 Utredning... 5 2.4 Optioner... 5 2.4.1 Option 1 Presentera träffarna i en klient... 5 2.4.2 Option 2 Presentera hur mycket poäng varje träff är värd... 5 2.4.3 Option 3 Hantera flera enheter... 5 2.4.4 Option 4 Administrationsdel... 5 3. Genomförande/arbetssätt... 6 3.1 Rutiner... 6 3.2 Hårdvara... 6 3.3 Genomförande... 6 4. Stöd/kvalitetssäkring... 6 4.1 Granskningar... 6 4.2 Testarbete... 6 4.3 Stöd... 6 5. Leveranser... 7 5.1 Dokumentation... 7 6. Konfigurationsstyrning... 7 7. Miljö... 7 8. Uppföljning och Rapportering... 7 8.1 Rapportering internt/externt... 7 8.1.1 Statusrapportering... 7 8.1.2 Möten... 7 8.1.3 Slutrapportering... 7 Sida 2 av 7
1. Allmän beskrivning av uppdraget 1.1 Bakgrund Sogeti Sverige AB (Sogeti) är ett IT-konsultbolag med bred verksamhet, stort fokus på kompetens och modern teknik. Inom sportskytte används idag elektroniska markeringssystem för att detektera och avläsa träffar och dess poäng. Det finns flera olika tekniker för detta, men bland de vanligare är att systemen använder akustik, där man med tre eller flera sensorer (mikrofoner/piezosensorer) och med trilateration baserat på ljudhastigheten detekterar var på en yta en kula träffar. De största kommersiella systemen som finns för detta idag är: Megalink - http://megalink.no/ Sius - http://www.sius.com/ Dessa system är förhållandevis dyra, från 30000 kr och uppåt per enhet, och detta exjobb ämnar att utreda om man med billiga standardkomponenter kan implementera ett liknande system och uppnå den precision som krävs, alternativt utreda hur hög precision som man rimligen kan uppnå. En implementation av ett prototypsystem ingår också. Olika skyttediscipliner kräver olika upplösning, men till exempel kan nämnas att för att ett system skall fungera bra för 10m luftgevärsskytte så bör en precision på tiondels millimeter uppnås. Vi tror att man till exempel skulle kunna använda en Raspberry Pi 2 tillsammans med en s.k. Time To Digital -omvandlare för att mäta tidsskillnaderna mellan signalerna från mikrofonerna Sida 3 av 7
2. Uppdrag går ut på att utveckla ett markeringssystem för att ta emot träffar på en tavla och presentera träffarna i en klient. Med hjälp av 4 mikrofoner kopplade till en Raspberry Pi 2 så tar man emot mätvärden och sparar ner det i en databas tillsammans med namnet på enheten. I visningsklienten sen hämtas mätvärden från databasen och den räknar ut var på tavlan man träffat presenterar det. Som vi ser det så består uppdraget av följande delar: Koppla ihop allt och få systemet att reagera när mikrofonerna tar emot ljud av en viss ljudnivå (mycket elektronik i detta) Läsa in mätvärden från mikrofonerna Ta reda på hur man räknar ut med så hög precision som möjligt var på tavlan man träffat. Vilken precision kan man uppnå med hårdvaran uppdragstagarna har tillgängligt och jämföra detta med befintliga system. 2.1 Raspberry Pi 2 Enheten behöver kunna ta emot mätvärden från alla 4 mikrofonerna, applikationen som hanterar detta ser vi gärna att man utvecklar och kör i Windows 10 på enheten. Enheten behöver kunna trigga händelser i visningsklienten för att den ska uppdatera sig också, om man inte väljer att helt lösa det på visningsklienten så den uppdaterar sig på annat sätt. Det kan vara så att ytterligare hårdvara krävs för tidsregistrering då IOingångarna på t.ex. en Rasberry Pi 2 troligen är för långsamma för att detektera de korta tider det rör sig om. Sida 4 av 7
2.2 Visningsklienten Visningsklienten behöver kunna hämta data från databasen och det här skall beräkningen ligga för att räkna ut var på tavlan man har träffat. Detta inkluderar då att ta fram den matematiska formel som behövs för att kunna räkna ut, med så hög precision som möjligt, var på tavlan man träffat utifrån 4 mätvärden. Visningsklienten lämnar vi fritt för uppdragstagarna att själva välja vad de vill utveckla med för teknik, vi vill dock att man håller sig till Microsoft-plattformen. Några av alternativens som finns är: 2.3 Utredning ASP.NET MVC (webb) WPF (desktop) UWP (Universal app för Windows 10 desktop, plattor, telefoner m.m.) Det finns några saker att reda ut i detta uppdraget, så en del av uppdraget är att svara på följande frågor: 2.4 Optioner Hur hög precision kan man komma upp i med den utrustning som finns tillgänglig? (del av mm., mm, cm, dm?) Vilken typ av hårdvara skulle man behöva för att komma upp i högre precision? Hur mycket skiljer det i precision med den tillgängliga utrustningen jämfört med de kommersiella systemen som finns? Följande är förslag på vidareutveckling av detta som uppdragstagarna själv får plocka från om tid finns. Innan uppdragstagarna börjar med någon option så måste ett möte till för att prioritera dessa. 2.4.1 Option 1 Presentera träffarna i en klient När visningsklienten fått in information om en träff och räknat ut var på tavlan man träffat så ska det även presenteras grafiskt i en tavla så man tydligt ser var man träffat. 2.4.2 Option 2 Presentera hur mycket poäng varje träff är värd Efter att man tagit reda på var på tavlan man träffat så kan man räkna ut hur mycket poäng träffen är värd och även presentera det för användaren. 2.4.3 Option 3 Hantera flera enheter Att enbart hantera en enhet är begränsande så finns det tid så se till att visningsklienten har stöd för att visa information från flera tavlor. 2.4.4 Option 4 Administrationsdel I visningsklienten ska det också finnas en administrationsdel där man kan se vilka tavlor som finns tillgängliga och där man kan sätta upp en tävling med flera deltagare och att mätresultaten som kommer in kopplas till en specifik person i tävlingen. Programmet ska även då kunna presentera en vinnare efter att alla skjutit ett antal skott som man också kan ställa in. Sida 5 av 7
3. Genomförande/arbetssätt 3.1 Rutiner Sogeti tillhandahåller arbetsplatser, datorer, hårdvara samt erforderliga utvecklingsverktyg. Uppdragstagarna kommer att ha access till Sogetis nätverk och förväntas nyttja vår TFS-server för versionshantering. 3.2 Hårdvara Hårdvara för projektet kommer att bestämmas och köpas in innan projektets start men det är inte bestämt än exakt vad för hårdvara det kommer vara. 3.3 Genomförande Uppdragstagarna planerar själv genomförandet och Sogeti tillhandahåller stöttning både projektstyrningsmässigt och rent implementationstekniskt. Sogeti tillhandahåller all programvara och hårdvara som behövs. Förslagsvis används SCRUM med en sprintlängd på 2-3 veckor som sätts upp där uppdragstagarna specificerar vad de tror att de hinner med i början av varje sprint och har en demo för en eller flera på Sogeti i slutet på varje sprint. 4. Stöd/kvalitetssäkring 4.1 Granskningar Vid behov genomförs granskning som kan initieras av både handledare och uppdragstagare. Lämpligen definieras några granskningspunkter vid planeringen av projektet. 4.2 Testarbete 4.3 Stöd Funktions-, system- och integrationstest görs av uppdragstagarna. Eftersom detta uppdrag är väldigt tungt med elektronik så har vi hittat ett liknande projekt som man kan kika på för att komma igång snabbt. http://hotchk155.blogspot.com/2011/10/musical-ping-pong-tables-and.html http://hotchk155.blogspot.com/2011/11/lost-in-maths.html http://hotchk155.blogspot.com/2012/02/midi-table-top-sensingits-working.html Sida 6 av 7
5. Leveranser 5.1 Dokumentation Systemdokumentation görs av uppdragstagarna. Dokumenten lagras i projektarkiv hos Sogeti. 6. Konfigurationsstyrning All programkod och tillhörande specifikationer och andra utvecklingsdokument ska versionshanteras med hjälp av Microsoft TFS. 7. Miljö Utvecklingsmiljö för projektet skall om möjligt vara Visual Studio 2015. 8. Uppföljning och Rapportering 8.1 Rapportering internt/externt 8.1.1 Statusrapportering 8.1.2 Möten Rapportering av status och framskridande i utvecklingen beslutas i samråd vid projektuppstart. Möten hålls vid behov. Vid uppstart läggs lämpligt antal avstämningsmöten in i projektplanen. 8.1.3 Slutrapportering Arbetet presenteras för Sogeti i samband med lämpligt månadsmöte alternativt lunchmöte. Sida 7 av 7