Rapport for Oblig 2 Fag: INF1510 Bruksorientert design

Like dokumenter
INF1510 Oblig #1. Kjetil Heen, februar 2016

WORKSHOP BRUK AV SENSORTEKNOLOGI

Prototyping med Arduino del 2

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:

Her skal du lære å programmere micro:biten slik at du kan spele stein, saks, papir med den eller mot den.

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Kodetime for Nordstrand barneskole

INF1510: Bruksorientert design

Tegnespillet. Introduksjon:

Blinkende lysdiode Introduksjon Arduino Lærerveiledning

INF1510: Bruksorientert design

Steg 1: Installere programvaren

Prototyping med Arduino del 3

Farger Introduksjon Processing PDF

Litt mer om Arduino. Roger Antonsen Sten Solli INF januar 2011

IN1060: Bruksorientert design

Visuell Programmering: Kom i gang med Processing

Ultralydsensor. Introduksjon. Litt om ultralydsensorer. Arduino. Skrevet av: Martin Ertsås & Morten Minde Neergaard

Kanter, kanter, mange mangekanter

INF1510: Bruksorientert design

Sprettende ball Introduksjon Processing PDF

7-Segment Display Nybegynner Arduino Lærerveiledning

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

Verden. Steg 1: Vinduet. Introduksjon

Steg 1: Lag bildedeklarasjon

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

7-Segment Display. Introduksjon. Steg 1: Finn frem utstyr. Til denne oppgaven trenger du. Skrevet av: Martin Ertsås & Morten Minde Neergaard

Epson-prosjektorar. Generelt. Tabell 1. Prosjektoroversikt

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

GRØNNERØR GRØNNERØR RØR GRØNNE GRØNNERØR GRØNNERØR GRØNNERØR

1. Arduino Bluetooth 4.0 Low Energy (BLE)

Farger. Introduksjon. Skrevet av: Sigmund Hansen

Teknisk dokumentasjon for Ludosphaera

Eksamen matematikk S1 løysing

Bruk av interrupt og Timer i Arduino-program.

1.8 Binære tal DØME. Vi skal no lære å omsetje tal mellom totalssystemet og titalssystemet.

1. Arduino Bluetooth 2 HC-05 modul

S1 eksamen våren 2016 løysingsforslag

I denne oppgåva skal me lage eit enkelt spel der pingvinane har rømt frå akvariet i Bergen. Det er din (spelaren) sin jobb å hjelpe dei heim att.

Brukarrettleiing E-post lesar

Eksamen REA3015 Informasjonsteknologi 2. Nynorsk/Bokmål

ARDUINO STUDIELABEN PROGRAMMERING DIGITALE/ANALOGE INNDATA/UTDATA LYSDIODER FRITZING. Roger Antonsen INF januar 2012

PGS - EKSAMEN BRUKARRETTLEIING FOR SKOLEN

Eksterne enheter Brukerhåndbok

Obligatorisk oppgave 1 for INF1510 våren 2012

Landbruksregisteret Rettleiing for installasjon og bruk av dokumentmalar for endringsblankettar

EKSAMEN. Informasjon om eksamen. Emnekode og -navn: ITD13012 Datateknikk. Dato og tid: timer. Fagansvarlig: Robert Roppestad

Eksterne enheter. Brukerhåndbok

Ping pong. Steg 1: Sprettende ball. Sjekkliste. Introdusjon:

Eksamen ELE2002 Automatiseringssystem/automatiseringssystemer. Programområde: Elenergi. Nynorsk/bokmål

Eksamensoppgaven: Hele oppgavesettet består av 8 oppgaver. Hver oppgave har en %-angivelse som angir hvor mye den teller ved sensurering.

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Elektronisk palliativ plan innføring og bruk i Acos CosDoc

Skrevet av: Oppgaven er laget av GDG Bergen ( AU/GDGBergen/), og tilpasset Kodeklubbens format på oppgaver.

Eksterne enheter. Brukerhåndbok

SUPER DISCLAIMER. Vi endrer opplegget litt fra år til år, og vi hører på dere!

Repetisjon. INF gruppe 13

FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærere: Robert Roppestad. Hele oppgavesettet består av 8 oppgaver, samt 1 vedlegg.

Brukarmanual.

Samarbeidsmeteorolog 2017: Kva tenkjer ungdomane i Vest-Telemark om eit felles ungdomsråd?

Eksterne enheter. Brukerhåndbok

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

Eksamen REA3015 Informasjonsteknologi 2 Elevar/elever og privatistar/privatister. Nynorsk/Bokmål

