torsdag den 4. november 2010

Specialeforsvar

Fra 4 måneder siden skrev jeg om at jeg havde afleveret mit speciale og lovede at vende tilbage efter at det var blevet forsvaret. Det er så ved at være over 3 måneder siden at jeg var til specialeforsvar og nu er det vist ved at være på tide at jeg skriver om det.
Specialet kan ses på http://speciale.barmonger.org/, hvor det både er muligt at se rapporten, billeder af produktet og videoer der viser hvad det kan. Der er selvfølgelig også kildekode til programmet og de indlejrede enheder, referencer fra rapporten og slideshow fra fremlæggelsen.

Som jeg beskrev sidst var emnet for mit speciale
'Udvikling af et framework til dynamiske interaktive historier'
med undertitlen
'Digital historiefortælling med mobiltelefoner og Arduino-enheder'.


Introduktion
Titlen dækker over et par forskellige ting, som jeg kort vil forsøge at beskrive her:
Interaktive historier er historier hvor man som læser/bruger er en del af den historie der bliver afspillet, og hvor man har mulighed for at interagere med den enten direkte igennem mediet eller ved at interagere med den omkringliggende verden.
Den dynamiske del betyder at historien løbende tilpasser sig de valg, som brugeren foretager sig. Dette kan ske ved at brugeren bliver sendt forskellige steder hen, ved at forskellige lydklip afspilles eller lignende.

Undertitlen beskriver at den type historier, som jeg arbejder med, bliver afviklet på en mobiltelefon (vha. tekst, lyd, video, kamera, SMS, GPS osv.) samt at interaktionen med den fysiske verden håndteres af nogle små indlejrede enheder, kaldet Arduino-enheder (enheden til højre på billedet herunder).



Formålet
Idéen med specialet var at udvide den eksisterende mobile historieafvikling med en mulighed for at interagere med den virkelige verden og for at den virkelige verden kan interagere med historien.

Jeg ønskede at udvide en eksisterende historieplatform (til mobiltelefoner) med mulighed for, via Bluetooth, at kunne styre/aflæse en række aktuatorer og sensorer der er placeret i det fysiske rum.
Disse aktuatorer kan så forbindes til alle mulige former for enheder (tænde og slukke for ting, aktivere motorer til bevægelse og andet aktivering/deaktivering af fysiske enheder) og sensorerne kan aflæse en masse forskellige ting fra rummet (lys, varme, fugtighed, bevægelse osv.).

Ved at man fra historien kan aktivere aktuatorerne (eller aflæse sensorerne) bliver det pludseligt muligt at lave historier som aktiveres af den virkelige verden (og som ændrer ved det miljø historien afvikles i).
F.eks. kan lyset gå ud når man kommer til et uhyggeligt sted i historien eller en virkelig dør kan gå op når det samme sker i historien osv.



Krav til produktet
Alt dette skal foregå automatisk efter at brugeren har installeret og startet programmet.
Hvis programmet finder en tilhørende Arduino-enhed skal den selv hente en beskrivelse af enheden og automatisk generere en brugergrænseflade der passer til enhedens funktionalitet. I brugergrænsefladen skal det være muligt at have historiefortælling, billeder og lyd, samt en mulighed for at aflæse alle sensorer og påvirke alle aktuatorer, der er forbundet til enheden.

Samtidig er det ikke meningen at mobiltelefonen (og programmet derpå) skal kende de enkelte Arduino-enheder på forhånd, men blot konfigurere sig selv i forhold til hvad de kan. Medieressourcer (billeder, lyde m.m.) hentes så fra enheden eller nettet efterhånden som telefonen bevæger sig rundt.
Sensorer skal automatisk aflæses af programmet mens det er forbundet til en enhed, og det skal være muligt konstant at påvirke aktuatorerne og ændre deres tilstand/værdi.
Det hele skal foregå via Bluetooth fra mobilen til Arduino-enheden.

Dette stiller relativt store krav til analysefasen og designet af løsningen, men heldigvis havde jeg mulighed for at bygge ovenpå en eksisterende historieplatform og jeg kunne derfor "nøjes" med at udvikle de elementer jeg beskrev her ovenfor.



Mit resultat
Resultatet af mine undersøgelser, analyser, prototyper og test blev en prototypeapplikation til mobiltelefoner, hvor jeg demonstrerer forskellige muligheder for fysisk interaktion fra historien. Historien er en simpel rundvisning på et fiktivt museum.
På museet er der tre udstillinger, som hver er forsynet med en Arduino-enhed (der på et rigtigt museum skulle være gemt bag udstillingen, inden i væggen eller lignende). Disse enheder
For at illustrere linker jeg her til de tre videoer jeg har lavet af produktet.

I første video ser man rundvisningsprogrammet der finder den første enhed, som blot indeholder en række billeder og tilhørende beskrivelser. Telefonen downloader en beskrivelse af enheden, henter de nødvendige medieressourcer og opretter en brugergrænseflade der giver mulighed for at se billeder og beskrivelser.



I næste video viser jeg hvordan det samme program kan interagere med en Arduino-enhed hvortil der er forbundet en lyssensor og en temperatursensor.
Programmet downloader en beskrivelse af enheden og laver en brugergrænseflade hvor man kan se målinger fra sensorerne (som automatisk opdateres løbende mens programmet kører).



I den sidste video forbindes der til et enhed, der er forbundet til et lille elektronisk miniakvarium. Ved at oprette en brugergrænseflade med en række knapper på, er det muligt fra mobiltelefonen at styre dette akvarium, ved at tænde og slukke for en motor (der får goplerne til at bevæge sig) eller tænde og slukke for lyset deri.



Forsvar
Jeg var til forsvar den 25. juni, hvilket gik ganske glimrende og jeg endte med at få et 12-tal for mit projekt og min rapport :-)