Project Documentatie Project EXPO Team 141 Project Documentatie Project EXPO Datum: 14 oktober 2011 Dhr. Brouwer Team 141
Inhoudsopgave Inhoudsopgave 1. Inleiding 3 2. Doelgroep analyse 4 2.1 Sector 2.2 Branches 2.3 Bedrijven 2.3.1 Sam Shipping 2.3.2 Spaansen 2.3.3 Net cargo 2.4 Doelgroep 3. Persona s 6 3.1 Henk Boots 3.2 Jan Schipper 3.3 Piet de Nul 4. Storyboard 7 4.1 Storyboard game 4.2 Storyboard filmpje zeevaart 4.3 Storyboard MME 5. Functioneel ontwerp 12 5.1 Onze oplossing 5.2 De game 5.3 Zeevaart film 5.4 Opstelling 6. Technisch ontwerp 14 6.1 Menu en Game 6.2 Classes 6.3 Besturing 6.4 Opstarten van video 7. Feedback 17 8. Samenvatting 18 Bronvermelding Bijlages 2
1. Inleiding In dit document, de documentatie van onze MME voor Project Expo, vertellen wij over onze werkwijze: hoe zijn we op het resultaat, welke wij 27 oktober zullen presenteren gekomen; en welke weg wij hebben gevolgd om tot dit resultaat te komen. We hopen dat u op deze manier een beter inzicht krijgt in ons project. We zullen starten met het eerste deel van ons proces, de doelgroep analyse. We bepalen hier wie onze doelgroep is, en waarom wij deze doelgroep willen aanspreken. Vervolgens vindt u ons storyboard ingevoegd in dit document, dit is onze eerste opzet van de MME. Later zijn er nog enkele punten gewijzigd aan dit storyboard. In het functioneel ontwerp beschrijven wij de functies van de MME, hoe gaat de gebruiker om met deze functie, welke funties bevat de MME, maar ook een beschrijving van de filmpjes en welke boodschap wij de filmpjes willen laten overbrengen. In het technisch ontwerp beschrijven we de techniek achter de MME, welke programmeer talen we gebruikt hebben, hoe de verbinding tussen de twee projectors tot stand komt en we zullen enkele voorbeelden geven van zelf geschreven code. Als afsluiting hebben we de feedback toegevoegd welke wij hebben ontvangen in de les Feedback 3
2. Doelgroep analyse 2.1 Sector We hebben voor de sector transport gekozen. Na enig overleg binnen onze groep waren wij van mening dat deze sector nog vele problemen bevat die met behulp van ICT makelijker gemaakt kunnen worden, of geheel opgelost. 2.2 Branches Binnen de sector transport hebben we gekozen voor de branches Zeevaart en Opslag & dienstverlening. Beide zijn branches waar elk met groot geld gewerkt wordt, dit brengt risico s met zich mee. Wij wilden ons richten op het voorkomen van het verliezen van spullen van waarde, omdat dit risico bij Zeevaart nog groter is doordat de verloren spullen op dat moment meestal voorgoed verloren zijn. Hiervoor wilden wij een oplossing gaan verzinnen. 2.3 Bedrijven Zeevaart Sam shipping Spaansen Net cargo Opslag & dienstverlening Mol verhuizen Barlo world interne verhuizen Micodo 2.3.1 Sam Shipping Sam Shipping is een nieuw zeetransport bedrijf dat op de markt kwam in 2009. Ze zijn bezig hun vloot uit te breiden om meer te kunnen vervoeren. Ze hebben zich gespecialiseerd in droge goederen. Een van hun prioriteiten is het goed managen van schepen, deze in goede staat houden en ze vaak controlleren. 2.3.2 Spaansen Spaansen bestaat uit vier devisies. Deze devisies zijn: Bouwsystemen, Grondstoffen & Logistiek, Industrie zand & grind en Bestratingsmaterialen. De divisie Grondstoffen en Logistiek biedt het totaalproces van winning tot en met aflevering naar de eindbestemming. Afhankelijk van de wens, wordt het totale proces verzorgd of maatwerk geleverd bij deelprocessen. Door een grote betrokkenheid bij de opdrachtgevers, staat deze divisie garant voor een transparante en duurzame samenwerking. De divisie Grondstoffen en Logistiek is bovendien verantwoordelijk voor de leverantie en vervoersactiviteiten voor alle bedrijven binnen de Spaansen Groep. 2.3.3 Net cargo Net Cargo hebben hun hoofdkantoor in het Verenigt Koningkrijk, andere kantoren staan in Afrika, Europa, Amerkia. Ze hebben als doel goederen op de meest effectieve manier te vervoeren, over de weg, de zee of door de lucht. Ze slaan ook goederen op. 4
2.4 Doelgroep We hebben deze doelgroepen kunnen vinden binnen de zeevaart: Hoofd ICT Eigenaar/Directeur Kapitein, Machinist Monteur Kok Navigator Naar aanleiding van de relevantie van de doelgroep en de macht en invloed deze doelgroep heeft hebben wij gekozen voor Hoofd ICT, wij denken dat deze doelgroep het meeste invloed heeft op de techniek welke gebruikt wordt op een schip. Hoofd ICT zal waarschijnlijk ook meegaan naar een vakbeurs voor de zeevaart omdat hij/zij op de hoogte moet zijn van de nieuwste ontwikkelingen. 5
3. Persona s 3.1 Henk Boots Is ooit op een schip gaan werken omdat hij iets van de wereld wou zien, natuurlijk wou hij binnen zijn vakgebied blijven, de ICT. Hierdoor kon hij aan de slag bij rederij De Dubbele Knoop. Henk is getrouwd met Elly Drijver (familie van Anna Drijver), hij heeft haar ontmoet tijdens een zeereis. Ze was een medewerker in de kombuis, maar blijft nu thuis om samen met hem op de kinderen te passen. Omdat Henk zich altijd bewust is van de risico s tijdens een reis is hij altijd bezig om de veiligheid op het schip voor de matrozen te verbeteren. Nu Henk getrouwd is met Elly en kinderen heeft gaat hij niet meer mee op reizen. Sinds kort is hij gepromoveerd naar Hoofd ICT en blijft hij op het hoofdkantoor, dicht bij zijn gezin, om aan ICT mogelijkheden te werken in nieuwe boten of om nieuwe projecten/toepassingen uit te besteden. 3.2 Jan Schipper Gewerkt bij de marine van 2000-2005 bij de wapentechnische dienst. Werd eervol ontslagen door bezuinigingen. Jan werkt sinds 2006 als machinst bij de Dubble Knoop, toen hij net begonnen was viel een van de matrozen van het dek. Na deze gebeurtenis is Jan zich gaan afvragen of er niet een soort systeem bestaat die niet in de gaten kan houden waar iedereen is. Jan is single en hij woont in een caravan op een standplaats. Jan heeft redelijk veel technische kennis en is daardoor niet bang voor de vele nieuwe technieken die steeds weer ontwikkeld worden om het varen veiliger te maken. Het liefts heeft hij wel een apparaat dat makkelijk te gebruiken is want veel van zijn medematrozen zijn geen techneuten. 3.3 Piet de Nul Piet de Nul is een matroos op het schip, hij is 26 en is 6 jaar geleden aan boord gekomen. Enkele jaren geleden viel een van zijn medematrozen van het dek, hij werd niet meer gevonden. Sinds die dag is Piet altijd op zijn hoede, en bang voor sterke wind. Piet is in een relatie me Anna Drijver, van wie de zus getrouwt is met Henk Boots. Piet kan niet rustig over het dek lopen omdat hij altijd bang is dat een sterke windruk hem van het schip zal afsmijten en hij nooit meer gevonden zal worden. Als er een mogelijkheid bestond dat hij terug gevonden kon worden zou Piet s nachts rustig kunnen slapen. 6
4. Storyboard 4.1 Storyboard game Speler kiest voor de snelle of de veilige weg. Bij de snelle versie gaan de boot en containers erg snel het wordt behoorlijk lastig om veilig aan te komen. Bij veilig is de snelheid traag het spel is haalbaar maar duurt lang. Containers vallen van boven richting de speler. De containers worden willekeurig verspreid over het speelveld. Speler moet de containers ontwijken. Dit doet de speler door zijn schip naar links en rechts te manoeuvreren. 7
Naar rechts gemanoeuvreert. haven. Na manoeuvre verder richting Als dit niet lukt is het game over. Filmpje zeevaart start Lukt het wel dan komt de speler aan bij de haven. Filmpje zeevaart start. Itopia optie erbij. Bij de oude opties komt een verzekerings mannetje die stuurt richting de itopia oplossing. De containers worden weggesleept. De speler kan er snel doorheen. Speler komt veilig aan in de haven. 8
4.2 Storyboard filmpje zeevaart inzoom inzoom gaat door Schip vaart. Inzoom stopt. schip. Container vallen van het Containers blijven achter in zee. drijvende Ander schip botst tegen de containers op. Het schip zinkt door de containers. Itopia heeft een gps ontwikkeld en geïnstalleerd 9
Container is te zien op de radar. De containers kunnen snel worden opgehaald. Dit voorkomt enorm veel schade. worden Kostbare bezittingen kunnen gered. 10
4.3 Storyboard MME 11
5. Functioneel ontwerp Onze MME heeft als doel om aan de hand van een product te laten zien wat ITopia kan op technisch gebied. Daarnaast laten we met een filmpje zien welke mogelijkheden ITopia nog meer te bieden heeft, en hoe ITopia werkt. 5.1 Onze oplossing Onze oplossing voor de zeevaart laten we zien aan de hand van een game en twee filmpjes. Beiden laten zien dat het met de hulp van een fictief product gemaakt door ITopia de zeevaart goedkoper en veilig gemaakt kan worden. Dit is om de aandacht van de potentiële klant te krijgen. 5.2 De game De game geeft de gebruiker eerst twee mogelijkheden. Hij kan snel of veilig naar de haven. Bij veilig vaart het schip erg traag. De speler komt uiteindelijk wel aan bij de haven, maar omdat het lang duurde koste het ook veel. Bij de snelle optie is het spel haast niet haalbaar, hierdoor is er een grote kans dat je crasht en een crash kost natuurlijk veel geld. Op deze manier laten we de speler zien hoeveel geld het kost en hoe gevaarlijk ronddrijvende containers kunnen zijn. Na dit deel van de game komt er ook een filmpje die dit extra benadrukt. Deze beschrijven wij verderop. Hierna laten we de gebruiker het spel nog een keer spelen maar dan met de ITopia oplossing. Voordat de speler begint met spelen wordt een filmpje afgespeelt die de voordelen van de Itopia oplossing laat zien. Nu kan de speler het spel gaan spelen met onze oplossing. De speler zal nu nauwelijks iets hoeven te doen omdat alle containers voor hem worden weggesleept. Hierdoor komt de speler snel en veilig aan bij de haven wat veel geld en tijd bespaart. Naast de game wordt er op de andere projector een slideshow weergeven over ITopia. Wat ITopia doet en hoe ITopia (welke bussines units) in elkaar zit. 5.3 Zeevaart film Na de eerste game wordt er op de andere projector een film weergeven over het probleem binnen de zeevaart. Zie voor dit filmpje het eerder weergeven storyboard. De boodschap van het filmpje gaat over het door ons verzonnen gps tracking systeem. Deze wordt geplaatst in containers om deze zo snel, veilig en makkelijk mogelijk terug te vinden. Dit product bestaat alleen theoretisch en wordt ook niet gemaakt voor onze MME. Nadat de gebruiker het tweede keuze menu heeft gehad, de ITopia oplossing, komt er nog een filmpje. Dit filmpje weergeeft hoe wij het probleem binnen de zeevaart gaan oplossen. 12
5.4 Opstelling De opstelling die wij gaan gebruiken is als volgt; Op één beamer komt het spel te staan die gespeeld kan worden via een joystick die op een laptop is aangesloten. Op de andere beamer spelen de filmpjes af tussen de game onderdelen door. Anders draait hierop een van de filmpjes over de zeevaart. De filmpjes worden aangestuurd door een andere laptop. De gebruiker ziet als eerst een wit scherm met een blauwe knop. Dit is het beginscherm van de MME. Op de knop staat start in het wit geschreven. Deze opmaak is er ook voor het volgende scherm. Hier begint de game. Er zijn nu twee knoppen op het scherm met de opties snel en veilig. Het spel heeft een blauwe achtergrond. Dit is de zee waar je op vaart. De gebruiker is een grijze schip. De containers die drijven zijn geel van kleur. uiteindelijk komt de speler aan bij de haven. deze is zwart met een bruine kraan. achter de haven staan een aantal huizen. De eerste twee filmpjes hebben de hetzelfde kleurgebruik. 13
6. Technisch ontwerp 6.1 Menu en Game Het menu, welke de gebruiker als eerste te zien krijgt bij het opstarten van de MME is evenals de game geschreven in Flash. We hebben hier gebruikt gemaakt van de Flixel library. In de les actionscript hebben we kennis gemaakt met deze library en het maken van de game leek op deze manier niet heel moeilijk. We zijn gestart met de simpele besturing van het schip. Deze code konden we grotendeels uit de tutorial halen die we tijdens de les actionscript gedaan hadden: if (FlxG.keys.LEFT){ player.acceleration.x =- player.maxvelocity.x * 4; } if (FlxG.keys.RIGHT){ player.acceleration.x = player.maxvelocity.x * 4; } De mogelijkheid om vooruit of achteruit te gaan hebben we eruit gesloopt. Aangezien het de bedoeling was dat het schip automatisch vooruit gaat, en alleen de containers hoeft te ontwijken. De containers hebben we in een FlxGroup toegevoegt, deze hele groep heeft dezelfde snelheid. In eerste instantie hadden we één functie voor het raken van een container, hier hebben we een functie tussengebouwd, zodat de game doorhad of het schip tegen een container, de haven of de kraan aanbotst. Dit is het traject dat in de code wordt doorlopen wanneer het schip tegen een container botste: FlxG.overlap(containers, player, containerhit); public function containerhit(container:flxsprite, player:flxsprite):void { hit(container, player, container ); } public function hit(object:flxsprite, player:flxsprite, hittenobject:string):void { objecthit = hittenobject; mayplayermove = false; if(hittenobject == container ){ explosion.x = player.x + (player.width / 2) - (explosion.width / 2); explosion.y = player.y + (player.height / 2) - (explosion.height / 2); add(explosion); explosion.play( jump ); losedelay.start(); } else if (hittenobject == crane ) { windelay.start(); } } losedelay.start() is een functie die telt tot 1 seconde, na die seconde krijg je het verlies scherm te zien. Dit is simpelweg een sprite die naar voren komt met daarop iets als: U bent op een container gebotst, jaarlijks valler en enkele tienduizende containers van boten die een gevaar vormen voor andere schepen. 14
6.2 Classes Qua classes hebben we één hoofdclasse, alle andere classes extende van die classe. In die hoofdklasse staan enkele algemene functies en variabelen die door alle levels gebruikt worden, bijvoorbeeld om je progressie te meten binnen de game. Verder is er voor elk level een classe, in deze classe worden alleen de dingen aangegeven die verschillen per level. Snelheid van de boot/containers en de positie van de contianers: public function createcontainer(x:int, y:int, speed:int):void 6.3 Besturing De besturing van de game word gedaan via een Phidget verbonden aan een Ministick. De Phidget word door Java uitgelezen en omgezet naar virtuele key-events. Dit java programma wordt los op de achtergrond gedraaid met de Flash game op de voorgrond. De manier waarop de Flash game en Java-phidget met elkaar communiceren is compleet via het toetsenbord. De Flash game luistert naar key-events en het Java programma creëerd virtuele key-events het uitlezen van de Phidget doen we met een getsensorevalue(), en zetten we dan ook in een variable: int stig = ministick.getsensorvalue(6); De ministick sensor geeft via de digitale ingang een getal van 0 t/m 1000. Ongeveer 500 is de neutrale stand van de sensor. Als de ministick bijvoorbeeld naar links word geduwd zal de waarde kleiner word. Met een if-statement kunnen we dan er voor zorgen dat als de waarde stig kleiner wordt dan 400, er een keypress event wordt gedaan op het virtuele keybord, in dit geval pijltje naar links if (stig < 400) { robot.keypress(keyevent.vk_left); System.out.println( <- ); } Om er voor te zorgen dat als de ministick weer naar neutraal wordt gezet, dat de speler ook stop met bewegen, gebruiken we een key-release event. dit zorgt ervoor dat de knop los wordt gelaten. if (stig < 600 && stig > 400) { robot.keyrelease(keyevent.vk_left); robot.keyrelease(keyevent.vk_right); System.out.println( - ); } Als de waarde van de ministick tussen de 400 en 600 ligt, zal er een key-release event worden gecreëerd voor zowel links als rechts, plus een println() voor debug reden. Alle waarden tussen 400 en 600 worden dan ook niet geregistreerd door de game, en creëren dan ook een zogeheten deadzone voor de ministick. 15
6.4 Opstarten van video Op bepaalde momenten in de game moet er een video worden opgestart op een andere laptop. In de SNE les hebben we geleerd hoe we aan de hand van een Ad-hoc netwerk en PHP een video kan starten op een andere computer in VLC. Voor onze MME zetten wij ook zo een Ad-hoc netwerk op. We draaien een lokale server waar de andere computer ook verbinding mee maakt. In Flash bezoeken wij een PHP bestand die op de lokale server staat. Dit PHP bestand verzend een verzoek naar het hele netwerk om een bepaalde video op te starten. Alle computers die verbinding hebben met dit netwerk en VLC hebben opstaan zullen die video openen. In Flash zetten we ondertussen een timer aan, die timer duurt net zo lang als de film die op de andere laptop wordt afgespeeld. Wanneer het filmpje is afgelopen gaat de game ook weer verder, en komt het keuze menu te voorschijn, of start de tweede game, afhankelijk van het moment in de MME 16
7. Feedback In week zes hebben we in de feedback-les, feedback gehad op hetgeen we op dat moment af hadden. De feedback ging voornamelijk over de bruikbaarheid van de MME. Uit deze feedback blijkt dat de MME vrij weinig keuze geeft aan de gebruiker. Het systeem stuurt de gebruiker langs één richting. Wij hadden nog geen mogelijkheid tot keuze in de MME. Er waren wel enkele menu s maar wanneer er een keuze was liep één pad altijd dood, waardoor er dus alsnog geen keuze overblijft. Aan de hand van deze feedback hebben we de optie Snel varen en Veilig varen erin gezet. Nu kiest de gebruiker voor veilig of snel en vervolgt zijn weg op dat pad. Uiteindelijk komen beide paden wel weer bij elkaar. Maar dat valt eigenlijk niet te voorkomen zonder heel veel extra werk te hebben. Buiten deze tekortkoming om vonden de personen die ons feedback gaven het een duidelijke interface, met heldere knoppen. (In de bijlage vind u het formulier wele bij de feedbackles is ingevuld) 17
8. Samenvatting Tijdens dit project heeft het project team veel geleerd over de werkwijze die nodig is om dit project tot een goed einde te brengen. Het project is op het moment van schrijven nog niet helemaal af. De films zijn gemaakt in Flash maar ze moeten nog ge-edit worden zodat het een geheel vormt. Op dit moment is de game grotendeels af maar het moet nog esthetisch mooier gemaakt worden. Verder moeten er nog een paar kleine dingen aangepast worden maar wij hebben er vertrouwen in dat wij dit project tot een goed einde kunnen brengen. Wij hopen dat u een beter inzicht hebt gekregen in ons project, welk proces wij zijn doorlopen, welke boodschappen wij willen overbrengen, en welke techniek wie hiervoor gebruikt hebben. Team 141 Arco Mul Neil Steenberg Sievajet Rahimbaksh Rehan Rana Amit Kalidin Jurjen Posthummes 18
Bronvermelding Sam Shipping bron: http://www.samshipping.nl/#/vlootbeheer Spaanssen bron: http://www.spaansen.nl/page/view/name/11-divisie-grondstoffen-en-logistiek Net Cargo bron: http://www.netcargouk.com/shipping/shipindex.htm) Info van de filmpjes: Hoeveel containers vallen er per jaar van een boot? Bron: http://www.ttm.nl/nieuws/id30249-aantal-verloren-containers-valt-reuze-mee. html http://www.nieuwsbladtransport.nl/modaliteiten/scheepvaart/ ArticleScheepvaart/tabid/141/ArticleID/18935/ArticleName/ Maarenkelehonderdencontainersperjaarvallenoverboord/Default.aspx Info over hoeveel containers er geborgen worden: Bron: http://www.bds.rotterdam.nl/bestuurlijke_informatie:7/raadsinformatie/ Gemeenteraad_2010_2014/2010/Kwartaal_2/Raadsvergadering_van_29_april_2010/ Mededeling_van_ingekomen_stukken_2010_weken_13_en_14/Beantwoording_ schr_vragen_van_raadsleden/10gr775_van_b_en_w_de_beantwoording_van_ schriftelijke_vragen_van_de_heer_a_bonte_over_afvaldumping_op_zee Kosten berging container 9.000: Bron: http://www.fov.nl/preventieplein/schepen/preventiegids12.pdf 19
Bijlages 20