INF1510: Bruksorientert design

Like dokumenter
INF1510: Bruksorientert design

IN1060: Bruksorientert design

INF1510: Bruksorientert design

Prototyping med Arduino del 2

Prototyping med Arduino del 3

WORKSHOP BRUK AV SENSORTEKNOLOGI

2. La det bli lys Ditt første Arduino program

Blinkende lysdiode Introduksjon Arduino Lærerveiledning

Teknisk dokumentasjon for Ludosphaera

Steg 1: Installere programvaren

7-Segment Display Nybegynner Arduino Lærerveiledning

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

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

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

INF1510 Oblig #1. Kjetil Heen, februar 2016

Elektronikk og programmering av ubrukelige roboter

Teknisk Rapport HVASS

består av 7 sider inklusiv denne forsiden og vedlegg. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Arduino med Atmel studio 6.x (6.1)

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

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

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

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

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

Bruk av interrupt og Timer i Arduino-program.

ARDUINO STUDIELABEN. Roger Antonsen INF februar 2012

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

Høgskoleni østfold EKSAMEN. Oppgavesettet består av 8 sider inklusiv denne forsiden og vedlegg.

UNIVERSITETET I OSLO

IN1020. Obligatorisk oppgave 1. Formål

super:bit-oppdraget Lærerveiledning Versjon 1, august 19.

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

med BBC micro:bit Hefte 1 - Musikalsk løpelys

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

EKSAMEN (Del 2, våren 2015) Løsningsforslag

MAT-INF 1100: Obligatorisk oppgave 1

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Forelesning nr.7 INF 1411 Elektroniske systemer. Tidsrespons til reaktive kretser Integrasjon og derivasjon med RC-krester

INF1411 Obligatorisk oppgave nr. 3

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

Batteri. Lampe. Strømbryter. Magnetbryter. Motstand. Potensiometer. Fotomotstand. Kondensator. Lysdiode. Transistor NPN. Motor. Mikrofon.

Bruksanvisning Unitronics Vision

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

UNIVERSITETET I OSLO

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

Forelesning nr.7 INF 1411 Elektroniske systemer. Tidsrespons til reaktive kretser Integrasjon og derivasjon med RC-krester

PLS PC-øving nr. 3 Global Label og Local Label, flagg og CJ

INF Innleveringsoppgave 6

ARDUINO STUDIELABEN. Roger Antonsen INF februar 2012

Kom i gang med. Åpne nettleseren, gå til: Velg «New Project».

Teknisk Rapport. Effektivisering av natteravnene i Oslos ressurser. Kristine Lokke Lotte Stubdal Renate Farberg Ane Marthe Ness Anna Helgestad

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 9 TESTING

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

MONTERINGS- OG BRUKSANVISNING FOR GARASJEPORTÅPNER

Rapport for Oblig 2 Fag: INF1510 Bruksorientert design

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

Forelesning nr.6 INF Operasjonsforsterker Fysiske karakteristikker og praktiske anvendelser

for nybegynnere Innføring i grunnleggende elektronikk Av Torgeir Bull

INF Obligatorisk innlevering 5

Teknisk rapport. Språkopplæring i norsk for unge voksne. Fredrik T. Haugstulen Nina Sophie Justnæs Ina Ek Bjørntvedt Sondre Sandberg

Analog til digital omformer

I oppgave 2 og 3 brukes det R 2R nettverk i kretsene. Det anbefales å gjøre denne forberedelsen før gjennomføring av Lab 8.

1. Arduino Bluetooth 2 HC-05 modul

Elevverksted Elektronikk Bruk av transistor som bryter

INF 2820 V2016: Obligatorisk innleveringsoppgave 3

INF Obligatorisk innlevering 6

Arduino bilen er en selvgående liten robot. Roboten består av:

Eivind, ED0 Ingeniørfaglig yrkesutøvelse og arbeidsmetoder Individuell fremføring

