Obligatorisk oppgave nr.1

I denne obligatoriske oppgaven er m?let ? komme i gang med Arduino UNO, Arduino IDE og Processing. S?rg for at du er kjent med grunnleggende sikkerhet for elektronikk f?r du begynner med oppgaven. Du kan finne v?re interne sikkerhetsrutiner her. For?vrig anbefaler vi ? se p? nettressursene som medf?lger Arduino student kit.

Merk: Denne oppgaven forutsetter at du har skaffet deg Arduino Student Kit. Du finner informasjon om innkj?p av settet her.

Oppgave 1:

I denne oppgaven skal vi montere Arduino UNO kortet til den medf?lgene plastikkbasen og deretter feste br?dbrettet (som vist i bildet under).

Sette sammen Arduino UNO med br?dbrett. Illustrasjon: Arduino

Tips: Det er vilk?rlig hvilken vei du fester br?dbrettet , men det er anbefalt ? feste br?dbrettet slik at nummereringen er lik som i Arduinos nettressurser.

Oppgave 2:

For ? programmere Arduinoen, trenger vi Arduino Desktop IDE. Vi skal n? installere programmvaren og s? bruke et ferdig skript som f?lger med Arduino Desktop IDE. Skriptet gj?r at en LED p? Arduinoen blinker. Arduino IDEen er installert p? alle Linux termstuemaskiner p? IFI.

Dersom du bruker egen laptop, last ned og installer Arduino Desktop IDE (Vi bruker Arduino Desktop IDE versjon 2.0, ikke Arduino Web Editor). Hvis du opplever problemer med installasjonen, kan du f? hjelp av gruppel?rer i gruppetime.

Pakk ut USB kabelen og koble Arduinoen til PCen. I Arduino IDE, g? til Tools->Board og sjekk at brettet som er valgt er Arduino UNO. G? deretter til Tools->Serial Port og velg porten som p? Linux/Mac antageligvis heter /dev/ttyACM0 eller lignende (som vist i bildet under). P? Windows kan porten hete COMX, der X er et nummer. Navnet p? porten kan variere, avhengig av operativsystem og hvor mange USB-enheter du har tilkoblet. Se dokumentsjon p? Arduinos nettside her.

Valg av Port og Board

For ? teste at programvaren fungerer, skal dere programmere Arduinoen til ? blinke. G? til File->Examples->01.Basics->Blink. Dette ?pner et nytt vindu med koden som f?r en LED p? Arduinoen til ? blinke. For ? kj?re koden p? Arduinoen, trykk p? h?yre-pilen i menyen (som vist i bildet under). Dette vil kompilere og overf?re koden til Arduinoen.

Kj?ring av kode

N?r Arduinoen er programmert blinker en LED av og p? med et sekunds intervall. G? inn i koden og juster parameteren til funksjonen delay, slik at LEDen er p? i 4 sekunder, og av i 2 sekunder. Merk at delay parameteren er gitt i millisekunder.

Oppgave 3:

I denne oppgaven skal dere sette opp kommunikasjon mellom PCen og Arduinoen. M?let er ? kj?re oppp en enkel GUI applikasjon hvor du kan skru av og p? den innebygde LEDen p? Arduinoen. GUI applikasjonen bruker Processing som er mye brukt i sammenheng med Arduinoprosjekter. Hvis du bruker egen maskin kan du laste ned Processing her, alternativt er programvaren tilgjengelig p? alle Linux termstuemaskiner p? IFI.

Koden for Processing kan dere laste ned som prekode her.

Tips: Du kan laste ned prekoden i terminalen ved ? g? til ?nsket mappe, deretter kj?re:

git clone https://github.uio.no/in1080/prekode.git

Det er mulig dere m? endre port p? linje 15 i oblig1.pde, for ? f? det til ? virke med deres operativsystem. Utenom denne endringen skal det ikke v?re n?dvendig ? gj?re endringer i oblig1.pde-filen, med mindre der selv ?nsker ? utvide funksjonaliteten.

N?r du trykker p? Run-knappen skal et vindu ?pne med et bilde av en Arduino UNO. (Merk at det ikke er mulig ? laste opp kode fra Arduino IDEen n?r run er trykket, fordi Processing vil okkupere den samme porten som Arduinoen er tilkoblet. Trykk Stop-knappen i Processing for ? ?pne porten igjen). Funksjonaliteten til programmet er at n?r man trykker med musepekeren p? bildet skal Arduinoens innebygde LED lyse/skru seg av.

Det neste er ? implementere koden p? Arduinoen. Som dere ser i prekoden til Processing leses det av en tekststreng i linje 24 i oblig1.pde. Denne tekstrengen skal inneholde “0” eller “1” avhengig av tilstanden til LEDen. Dersom brukeren trykker p? bildet med Arduinoen, sender Processing en ‘1’ til Arduinoen av typen char. Deres oppgave blir dermed:

Dere kan bruke Arduinokoden under som et utgangspunkt:

char inputValue; // Data received from the serial port

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN, OUTPUT); // Set pin as OUTPUT
  Serial.begin(9600); // Start serial communication at 9600 bps

}

void loop() {
   if (Serial.available()) 
   { // If data is available to read,
    inputValue = Serial.read(); // read it and store it in val

    if (inputValue == '1') 
    { // If 1 was received
      Serial.print(""); //Insert your code in this block
    } 

    inputValue = '0';
   }

   delay(10); // Wait 10 milliseconds for next reading
}

Innlevering:

Generelle krav til innlevering