Automatisering Af Hverdagen



Relaterede dokumenter
Afsluttende - Projekt

Informations Teknologi Indholdsfortegnelse

Dokumentation af programmering i Python 2.75

Projekt - Valgfrit Tema

HTX. Afsluttende projekt. E-learning Komunikation/It C Helena, Katrine og Rikke

1. Indledning. 2. Laswell s fem spørgsmål. Hvem (afsender) Siger hvad (budskab)

Hold nu op, det har været en total hektisk uge i innovationens tegn!!!

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

Børn, unge og sundhed

Kravspecifikation For. Gruppen

Design og funktionel prototype

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

IFC Egenskaber. Mohammad Hussain Parsianfar s BYG DTU

Computerspil dokumentation. Dokumentation af spillet Rescue Me

Evaluering af KidSmart

Succeskriterier og mål for projektet

Jeg ville udfordre eleverne med en opgave, som ikke umiddelbar var målbar; Hvor høj er skolens flagstang?.

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Faglig identitet om at skabe et fælles engagement i uddannelsen

Guide til din computer

Superskolernes kampagne

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

ROSKILDE TEKNISKE GYMNASIUM. Læringsprogram. Lommeregner

At lave dit eget spørgeskema

2. rejsebrev fra London

L Æ R I N G S H I S T O R I E

PCSYS Label Print Server. Labeludskrift på fælles platform til alle virksomhedens printere.

AFSLUTTENDE OPGAVE. udemiljø

Computerspil rapport. Kommunikation og IT. HTX Roskilde klasse 1.4. Casper, Mathias Nakayama, Anders, Lasse og Mads BC. Lærer - Karl Bjarnason

Projekt Når maskinen reagerer - Dataopsamling og aktuatorer

Michael Jokil

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

GRAFISK PRODUKTIONSFORSTÅELSE

Søren Christiansen

Sammendrag af uanmeldte tilsyn De uanmeldte tilsyn er gennemført i perioden september til november 2012:

Roskildes tekniske gymnasium. Kulløse Mijlømesse. Afsluttende kom/it projekt

Evaluering af Udeskole Rønnebæk skole. Udeskole

Mælkeby, matematik, klasse

Cecilie Maria Nielsen, Mathias Fornitz Eriksen og Martin Arnetoft klasse

Dokumentation til Computerspil

ysikrapport: Maila Walmod, 1.3 HTX, Rosklide I gruppe med Morten Hedetoft, Kasper Merrild og Theis Hansen Afleveringsdato: 28/2/08

Del filer i hjemmet. Hvis dit hjem har to eller min. NY SERIE

Arbejdsblad. Indhold. 27. maj 2010 A Projektplanlægning 1. 2 Samarbejdet i gruppen 3. 3 Samarbejdet med vejlederne 5

Computerens anatomi. Flashklip for børn

Indholdsfortegnelse. Indledning...2. Tidsplan...2. Målgruppe...3. Spørgeskema...3. Kode eksempler...5. Procesbeskrivelse...7. Evaluering...

Computerspil. Hangman. Stefan Harding, Thomas Bork, Bertram Olsen, Nicklas Thyssen og Ulrik Larsen Roskilde Tekniske Gymnasium.

Lineære modeller. Taxakørsel: Et taxa selskab tager 15 kr. pr. km man kører i deres taxa. Hvis vi kører 2 km i taxaen koster turen altså

Navision i undervisningen

Guide til digital børnetilmelding

PerfectSale - Et online salgsoptimerings værktøj

Børn med særlige behov: Hvad har vi gjort for at inkludere dem i fællesskabet.


Lemvig kristne Friskole Skoleåret

RUTruteplanlægningsvejledning. Folkekirkens Nødhjælp Sogneindsamling 2015

sådan får du succes med dit nyhedsbrev

Netprøver.dk. Brugervejledning til Brugeradministratorer

Computerens Anatomi. Kom/IT C - Computer Anatomi - Daniel og Fie - 3/ Planlægning af kommunikationsvalg og medieprodukt.

Undervisningsbeskrivelse

Sådan laver du ansættelsesbreve

Kulløse Miljømesse

i3touch FÅ MERE UD AF SAMARBEJDET MED INTERAKTIVE TOUCHSKÆRME

Den automatiske sanseforventningsproces

Det skrå kast, en simulation