Løgndetektoren 9. trinn 90 minutter

EKSAMEN (Del 1, høsten 2015)

Stødighetstester. Lærerveiledning. Passer for: trinn Antall elever: Maksimum 15

Øvingsforelesning i Python (TDT4110)

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

IN1060: Bruksorientert design

Python: Input og output

MAT-INF 1100: Obligatorisk oppgave 2

KYBERNETIKKLABORATORIET. FAG: Industriell IT DATO: OPPG.NR.: LV4. LabVIEW Temperaturmålinger BNC-2120

Forelesning nr.2 INF 1411 Elektroniske systemer. Effekt, serielle kretser og Kirchhoffs spenningslov

Forelesning nr.13 INF 1411 Elektroniske systemer

NorthIce videobriller

Innlevering 2a i INF2810, vår 2017

Forelesning 8. CMOS teknologi

Brukermanual med troubleshooting guide HLS. mtrack Player. Rev Manual for mtrack Rev Page 1 of 12

Høgskoleni østfold EKSAMEN. Emnekode: Emne: ITD13012 Datateknikk (deleksamen 1, høstsemesteret) Dato: Eksamenstid: kl til kl.

HØGSKOLEN I SØR-TRØNDELAG

Notat for oblig 2, INF3/4130 h07

TEKNISK RAPPORT. INF1510 Ellen Katrine Sveen Anna Sofie Schei Jostein Hellerud Espen Wøien Olsen

MIK 200 Anvendt signalbehandling, Lab. 5, brytere, lysdioder og logikk.

Hva er maskinvaren Arduino

INF1411 Oblig nr. 4 Vår 2011

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

Teknisk rapport. IN Bruksorientert design. boks

Espen. The Five Year Club. Anna. Aleksander. Jakob

MAT-INF 2360: Obligatorisk oppgave 1

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Arduino bilen er en selvgående liten robot. Roboten består av:

Transkript:

INF1510: Bruksorientert design Individuell obligatorisk oppgave: Arduino 1 Publisert: 02.02.2017 Frist: 10.02.2017 kl 23:59 Arduino skal benyttes som prototypingsverktøy i INF1510, og i denne individuelle obligatoriske oppgaven skal du bli kjent med grunnleggende konsepter. Oppgaven består av et utvalg fra ukesoppgavene. Dette sikrer at alle har vært igjennom det viktigste før neste oblig, og prosjektarbeidet. Vi anbefaler uansett alle å gjøre samtlige ukesoppgaver, men i denne innleveringen skal dere kun levere de som er oppgitt her. Innhold i innleveringen Oppgavene er delt inn i to typer: tekstoppgaver og kodeoppgaver. Dere skal levere følgende: 1. Dokument i PDF-format, hvor alle tekstlige besvarelser er inkludert. Oppgavene merkes med oppgavenummer. 2. Hver kodeoppgave i egen.ino-fil. Merk filen med oppgavenummer både i filnavn og som kommentar i toppen av filen. Leveres i Devilry innen 10.02.2017 kl 23:59. Lykke til!

Innhold 1. Tekstoppgaver 2 1.1. Elektrisitet 2 1.2. Dårlige kretser 2 1.3. Analoge og Digitale signaler 3 1.4. Loop og blink 3 1.5. Lese og skrive analoge signaler 4 1.6. Modularisering av Digital Hourglass 4 1.7. Lyd 5 2. Kodeoppgaver 6 2.1. SOS signalsystem 6 2.2. Pulserende lys 7 2.3. Tid og serial 8 2.4. Debounce 8 Side 1 av 8

