IN1060: Bruksorientert design

Like dokumenter
Teknisk rapport. Julian Vars. Haweya Jama. Kjersti Viksaas. Yas Taheranpour. Inger Nordby Grønn. Institutt for informatikk. Universitetet i Oslo

Pseudonym presenterer TEKNISK RAPPORT. Medlemmer: Camilla Christensen, Emma Tvinnereim, Hedda Dyngeland og Maren Berge

Teknisk rapport. IN Bruksorientert design. boks

Reunited. Hanna Dokken, Rhea Toling, Marlene Hasle, Suresh Sapkota & Jonas Blårud. Teknisk rapport. IN Bruksorientert design.

Prototyping med Arduino del 3

Teknisk dokumentasjon for Ludosphaera

Brukerveiledning for oppkobling av Wifi adapter MAC-567IFB-E

Lenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb

IN1060: Bruksorientert design Sluttrapport Vår EcoTeko. ashwinsr karinpa jessickg sauravp. Prosjektrapport. IN1060: Bruksorientert design

Blinkende lysdiode Introduksjon Arduino Lærerveiledning

BRUKERVEILEDNING Oppkobling av MAC-567IF-E WiFi-adapter

JafseFisk. Introduksjon. Steg 1: JafseFisk følger musepekeren. Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk)

WORKSHOP BRUK AV SENSORTEKNOLOGI

PXT: Himmelfall. Introduksjon. Skrevet av: Helene Isnes og Julie Revdahl

Steg 1: Installere programvaren

PXT: Bjelleklang. Introduksjon. Skrevet av: Kolbjørn Engeland, Julie Revdahl

IN1060: Bruksorientert design

Øvingsforelesning TDT4105

PXT: Spå fremtiden med bilder

INF1510: Bruksorientert design

Prototyping og kommunikasjon med brukere

MAC-567IFB-E, her: Wifi adapteret, er plassert på en hylle øverst til høyre under frontdekselet på innedelen.

Steg 1: JafseFisk følger musepekeren

Dato oppdatert: DISPENSER

PowerView Motorisering Intelligente gardiner som gjør livet ditt enklere

På den måten fjerner du stress og rot slik at det å planlegge mat og middager fremover blir gøy, og du sparer penger.

Redd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon

5. TEGNFORKLARING FOR DE NESTE SKISSENE: : HOLD KNAPPEN INNE : SLIPP KNAPPEN. 6. Samme som engelsk versjon.

1. Arduino Bluetooth 2 HC-05 modul

INF1510: Bruksorientert design

VESTLIA BORETTSLAG - REKKEHUS

INF1010 notat: Binærsøking og quicksort

Teknisk Rapport HVASS

PXT: Det regner mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes

Steg 1: Piler og knappetrykk

Innhold. NOX Light. 1. Reset hull 2. Micro SD Kort plass 3. Mikrofon 4. USB inngang 5. På/Av Record Button 6. Nox Light kamera

GUI («Graphical User Interface») del 2

MIKROPROSESSOR KONTROLL

Brukermanual for nettpublisering. frivilligsentral.no

EKSAMEN. Emne: Algoritmer og datastrukturer

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Løpende strekmann Erfaren Videregående Python PDF

Kom i gang 3: Kompleks sekvens av tavler

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Scratch. Skrevet av: Geir Arne Hjelle

Hvor i All Verden? Del 3. Introduksjon. Steg 0: Forrige gang. Sjekkliste. Skrevet av: Geir Arne Hjelle

DMX12 12 Kanalers DMX Lys Mikser

Rapport Øving 1 TDT4258 Mikrokontroller Systemdesign

CC800A Digital fyllevekt

Gi kundene tilgang til å redigere egne data ved hjelp av landingssider

Steg 1: Katten og fotballbanen

GUI («Graphical User Interface») del 2

TDT4100 Objektorientert programmering

INF1510 Oblig #1. Kjetil Heen, februar 2016

Communicate SymWriter: R5. Brett og knapper

Rull-en-ball Introduksjon Unity PDF

PGZ - Hangman Ekspert Python Lærerveiledning

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Steg 1: Hvordan styre figurer med piltastene

in1060: Hva er en god rapport og video? Tone Bratteteig & Inger Helene Howells Engebretsen & Anna So6ie Schei

Kokebok for einnsyn. Verktøy for å kartlegge holdninger. Versjon 0.2

ØstCom Mobil Skyveport Feilsøking og Funksjonskontroll Motor BX-246

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Kom i gang med Klasserom-appen. Lærerveiledning til Klasserom-appen for Mac

Communicate SymWriter: R1 Lage en tavle

Oppretting av renn med VOLA timing. Hente løpere fra Sportsadmin

EAGLE 1600 Wireless Extender

Flaksefugl Nybegynner Scratch Lærerveiledning

INF1510: Bruksorientert design

Hurtigstartguide KUBO CODING+

