Obligatorisk oppgave nr.5

DEL I - Servo-motor

Oppgave 1

I denne oppgaven skal dere lage et enkelt instrument som viser lysstyrke. Instrumentet bruker input fra en phototransistor for ? m?le lysstyrken og en servo som indikerer lysstyrken for brukeren. M?let med oppgaven er at dere skal ha pr?vd og styre en servo ved hjelp av innebygde biblioteker, som en forberedelse p? oblig 6 hvor dere skal bygge en egen servo.

Dere skal bruke f?lgende komponenter:

Komponent Benevnelse
Servo S1
Phototransistor Q1
Kondensator 100uF C1
Motstand 10kOhm R1

Hint: analogRead() tar inn verdier fra 0 til 1023, men servoen har virkeomr?de fra \(0^\circ\) til \(180^\circ\).

Ta bilde av oppsettet med postitlapp eller lignende, med dato og brukernavn. Lim inn bildet i oblig5_<brukernavn>.pdf. Koden leveres i egen fil som oblig5_1_<brukernavn>.ino.

DEL II - I2C bus kommunikasjon mellom tre arduinoer

Oppgave 2

Merk: denne oppgaven krever at dere jobber sammen i en gruppe p? tre. Om det blir vanskelig ? finne partner, ta kontakt med gruppel?rer. Skriv inn brukernavnet p? medstudentene du har jobbet sammen med i oppgaveteksten. Legg ogs? til f?lgende i arduinoprogrammet:

/**
 * Oblig 5 oppgave 2
 * Samarbeid mellom: <brukernavn1> <brukernavn2> <brukernavn3> 
 */

Erstatt <brukernavnN> med egne brukernavn.

Komponent Benevnelse
Analog Discovery 2 OSC1

Koble opp de tre arduinoene ved ? koble A5 til A5, A4 og A4, og gnd til gnd mellom hverandre. A5 og A4 tilsvarer scl og sda av I2C bussen for en Arduino UNO R3 som vist her. Det anbefales ? bruke br?dbrettet slik at det er lettere ? koble kretsen til oscilloskopet. Merk at hver arduino skal drives av en separat USB-kabel. Legg ogs? merke til at pull-up-motstander for SCL- og SDA-linjene er innebygd i ATmega328P.

Ta bilde av oppsettet med postitlapp eller lignende, med dato og brukernavn. Lim inn bildet i oblig5_<brukernavn>.pdf.

For ? skrive til og lese av registerne p? arduinoer bruker vi det innebygd biblioteket Wire.h. Dette inneholder noen funksjoner som skriver og leser av registerene. Se mer i Arduinos dokumentasjon.

Oppsummering:

  1. Last opp det f?rste programmet til masteren
  2. Last opp det andre paret med programmer til slavene
  3. Koble USB-kabelene til alle Arduinoene, og kj?r Processing-koden gitt i oblig 1 oppgave 3

Den resulterende oppf?rselen b?r v?re som f?lger:

f?rste klikk: LED for Slave 1 sl?s p?
andre klikk: LED for Slave 2 sl?s p?
tredje klikk: LED for Slave 1 sl?s av
fjerde klikk: LED for Slave 2 sl?s av
...

Merk at noen ganger kan adferden se annerledes ut. Det kan skyldes at behandlingskoden registrerer to museklikk i stedet for ett, og kan identifiseres ved ? analysere signalene, som forklart nedenfor:

Ta et skjermbilde av dataen (noen f? linjer er nok) og lim inn i besvarelsen.

Innlevering:

Generelle krav til innlevering