1. Tekstoppgaver På alle oppgavene i del 1 skal dere gi korte tekstsvar på spørsmålene og eventuelt gi eksempler. Leveres som dokument i PDF-format (se forsiden). 1.1. Elektrisitet En mye brukt analogi for å forklare elektrisitet er hvordan vann oppfører seg i en vannkran. Bruk denne analogien for å forklare begrepene strøm, spenning og motstand. 1. Hvordan representeres strøm? 2. Hvordan representeres motstand? 3. Hvordan representeres spenning? 4. Hvordan henger strøm, spenning og motstand sammen? 1.2. Dårlige kretser Kortsluttninger og åpne kretser er typiske problemer dere kan møte i arbeid med Arduino. Særlig om en endrer på en krets mens elektrisitet fortsatt er koblet til. 1. Hva er en kortslutning? Ikke skriv mer enn et par setninger. 2. Hva er en åpen krets? Ikke skriv mer enn et par setninger. 3. Vil LED-pæren lyse i følgende kretser? Begrunn svaret kort. Side 2 av 8

1.3. Analoge og Digitale signaler Komponenter krever forskjellig elektrisitet for å operere/fungere. En må for eksempel ta hensyn til forskjellen på analoge og digitale signaler. 1. Forklar forskjellen på analoge og digitale signaler. Ikke skriv mer enn et par setninger. 2. Gi et eksempel på noen komponenter i arduino-kittet som sender/mottar/kan brukes med digitale signaler, og gi et eksempel på noen komponenter som sender/mottar/kan brukes med analoge signaler. 1.4. Loop og blink Anta at port 2 er koblet til en LED slik som i figuren nedenfor. Hvordan vil lampen oppføre seg når disse kodesnuttene kjører? Begrunn svaret kort. 1. 2. Side 3 av 8

3. Følgende kode, med følgende krets 1.5. Lese og skrive analoge signaler Når vi jobber med digitale systemer forholder vi oss som regel til to tilstander. Av eller på (strøm eller ikke strøm). For eksempel: er knappen trykket ned eller ikke? Dette kalles gjerne digitale signaler. I den fysiske verden er det derimot mer enn bare av eller på. Temperatur er for eksempel ikke bare av eller på. Selv om Arduino er et digitalt system er det også mulig å lese og skrive analoge signaler ved hjelp av Arduinoens innebygde ADC (analog-to-digital converter). 1. Fra hvilke porter kan du lese analoge signaler og hvordan gjør du dette? 2. Fra hvilke porter kan du sende ut analoge signaler og hvordan gjør du dette? 1.6. Modularisering av Digital Hourglass Se på koden til oppgave 8 (Digital Hourglass) i Arduinoboken. Selv om programmet har relativt lite funksjonalitet ser vi at det fort kan bli mye kode i loop(). Dette gjør at det kan bli et rotete program som er vanskelig å lese. 1. Ser du noen måte å modularisere denne koden på for å gjøre den mer oversiktlig? Kom med eksempler, og begrunn hvorfor. Hint: prøv å identifiser deler av koden som kan uttrykkes som et funksjonskall. For eksempel på formen knapptrykket() eller blink(). Side 4 av 8

1.7. Lyd Se for deg at du ønsker å lage lage et system med Arduino som skal spille av MP3 lydfiler. 1. Finn en komponent som gir Arduino denne muligheten. 2. Hvordan kan man styre denne komponenten i Arduino-koden din? (for eksempel spille av en lydfil, gå til neste lydfil, stoppe avspillingen, etc.). Gi en kort forklaring/beskrivelse. Her trenger du ikke skrive kode. Side 5 av 8

