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