Turny bladvender Brukerveiledning

EBR707C BRUKSANVISNING

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Skrevet av: Geir Arne Hjelle

Obligatorisk oppgave 1 INF1020 h2005

Breakout. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle og Martin Lie

Instrument för målning av komprimeringen i grunnen. CompactoBar ALFA N/0827

Brukerhåndbok Programområde

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Algoritmer og Datastrukturer

Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister

Din veiledning til. Genotropin (somatropin, rbe) ferdigfylt injeksjonspenn

Løsnings forslag i java In115, Våren 1996

DiabetesDagboken øvingsoppgaver for opplæring

Spesifikasjon av Lag emne

Forfattere: Andrea Leikvold og Hege Louise Borge, 5. klasse informatikk, NTNU

Eagle 1500 FAQ. Innholdsfortegnelse

WIRELESS AC 1200 FRACTUS RANGE EXTENDER

DIR-635 TRÅDLØS ROUTER. Brukerveiledning for D-Link DIR-635

BRUKSANVISNING Milestone 310 Digital Opptaker

INF1510: Obligatorisk oppgave 2: prosjektforslag

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8

Steg 1: Få Flakse til å falle

7-Segment Display Nybegynner Arduino Lærerveiledning

Transkript:

ashwinsr karinpa jessickg sauravp IN1060: Bruksorientert design Sluttvurdering - teknisk dokumentasjon m/ video av prototype ECOTEKO Vår 2019 Side 1 / 9

Innholdsfortegnelse 1. Introduksjon 2 2. Mål og visjon 3 3. Video 3 4. Prototype intro 4 4.1 Beskrivelse. 4 4.2 Komponenter.. 5 4.3 Illustrasjoner av krets. 6 5. Kode 7 5.1 Logikk og struktur.. 7 5.2 Aktivitetsdiagram... 8 5.3 Gjennomgang. 9 Side 2 / 9

1. Introduksjon I denne rapporten skal vi gå gjennom den tekniske siden av prosjektet vårt. Rapporten inneholder en grundig oversikt over det indre oppsettet av prototypen. Vi forklarer først vårt mål og visjon med løsningen. Prosjekt-videoen som demonstrerer prototypen i en bruksscenario er også lenket til. Deretter skal vi ha grundig gjennomgang av strukturen og logikken bak koden sammen med krets illustrasjon. 2. Mål og visjon Vi har, gjennom brukerorientert prosjektarbeid, jobbet med miljø som tema. Målgruppen vår er familier med barn. I begynnelsen fokuserte vi hovedsakelig på sortering og avfall, men i senere løp innså vi at matrester er en potensiell utfordring for familier. Vårt nye mål ble å hjelpe med redusering av matsvinn blant målgruppen. Visjonen vår for dette prosjektet var å bidra til å synliggjøre og oppmuntre gjenbruk av restemat. Gjennom brukerinvolvering med flere iterasjoner og analyse har vi produsert og evaluert en prototype som vi føler oppfyller dette målet. Vi føler at denne prototypen inntreffer målgruppens behov og gjennom resten av rapporten skal vi begrunne hvilke tekniske beslutninger vi har tatt for å oppnå denne visjonen. 3. Video Bruks-scenario: Scene 1: Presentasjon av problemstilling Scene 2: Familien blir introdusert Scene 3: De har spist ferdig middag og legger restene opp i en boks Scene 4: Moren åpner kjøleskapet og legger maten på en hylle Scene 5: Barnet åpnet kjøleskapet og tar ut boksen Scene 6: Barnet sitter med restene foran seg og ønsker å spise. Scene 7: Mor kommer og lukter på maten Scene 8: Moren kaster maten i søppla Scene 9: Ny løsning blir presentert Scene 10: Moren åpner kjøleskapet og legger maten inne i beholderen Scene 11: Moren legger inn kategorien og starter timer Secen 12: Boksen indikerer matens status Scene 13: Moren tar ut maten, sjekker boksens innhold og velger forslags kort Scene 14: Restene blir til en ny rett Scene 15: EcoTeko logo Link til video : https://youtu.be/rfpntzvezdk Side 3 / 9