Oplæg hjemmesideløsning kun for NORDLYS medlemmer i samarbejde med Attraktia

»Jeg havde ikke lyst til at bruge kompetencehjulet

6. November 2014 JB Plastics Projekt Gruppe D MULA Rie, Rasmus Seindal, Benjamin Vinje,Andreas, Anders, Jonatan Vanja og Pia JB PLASTICS

Sensor Finder v. 1.3.

DET NYE VÆKSTMARKED BEDSTEFORÆLDREKØB TIL BØRNEBØRN BLIV FIRST MOVER OG FÅ DANMARKS FØRSTE ANALYSE AF BEDSTEFORÆLDREMARKEDET!

VG 40 Computer vejledning

En praktisk håndbog om tips til anvendelsen af. som effektivt redskab

Regneark II Calc Open Office

Introduktion til kurset:

Revideret projektplan til 1. marts bliver formentlig i stikord, men her følger opsatte milepæle:

Visualiseringsprogram

Design Generelt. Udformningen. Inden man fremstiller et design skal man finde ud af 4 ting: Målgruppen.

i3projector FORVANDL ENHVER OVERFLADE TIL ET INTERAKTIVT LÆRINGSMILJØ

Eksamen forår og sommer 2014

DGMF Kursus i Digitalcentralen. Rev. 19 / Poul Erik Christiansen. DiMAX 1200Z Digitalcentral

Har du set underviserens video om RNA oprensning inden du gik i laboratoriet?

DOF GUIDE TIL STRATEGISK FUNDRAISING. Udarbejdet af TILSKUDSBASEN.DK

Teknologihistorie. Historien bag FIA-metoden

Interview PH-Lampe(Mikkel, Lukas, Anders)

Portfolio og formativ evaluering i matematikundervisningen

Kia Christensen Mercy in Action, 2. Rejsebrev

TAP'ers evaluering af fleksordning Dato :20:03

6. klasse. Børnearbejde

Side 1. En rigtig søhelt. historien om peder willemoes.

Programmering 19/ ROSKILDE TEKNISKE GYMNASIUM. Projektbeskrivelse. Programmering. Rasmus Kibsgaard Riehn-Kristensen

Workflow 8.0 stort spring med store forbedringer

ATP s digitaliseringsstrategi

Rapport fra udvekslingsophold

Automatisk Vandingssystem. Rettelser. 1 af 11

Transkript:

Automatisering Af Hverdagen Programmering - Eksamensopgave 10-05-2011 Roskilde Tekniske Gymnasium (Kl. 3,3m) Mads Christiansen & Tobias Hjelholt Svendsen

2 Automatisering Af Hverdagen Indhold Introduktion:... 3 Udviklingsforløb:... 6 Sideprojekt:... 8 Temperaturmåler... 8 Videreudvikling:... 9 Program Endelige Prototype:... 10 Temperaturmåler:... 12 Tobias Hjelholt Svendsen & Mads Christiansen Side 2