2. Kodeoppgaver For oppgavene i del 2 skal dere levere kode (se forsiden). For oppgaver med flere deloppgaver hvor koden endres, holder det at dere leverer programmet slik det ser ut til slutt etter siste deloppgave. 2.1. SOS signalsystem Lag et SOS signalsystem: Når knappen trykkes ned skal LED-pæren blinke i et SOS-mønster (tre korte blink, tre lange blink, og så tre korte blink). Gjør dette på følgende måte: 1. Koble opp kretsen vist til høyre. 2. Bruk funksjonen pinmode() til å sette opp en pin som digital output, og en pin som digital input i funksjonen setup(). 3. I funksjonen loop() : Skriv kode som lytter til om knappen er trykket ned eller ikke. Gjør dette gjennom den digitale input pin-en du satte opp i setup() funksjonen. 4. For å gjøre programmet ditt enklere å lese, lag en ny void funksjon med navn sos(). Når knappen trykkes skal funksjonen sos() kalles. 5. Skriv kode som gjør at LED-pæren blinker i mønsteret til en sos-beskjed i funksjonen sos(). Hint: Her kan det lønne seg å skrive flere funksjoner. F.eks en funksjon blinki(millisec) som du kaller tre ganger med et lavt tall, tre ganger med et høyt tall, og så tre ganger med et lavt tall igjen. Eller metodene kortblink() og langtblink() hvor du kaller langtblink() tre ganger, men kortblink() tre ganger før og etter det. Side 6 av 8

2.2. Pulserende lys Koble en LED til en av portene til Arduinoen som lar deg sende analoge signaler slik som i figuren til høyre. 1. Bruk funksjonen analogwrite() til å sette lysstyrken til LED-pæren ved å sende med forskjellige verdier mellom 0 og 255. 2. Skriv et program som får LED-pæren til å pulsere. Med andre ord, få LED-pæren til å fade inn og ut i en jevn rytme. Prøv med forskjellige delay-tider for å finne en passe hastighet på pulseringen. 3. Prøv til slutt å skrive et program som lar deg kontrollere lysstyrken med et potensiometer (Her er det nyttig å forstå kretsen og koden på side 74 i forelesningen om Prototyping med arduino del 2 ). Her må du bruke både analogread() for å lese fra potentiometeret og analogwrite() til å sette lysstyrken. 4. Les beskrivelsene av komponenter Arduino Projects Book side 6-9. Kommer du på flere måter å kontrollere lysstyrken på? For eksempel ved å bruke noen av komponentene i startsettet? Legg ved en kommentar i koden hvor dere besvarer dette kort. 5. Er det mulig å lage en krets som lar et potensiometer styre lysstyrken til en LED, uten å bruke Arduino som mer enn en strømkilde? Legg ved en kommentar i koden hvor dere forklarer kort hvordan. For denne oppgaven holder det å levere koden du har for løsningen av deloppgave 3. Svar også på deloppgave 4. og 5 som korte kommentarer i koden. Side 7 av 8

2.3. Tid og serial Funksjonen millis() returnerer antall millisekunder som har gått siden Arduinoen startet. Dette kan være nyttig for en rekke bruksområder. Det krever derimot litt ekstra planlegging og at du holder tunga rett i munn. Det kan derfor være lurt å øve seg litt på hvordan millis() fungerer. 1. Skriv et program som skriver Det har gått fem sekunder! til serial monitor hvert femte sekund ved å bruke millis(). 2.4. Debounce Av og til må vi ta hensyn hvor ofte og hvor raskt funksjonen loop() blir kjørt. Dette blir tydelig når en jobber med å registrere knappetrykk: Hvordan kan vi vite om det er et nytt knappetrykk hver gang vi leser at knappen er trykket ned? Å takle dette problemet kalles for debounce. Dette snakkes det om i forelesningen 06.02, men kan også leses om her: https://www.arduino.cc/en/tutorial/debounce Debounce er ikke nødvendig for å få alle systemer til å fungere, men det er en typisk feil som kan føre til at systemet ikke fungerer slik det skal. SOS singalsystemet fra uke 1 trengte ikke debounce for å virke, men hvis for eksempel antall knappetrykk spiller en rolle må du ta hensyn til dette. 1. Skriv kode for å registrere knappetrykk der du tar hensyn til debounce ved bruk av delay(). Skriv antall knappetrykk til serial monitor når knappen trykkes. 2. Tilpass koden slik at du bruker millis() i stedet for delay. For denne oppgaven holder det å levere koden du har for løsningen av deloppgave 2. Side 8 av 8