4. Prototype intro 4.1 Beskrivelse Løsningen vår består av en prototype med 2 deler, to beholdere som skal plasseres inne i kjøleskapet og et sentral-brett som kan festes utenfor på kjøleskapsdøra. Selve interaksjonen foregår på sentral-brettet, der de enkelt tar i bruk en keypad for å velge kategoriene. Vi har totalt 5 kategorier: kjøtt, grønnsaker, fisk, korn og meieri. Alle har ulik holdbarhetstid med hver sin unike lysdiode øverst på brettet. Dessuten har vi plassert forslags-kort til hver kategori på toppen av brettet. De er lette å ta ut og skal hjelpe bruker med å pynte på restematen slik at den blir attraktivt å spise. For å minske brukerfeil har vi dessuten implementert at bruker er nødt til å velge en beholder før de kan begynne å velge kategorier. Da vet systemet hvilken beholder kategori-valgene gjelder for. Nederst på begge sider av keypad har vi knapper for beholder-1 og beholder-2 og i midten av dem har vi reset knappen som resetter alt av verdier i systemet. Ved interaksjon med sentral-brettet får bruker feedback på sine handlinger via lysdioder. Bruker får et tidsvindu på ca. 10 sekunder for å velge kategoriene for en beholder. Etter disse 10 sekundene blir da alle diodene slått av og bruker må igjen velge en beholder for å velge flere kategorier. Dersom de taster inn feil kategori, kan de enkelt trykke reset knappen og deretter nullstille alle kategorivalg for den bestemte beholderen. For fremtidig implementasjon hadde trådløs tilkobling mellom beholderen og sentral-brettet vært fornuftig med tanke på at beholderen skal være lukket inne i kjøleskapet. For å sjekke om kjøleskapsdør er åpnet hadde vi planlagt å bruke en lyssensor på beholderen siden det er hensiktsløs å belyse beholderen uten bruker tilstede. Vi valgte å ikke implementere disse kravene siden de ikke var avgjørende for evalueringen. Side 4 / 9

4.2 Komponenter Side 5 / 9

4.3 Illustrasjoner av krets Kommentar: Kretstegning laget i Fritzing Side 6 / 9

5. Kode I denne delen skal vi analysere koden og følge programflyten der vi ser på alternative brukervalg og hvilke konsekvenser det medfører. Først skal vi se på et aktivitetsdiagram som gir en overordnet oversikt over den trinnvise progresjonen av koden og deretter går vi gjennom aktivitetene steg for steg og utdyper logikken bak. 5.1 Logikk og struktur For bedre oversikt har vi definert og kategorisert like variabler under hverandre øverst i koden. Dette har gitt oss mulighet til å raskt finne fram og endre kode ved behov. For prototypen har vi tatt i bruk komponenter som LED Strips og keypad. For disse har vi brukt bibliotekene: Adafruit_NeoPixel fra Adafruit og KeyMatrix fra Goncalo Baltazar For oppsett av keypad tok vi utgangspunkt i denne siden: ( http://learning.grobotronics.com/2013/07/using-a-3x4-keypad/?fbclid=iwar29y7mrjk3thqeptozplrm WaRBxysTLfG6N9nwSMZdNHVzfl4hfi7wxov0 ) For oppsett av LED Strips: ( https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-use ) For å bestemme hvilke kategorier som er valgt for en beholder,definerte vi en boolean array for hver av beholderene i tillegg til en array med alle portvariabler. Deretter sammenligner vi boolean arrayene opp mot port arrayen og bestemmer hvilke porter som skal få strømtilførsel; alle porter der indeks er true får strømtilgang. I tillegg har vi også definert en sortert array med holdbarhetstid for hver av kategoriene (fra høyest til lavest).dette tar systemet utgangspunkt i når den bestemmer den totale tiden (altså hvor lang tid før brukeren må sjekke på restene). Etter beregning velges alltid kategorien med laveste holdbarhetstid. Etter at total tiden har blitt bestemt, går timeren gjennom 3 ulike steg før den signaliserer til bruker at restene bør spises. Hvert steg bestemmer hvilke farge LED stripen skal bytte til. Side 7 / 9

5.2 Aktivitetsdiagram Side 8 / 9

5.3 Gjennomgang Med keypad.getkey( ) måler vi knappetrykk, når bruker trykker på en knapp endres verdien for key fra NULL og knapptrykket(... ) metoden kalles. Deretter sjekkes det først om en av boksene har blitt valgt. If nei: blink( ) kalles og begge boks-diodene blinker For den boksen som har blitt valgt kalles visvalgtekategorier( ) som igjen kaller på skrupa(...) for å skru på alle kategori-diodene for den beholderen. Videre sjekkes det om resetknappen ( 0 ) har blitt trykket. if ja: reset( ) kalles som reinitialiserer alle verdier med stansalt( ) og slår av alle dioder med skruav(...) settbokskategori(...) omgjør knappens verdi til indeks, lagrer valg og slår på den samsvarende kategori-dioden. Samtidig definerer vi total tiden ved å addere den løpende tiden med finntimertid(...) som returnerer tiden til valgt kategori med lavest holdbarhetstid. Deretter kalles valgtidpassert( ) i loop( ) som sjekker om tidsvindu for valg av kategorier har passert. if ja: skruav(...) kalles for å skru av alle diodene og setttimer( ) oppdaterer LED stripen på beholderene ut ifra total tidens farge steg Etter gjentatte kjøringer oppdateres setttimer( ) til siste farge steg, da kalles ferdig( ) som igjen kaller på blink( ) og stansalt( ) som indikerer at restematen bør sjekkes på og resetter de nødvendige verdiene. Side 9 / 9