Obligatorisk oppgave nr. 1
Hva som skal leveres
Fysisk demonstrasjon for din gruppel?rer av f?lgende:
- 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.
- 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:
- Demonstrasjon for gruppel?rer p? egen gruppetime
- Demonstrasjon med video
Tilbakemeldinger
- Ved demonstrasjon for gruppel?rer i gruppetime, vil man kunne diskutere med gruppel?rer de l?sninger og metoder som er valgt, samt problemer og overraskelser som m?tte dukke opp
- Ved demonstrasjon i form av video, gis ingen tilbakemeldinger utover beskjed om godkjent, eller hva som m? til for ? f? en evt. underkjent demonstrasjon til ? bli godkjent
Regler for gjennomf?ring av obligatoriske oppgaver
Leveringsfrist
- 2/2 kl. 23.59
Sikkerhet, regler og ressurser
- V?rt labreglement / sikkerhet p? labben
- Kj?p av Arduino student kit
- Nettressurser som medf?lger Arduino student kit. Arduino Online Learning Content, (hvis man har lyst p? mye mer nyttig info og eksempler)
- Komme i gang med UIO GPT-4
- Bruk av serieport p? Windows/Mac/Linux. Hvordan, og hva som kan g? galt
- Hvordan unng? ? ?delegge Arduino
L?ringsm?l og metode
- ? komme i gang med Arduino UNO og Arduino IDE
- ? f? erfaring med bruk av GPT-4 til utvikling av et innbakt system (Arduino + kode)
N?r man har et generelt teknisk sp?rsm?l er rekkef?lgen:
1) Sp?r GPT-4
- Fungerer det ikke, eller forst?r man ikke svaret
- Sp?r GPT-4 om den delen av svaret du ikke forsto
- 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.
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.
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.
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.
- Sp?r GTP-4 hvordan man overf?rer en byte fra ditt favoritt programmeringsspr?k/rammeverk til Arduino. Derifra kan du bruke digitalWrite() til ? styre LEDen
- Les n?ye det GTP-4 svarer og sp?r gjerne utdypende om begreper som blir listet opp og hva som m? til for at en slik datakommunikasjon skal virke. Er det noe du ikke forst?r - sp?r utdypende om en ny forklaring
- Virker ikke kommunikasjonen - klag og sp?r GPT-4 om hva som kan v?re galt
- Enkle spr?k ? bruke p? PCen er Python eller Java via Processing
- Er du er veldig flink, hadde det ogs? v?rt morsomt ? f? andre "ukjente" og eksotiske spr?k til ? fungere, men her kan ikke n?dvendigvis gruppel?rer hjelpe? Husk at serieport m? brukes, og st?tter ikke ditt eksotiske spr?k serieport, m? du vel bruke en proxy. Sp?r GPT-4 "what is the most rare exotic programming language there is" og kos deg...
Noen tips og begreper:
- Man m? bruke serieportkommunikasjon
- Arduino m? f?rst programmeres
- Man m? sette opp serieportkommunikasjon p? Arduino, husk ? bruke samme baudrate som du bruker p? PCen
-
Man m? programmere Arduino til ? kontenuerlig kj?re kode som leser av serieporten, NB Serial.read() er ikke-blokkerende. Man kan evt. velge ? bruke testen Serial.available() == 0 i tillegg hvis man synes at det er et problem
-
I ditt valgte programmeringsspr?k p? PCen m? man f?rst ?pne rett serieport, (husk ? lukke den n?r du er ferdig)