Obligatorisk oppgave nr. 1

Hva som skal leveres

Fysisk demonstrasjon for din gruppelærer av følgende:

  1. Arduino som kjører egen, eller medfølgende eksempelkode som får den innebygde LEDen på pinne nummer 13 til å kontinuerlig blinke med ca 1Hz.
  2. Arduino som tar i mot en byte sendt over USB/serieport fra egen kode i Python eller annet programmeringsspråk, der arduinoens LED slår seg på hvis byten har verdi 1 og slår seg av hvis byten har verdi 0. Man må kunne forklare hva koden gjør hvis det blir forespurt. Programmet på PCen trenger ikke å ta brukerinput under kjøring.

Man kan velge:

Tilbakemeldinger

Regler for gjennomføring av obligatoriske oppgaver

Leveringsfrist

Sikkerhet, regler og ressurser

Læringsmål og metode

Når man har et generelt teknisk spørsmål er rekkefølgen:

1) Spør GPT-4

  1. Spør GPT-4 om den delen av svaret du ikke forsto
  2. Spør GPT-4 på en annen måte

2) Spør gruppelærer

Husk at gruppelærers primære jobb er ikke å hjelpe, men å veilede deg til selv å finne løsninger


Oppgave 1

Montere Arduino UNO på brettet

Vi begynner med å montere Arduino UNO kortet til den medfølgende 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.

Installasjon av Arduino IDE

For å programmere Arduinoen, trenger vi Arduino Desktop IDE. Vi skal nå installere programvaren og så bruke et eksempelprogram som følger med Arduino Desktop IDE. Programmet 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 tips evt. dokumentasjon 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. Prøv å 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 2

I denne oppgaven skal dere sette opp datakommunikasjon mellom PCen og Arduinoen. Målet er å kunne skru av og på den innebygde LEDen på Arduinoen fra egen programkode på PCen. Når man sender en byte-variabel med verdi 1 fra PCen skal Arduinos innebygde LED på pinne 13 lyse, Når man sender 0 skal den slukke.

Noen tips og begreper:

NB: Det blir ofte litt problem med valg og overføring av variabeltype mellom to forskjellige programmer. Fungerer ikke "byte" kan man bruke "char" osv. Dette er et typisk "real world" problem, og den feilsøkningen man her går inn i er nyttig å har vært i gjennom