Start et nytt PXT-prosjekt, for eksempel ved å gå til makecode.microbit.org (

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

JS: Grunnleggjande JavaScript

Kom i gang med LibreOffice. Kapittel 14 Tilpass LibreOffice

Trigonometri, regulære mangekanter og stjerner

GUI («Graphical User Interface») del 2

Bryne ungdomsskule ÅRSPLAN. FAG: Teknologi i prakasis. Trinn: 9 trinn

INSTALLASJON DDS-CAD ARKITEKT & KONSTRUKSJON 6.5 PR. DESEMBER 2009

En to-timers oppskrift for å bygge og programmere en Arduino-drevet strikk-

Mars Robotene (5. 7. trinn)

Kom i gang - oppsett av Fricam Loreda Viltkamera

Hvordan bruke tidtaker utstyret til Inndal IL

Steg 1: Piler og knappetrykk

Eksamen REA3015 Informasjonsteknologi 2 Elevar/Elever, Privatistar/Privatister. Nynorsk/Bokmål

VH Service Software. Dette dokumentet forteller deg i korte trekk hvilke funksjoner denne programvaren har, basert på følgende menyvalg:

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide

Eksamensvakt på Digital Eksamen

1T eksamen hausten 2017 Løysing

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

Brukarrettleiing for ny lagsportal kvam.no

Eksterne enheter Brukerhåndbok

Ping pong. Introdusjon: Steg 1: Sprettende ball. Sjekkliste. Skrevet av: Torbjørn Vik Lunde

Oblig 7 - Råd og tips. Henrik Hillestad Løvold

Programvare og oppsett

TOD063 Datastrukturer og algoritmer

Transkript:

Rapport for Oblig 2 Fag: INF1510 Bruksorientert design Oppgåvetekst: Etch- a- Sketch Bruk to potentiometere til å tegne i Processing; det ene potentiometeret skal styre x- aksen og det andre skal styre y- aksen. Du trenger også en knapp for å aktivere og deaktivere tegning, samt noe for å gjennkjenne bevegelse, slik at man kan riste for å resette tegneflaten. Skriven av Kine Gjerstad Eide Brukarnamn: kinegei

Utstyr I denne oppgåva vart dette utstyret nytta: - To potensiometer - Ein knapp - Ein tiltsentor - Ein motstander på 10K - 12 ledninger - Ei arduinobrikke - - - Eit arduino brett Ein usb kabel Ein Mac Programvarer: - Arduino - Processing - Word (omgjort til PDF før levering) Beskriving Eg starta med å lage eit lite spel liknande det som vart vist under fellesøvinga den xx.xx. Forskjellane var at det blei satt inne bilete av ei bille, denne tissa på maur som kom klvyande over skjermen. Billa vart styrt av to potensiometer, eit for vertikal beveging og ei for horisontal beveging. Dette programmet vart så omgjort slik at potensiometera styrte ei linje som vart tenga opp frå punktet der linja nett var og til der potensiometera styrte den. Dette skapa eit inntrykk av at ein teiknar på skjermen. Det var nokre utfordringer knytt til dette då eg valde å skrive programmet litt dummy- proof, altså at ein Ecth - a - sketch: Foto: thetanooki.com skal kunne få resultat sjølv om nokre deler av programmet ikkje fungerar. Dette Deretter kobla eg til ein knapp som aktiverer og deaktiverer teikninga. Knappen vart kobla til ved å nytte eit oppsett i boka Arduino project book, dette vart endra og tilpassa prosjektet, slik at den berre las inn verdiar to gongar i sekundet. Dette fordi å hindre at teikninga blir aktivert og deaktivert fleir gonger enn det som blir trykka inn. Det neste som skjedde var at ein tilt sensor blei kobla til oppsettet. Denne registrerer beveging i brettet, noko som igjen er programmert til å setje opp ny bakgrunn. Den nye bakgrunnen legg seg på toppen av alt som er teikna hittil og ein får dermed inntrykk av at ein startar på nytt og at det gamle er viska bort.

Utfordringer Det var nokre utfordringer knytt til valet av måte å sende informasjon frå arduino til processing. Dette fordi eg valde å skrive programmet litt dummy- proof, altså at ein skal kunne få resultat sjølv om nokre deler av programmet ikkje fungerar. Arduino sender informasjon frå dei to potensiometera anna kvar gong, informasjonen som blir sendt starta med anten x eller y etterfulgt av ein talverdi. Når så processing får inn informasjon sjekkar den fyst kva bokstar som er komen Hakkete kantar. for deretter nytte tallverdien til den tilhøyrande x eller y aksa. Denne vekselsvise utsendinga av informasjon gjorde at det som var teikna i skjerm bilete blei taggete, eller så ut som trappetrinn til å begynne med. Løysinga på dette vart å setje inn ein ekstra if- test, samt å lagre den inkomande versjonen på ein litt annan måte slik at dei to verdiane vart sendt til skjerm samstundes. Sending av informasjon frå knapp og tilt- sensor skjedde for øvrig på omlag same måte som ved potensiometera, her også ved å setje inn ein bokstav, k for knappen og t for tilt- sensoren, for deretter å tolke annakvar innlesing frå knappen som av og som på, medan det for tilt- sensoren gjaldt at bakgrunnen vart sett inn på nytt ved kvar innlesing. Ekstra Etter å ha fått til det grunnleggjande tenkte eg litt vidare og forsøkte å innkorporere nokre av designprinsippa. Ein Etch- a- Sketch er stort sett eit leketøy for born, noko som gjor at det vart naturleg å legje til litt fleir fargar. Vidare vart det og lagt til ein funksjon der ein kan velgje kva farge ein vil nytte. Dette ved å setje inn fem ruter i forskjellige fargar i toppen av skjermbilete som gjer at ein kan skifte farge ved å styre teikneprikken over ruta med fargen ein ynskjer. Bornevenleg design Resultat Resultatet av oppgåva er ein elektrisk utgåve av Etch- a- Sketch, det ein har fem fargeval. Ein teiknar ved å styre to potensiometer og ein kan nullstille eller viske ut teikninga ved å riste på arduinobrettet. Sjølve teikneområde er på skjermen og det er satt inn fargar som gjer at det skal vikre meir tiltrekjande for born som tross alt, så vidt eg veit er hovudmålgruppa for dette verktøyet.

Film Film av det ferdige resultatet er å finne på denne nettstaden: http://pacelg.com/kines/etch- a- sketch/ Processing kode import java.util.*; import processing.serial.*; Serial minport; int x; int y; int knapp = 0; int oldx; int oldy; int h; int v; int screenh = 750; int screenw = 800; int r = 50; int g = 70; int b = 190; int xycounter = 0; void setup(){ background(255, 80, 40); size(screenw,screenh); minport = new Serial(this, Serial.list()[0], 9600); void draw(){ String fraarduino = null; nostroke(); fill(0,191,255); rect(0,0, screenw/5,80); fill(138,43,226); rect((screenw/5),0,screenw/5,80); fill(255, 20, 147); rect((screenw/5)*2,0,screenw/5,80); fill(124, 252, 0); rect((screenw/5)*3,0,screenw/5,80); fill(225,225,0);

rect((screenw/5)*4,0,screenw/5,80); if(minport.available()>0){ fraarduino = minport.readstringuntil('\n'); if(fraarduino!= null){ fraarduino = fraarduino.trim(); int temp = - 1; try{ //println(fraarduino); if(fraarduino.charat(0) == 'v'){ temp = parseint(fraarduino.substring(1)); y = (int)map(temp, 0, 1023, 0, screenh); xycounter ++; else if(fraarduino.charat(0) == 'h'){ temp = parseint(fraarduino.substring(1)); x = (int)map(temp, 0, 1023, 0, screenw); xycounter ++; else if(fraarduino.charat(0) == 'k' && knapp == 0){ knapp = 1; print("0: "+knapp); else if(fraarduino.charat(0) == 'k' && knapp == 1){ knapp = 0; print("1: "+knapp); else if(fraarduino.charat(0) == 't'){ background(255, 80,40); //bakgrunnmet(2); catch(exception e){ //minport.clear(); if(knapp == 0){ if(y<80 && x<screenw/5){ r = 0; g = 191; b = 255; if(y<80 && x>screenw/5 && x<(screenw/5)*2){ r = 138; g = 43; b = 226; if(y<80 && x>(screenw/5)*2 && x<(screenw/5)*3){ r = 255; g = 20; b = 147; if(y<80 && x>(screenw/5)*3 && x<(screenw/5)*4){ r = 124; g = 252; b = 0; if (y<80 && x>(screenw/5)*4){ r = 225; g = 225; b = 0; if(xycounter >= 2){ stroke(r, g, b);

//fill(r,g,b); strokeweight(2); line(oldx, oldy, x, y); oldx = x; oldy = y; xycounter =0; //ellipse( x, y, 5,5); // rect(x, y, 5, 5); else if(knapp == 1){ oldx = x; oldy = y; Arduino kode int const hv = A0; int hvverdi; int const on = A1; int onverdi; int skyt = 0; int i = 0; int knapp = 0; int const tilt = 11; int earlystate = 0; int prevstate = 0; void setup(){ Serial.begin(9600); void loop(){ delay(17); knapp = digitalread(2); if(knapp == HIGH){ Serial.println('k'); delay(500); if(i==0){ hvverdi = analogread(hv); Serial.print("h"); Serial.println(hvverdi); i = 1; else if(i == 1){ onverdi = analogread(on);

Serial.print("v"); Serial.println(onverdi); i = 0; earlystate = digitalread(tilt); if(earlystate!= prevstate){ Serial.println("t"); prevstate = earlystate; delay(500);