3 Automatisering Af Hverdagen Introduktion: Arduino er en open-source platform, der har mange egenskaber. Arduinoen har formålet, at gøre elektronik-projekter og programmering mere tilgængeligt og nemmere for studerende og professionelle. Arduino er et projekt der er blevet udviklet og forbedret over flere år. Det startede i 2005, i Italien. Meningen var at lave et redskab der kunne bruges til studerende, som skulle være billigt og nemt at bruge. Før Arduiono en blev skabt, blev der hovedsageligt brugt et redskab der hed BASIC Stamp, hvilket også var en nem og simpel platform at bruge, problemet med BASIC Stamp var prisen, da den kostede omkring 100$ på tidspunktet, hvilket der var mange studerende der ikke havde råd til, derfor var der brug for en billig alternativ løsning. Vores produkt vil kunne hjælpe ved at indkøbslister nemme at lave. Hvis man åbner køleskabet og ser at der er mangler, er man ofte ikke villig til at skrive en indkøbsliste med det samme, og man glemmer derfor ofte hvad der manglede. Vores produkt vil gøre det muligt at skrive en liste nemt og hurtigt, uden det store besvær. Produktet er en LCD der vil vise hvad man skal købe, skærmen vi blive styret af en Arduino, som får input af brugeren, som selvfølgelig vil blive nødt til at fortælle manglerne i køleskabet. Dette kan gøres ved at trykke på en knap, med et label hvor der står den specifikke vare. Den information vil så blive sendt videre til Arduinoen og til sidst LCD en. Fordelen ved at have skærmen sat op på selve køleskabet, er at den vil være så tæt som muligt på varerne, hvilket jo er relevant når man skal lave sin liste. Produktet i sig selv er simpelt, da det bare en input fra brugeren som skal vises på en skærm. Det er selve brugerfladen der er vigtig, da den skal være praktisk, og samtidig være indbydende at se på, da den vil være iøjenfaldne for de fleste, på grund af dets placering. Produktets omgivelser spiller altså en stor rolle, da der ofte bliver brugt meget tid køkkenet i en normal familie, og der er derfor brug for et produkt som man kan holde ud at se på i længere tid. Produktet skal også være kompakt, da de fleste gerne vil have plads til at hænge ting på deres køleskab, med magneter osv. Hele pointen med produktet er, at den skal være praktisk, det indebærer derfor også at den ikke skal stjæle for meget plads, da det kan være meget upraktisk, ikke at have plads på sit køleskab til eventuelle huskenoter, som ikke omhandler indkøb, eller kalendere osv. Det gode ved a bruge en Arduino med en LCD er, at de kan bruges til flere forskellige ting, det vil derfor også være muligt at lave flere funktioner til LCD en, for eksempel en temperatur-måler, der kan fortælle hvor mange grader der er i køleskabet, så når der ikke længere er brug for en indkøbsliste, kan den have et andet formål. Vores produkt vil derfor være multifunktionelt, og gøre det muligt for brugeren at vælge imellem flere egenskaber, som er relevante i forhold til indkøb og vedligeholdelse af varer. Det virker underligt at mange køleskabe, som er store redskaber, der fylder meget i huset, ikke har nogle andre egenskaber end at køle varer ned, derfor synes det at være en god idé at ændre på dette. Der vil være et stort marked for sådan et redskab, da køleskabe er et udbredt produkt, som i de fleste tilfælde er et must i husstande verden over. Tobias Hjelholt Svendsen & Mads Christiansen Side 3

4 Automatisering Af Hverdagen Programmet er skrevet i Python og skulle senere forbindes til Arduino og dens LCD funktion. Projektet startede med at der blev lavet en tidsplan, som skulle guide gruppen gennem forløbet, så man ikke endte med at have for travlt den sidste uge, eller i værste fald ikke nåede at lave produktet færdigt. Foruden Python brugte vi sub-programmet i Python, som hedder TKinter. TKinter er standard hos Python hvilket betyder at det følger med i pakken, og der vil derfor ikke være problemer med at skaffe kompatible pakker, som kunne skabe problemer. Der var overvejelser om vi skulle benytte pyqt, men det blev valgt fra, på grund af dårlige erfaringer. GUI (Graphical User Interface) er et vigtigt redskab, når man skal udforme et produkt, som der er brugere der skal benytte. GUI er et redskab der gør det muligt, for brugerne at give informationer til et program, for eksempel ved at have knapper, der giver information, som programmet bag interfacet kan behandle og give videre, så brugeren får de informationer der er nødvendige. GUI bliver brugt til mange ting inde for computere, mp3 og andre redskaber som er elektroniske. Faktisk er GUI et meget vidt begreb, da de fleste elektroniske komponenter(med skærm) har en form for interface, der kan behandle information som brugeren giver. Disse komponenter indebærer for eksempel; computere, mp3-afspillere, lommeregnere og mange, mange flere. Ting som kaffemaskiner og toastere, har ikke en GUI da de ikke har en grafisk brugerflade. TKinter er standard med Python, og er et redskab der laver GUI. TKinter passer godt med vores projekt, da der mulighed for at lave en simpel GUI, som samtidig er kompakt og nem at bruge. Vi udviklede programmet ved at teste det hele tiden, så vi ikke endte med at have et produkt fyldt med fejl (Extreme Programming), dette gjorde fejlfinding meget lettere, da vi vidste præcist hvad vi havde gjort efter test. Denne systemudviklingsmetode er især god, hvis man har problemer med det brugte programmeringssprog, da man sikrer sig at man ikke laver fejl i starten i programmet, som man senere skal lede efter og rette. Udover programmeringsprogrammer, har vi brugt Arduino og LCD (Liquid Crystal Display), som skulle fungere som de redskaber der sender selve informationerne ud til brugeren. Arduino er nem at programmere, da den har mange hjælpe-programmer og flere skabeloner, som passer til vores produkt + sideprojekter som også har spillet en stor rolle i vores projekt. Sideprojekterne som vi har lavet under udviklingsfasen, er hovedsageligt lavet på grund af Arduinoens mange egenskaber, som gør det muligt at tilslutte/programmere mange forskellige programmer til den. Derfor ville det være interessant at vise nogle af disse egenskaber, og samtidigt prøve at kombinere dem, så produktet kan være mere dækkende i forhold til de egenskaber, man kunne ønske sig i sammenhængen. Tobias Hjelholt Svendsen & Mads Christiansen Side 4

5 Automatisering Af Hverdagen Værktøjer Til udviklingen af vores prototype program og temperaturmåler brugte vi en række værktøjer både i form af software til programmeringen, og hardware til opsamling af data. Til temperaturmåleren brugte vi Arduino enheden sammen med elektroniske komponenter som modstande og temperaturmålere, til at kommunikere mellem den virkelige verden og computerprogrammerne som omformulerede informationerne til brugbare resultater. Vi brugte også kort et almindeligt digitalt termometer til kalibreringen af temperaturmålerens resultater. Af software til dette produkt brugte vi Arduinoens egen program Arduino.exe, til at vise og behandle informationerne sendt fra Arduino enheden. Et andet fysik værktøj (hardware) vi havde tænkt os at bruge var et LCD display som vi havde gjort os tanker om kunne vise informationerne fra temperaturmåleren og/eller indkøbslisten fra vores andet program. Til de andre programmer brugte vi Python.exe at programmere i. Tobias Hjelholt Svendsen & Mads Christiansen Side 5

6 Automatisering Af Hverdagen Udviklingsforløb: Vores program skulle være simpelt for brugeren at benytte, derfor blev der tænkt meget på brugerfladen. vi tænkte også meget på selve koden, da det er vigtigt at kunne udvide programmet, ved for eksempel at tilføje flere knapper/varer. Derfor delte vi den op i afsnit, som det er nemt at redigere i programmet, uden at ødelægge noget. I dette segment, blev der lavet konstanter for størrelsen på buttons. Det betød at alle buttons der blev lavet fremover, ville være samme i samme størrelse. Det er smart hvis man vil tilføje nye knapper hurtigt, uden at skulle angive størrelse på hver eneste. Knapperne skulle dog være i mycontainer1, da det kun er der størrelsen er blevet angivet. Der er også brugt en funktion kaldt mylastbuttoninvoked, hvilket gør det muligt at huske flere knapper der er blevet trykket på. Her er den = None, dette er fordi at der ikke er trykket på nogen knapper endnu, da programmet lige er startet op. Dette er en button, som ikke defineret. Det vil sige at selve funktionen ikke er til stede, men i stedet kun udseende, label, placering og farve. Der er ikke angivet nogen størrelser i dette segment. Det er fordi det ikke er nødvendigt pga. tidligere konstanter, som der nu bliver refereret til. Det gøres der ved at sige at knappen tilhører mycontainer1, hvor størrelsen på knapperne allerede er angivet. Tobias Hjelholt Svendsen & Mads Christiansen Side 6

7 Automatisering Af Hverdagen Her bliver knappen defineret, hvilket betyder at selve funktionen bliver beskrevet. I dette tilfælde skal knappen, når der bliver trykket på den skrive Toast, samt huske det når der bliver trykket på den næste knap (self.mylastbuttoninvoked), i skrive det bag den nye input. På den måde fungerer alle knapper i programmet, bortset fra Cancel -knappen. Den har til formål at afslutte programmet. Den bruger derfor en kort og simpel kode: Denne kode har en destroy -funktion, som afslutter programmets rod, og derfor lukker hele programmet. Hvis man kører programmet, vil man lægge mærke til at, efter man her trykket på Cancel, vil programmet automatisk vise Cancel. Her kan man se at efter mainloop, står der print Cancel, hvilket betyder at efter programmet er sluttet, skal der stå Cancel. Dette kunne også opnås ved at give Cancel -knappen en funktion så den skriver Cancel når man trykker på den, ligesom der gjort hos de andre knapper. Den brugte mulighed er dog meget simpel og nem at bruge, og viser tydeligere hvad der bliver gjort. For at Python skal kunne sende informationerne videre til Arduino, skal Denne kode implementeres i programmet. Men før dette kan gøres skal man have en pakke kaldt serial, da denne pakke ikke er standard hos Python skal den findes et andet sted. Pakken skal downloades fordi den indeholder alle de funktioner, der er nødvendige for at Python kan snakke med Arduino. Derefter importerer man den, ligesom der er gjort i det viste program. Tobias Hjelholt Svendsen & Mads Christiansen Side 7

8 Automatisering Af Hverdagen Sideprojekt: Samtidigt med vores hovedprojekt arbejdede vi med flere sideprojekter, fordi vi gerne ville sammenkoble projekterne til sidst, så vores produkt ville være multifunktionelt. Det kunne gøres ved at udvikle et program i python, der kan indeholde flere programmer. Flere af sideprojekterne blev ikke brugt i projektet, da vi ikke havde tid til at udvikle dem alle. Et af sideprojekterne var en temperaturmåler: Temperaturmåler Som en ekstra funktion til vores prototype lavede vi også en simpel temperaturmåler. Idéen var at den enten kunne bruges til at holde styr på temperaturen i køleskabet, eller bare være monteret udenfor eller i køkkenet så man vidste hvad temperaturen var. Fremgangsmåde: vi startede med at låne komponenterne til enheden, en almindelig modstand og en modstand som varierer ved temperaturforskel, i el-laboratoriet. Derefter monterede vi delene direkte på Arduinoen, og sluttede den til computeren. På computeren kørte vi programmet Arduino, hvori informationerne fra temperaturmåleren blev vist som tal, men ikke som temperaturer. For at få programmet til at vise temperaturer, opstille vi et fysikforsøg hvori vi undersøgte temperaturen i grader celsius, samtidig med at notere hvilken værdi temperaturmåleren i Arduinoprogrammet viste. Herefter udregnede vi den koefficient værdien fra vores temperaturmåler skulle divideres med for at få temperaturen i grader celsius, og fik programmet til at gøre dette, inden den viste målingerne fra temperaturmåleren. Tobias Hjelholt Svendsen & Mads Christiansen Side 8

9 Automatisering Af Hverdagen Videreudvikling: Evt. Touchscreen eller QWERTY LCD Dette er en model af vores endelige produkt, som ikke vil blive lavet i projektet, da vi ikke har nok tid til at programmere det. Programmet som er lavet i projektet er altså en prototype, som skulle illustrere designet og formålet ved vores endelige produkt. Det færdige produkt indeholder en Arduino(kan ikke ses på modellen), LCD og et QWERTY-tastatur eller en touchscreen. Ved at bruge QWERTY/touchscreen, kan man have et produkt som kan være på køleskabet, uden at den behøver en computer, med mus eller keyboard. Dette er smart på grund af pladskravet, og brugervenligheden Det er klart at have hele programmet samlet på ét sted har sine fordele, da det ikke kræver at man skal gå frem og tilbage, mellem komponenterne. Evaluering: Der var givet lang tid til projektet, hvilket selvfølgelig var nødvendigt, hvis man tager alle de afsluttede opgaver der skal samtidigt i betragtning. Så det var stadig svært at nå det hele. Det var en stor hjælp at have en tidsplan, selvom den ikke blev holdt hele vejen igennem, da der var mange problemer, med selve programmeringen i projektet. Især da Python skulle forbindes til Arduinoen. Det var interessant at prøve nye systemudviklingsmetoder af, da det er en stor del af forløbet, og kommer til at spille en stor rolle, i fremtidige projekter. Det sværeste i projektet var programmeringsdelen, på grund af det nævnte problemer, selve rapporten var nem, da vi havde dokumenteret forløbet godt, og der var derfor ikke nogle problemer med at skrive om det i rapporten. Tobias Hjelholt Svendsen & Mads Christiansen Side 9

10 Automatisering Af Hverdagen Program Endelige Prototype: Tobias Hjelholt Svendsen & Mads Christiansen Side 10

11 Automatisering Af Hverdagen Tobias Hjelholt Svendsen & Mads Christiansen Side 11

12 Automatisering Af Hverdagen Temperaturmåler: Tobias Hjelholt Svendsen & Mads Christiansen Side 12

13 Automatisering Af Hverdagen Tobias Hjelholt Svendsen & Mads Christiansen Side 13