Obligatorisk oppgave nr. 3
Hva som skal leveres
Fysisk demonstrasjon for din gruppel?rer av f?lgende:
- Arduino som styrer trafikklys som reagerer p? at fotgjenger trykker inn en bryter. Hele sekvensen som starter med at bryteren trykkes m? vises. (Demo p? gruppe?velsen evt. video)
Regler for gjennomf?ring av obligatoriske oppgaver
Leveringsfrist
- 8/3 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
- Hvordan unng? ? ?delegge Arduino
L?ringsm?l og metode
- L?re ? programmere et litt st?rre styringssystem
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
I denne oppgaven skal dere lage Arduinokode som styrer et trafikklys i et lysregulert gangfelt.
LYS:
- Biler:
- R?d/gul/gr?nn trafikklys i begge retninger. Vi antar at lysene i begge retninger viser det samme.
- Implementeres ved 3 LEDs i serie med 220 Ohm motstander og kobles til Arduinos digitale utganger som f?lger:
- Gr?nn LED med seriemotstend kobles til utgang nr.2
- Gul LED med seriemotstend kobles til utgang nr.3
- R?d LED med seriemotstend kobles til utgang nr.4
- Implementeres ved 3 LEDs i serie med 220 Ohm motstander og kobles til Arduinos digitale utganger som f?lger:
- R?d/gul/gr?nn trafikklys i begge retninger. Vi antar at lysene i begge retninger viser det samme.
- Fotgjengere:
- R?d/gr?nn trafikklys i begge retninger over gangfeltet. Vi antar at lysene i begge retninger viser det samme.
- Implementeres ved 2 LEDs i serie med 220 Ohm motstander og kobles til Arduinos digitale utganger som f?lger:
- Gr?nn LED med seriemotstend kobles til utgang nr.5
- R?d LED med seriemotstend kobles til utgang nr.6
- Implementeres ved 2 LEDs i serie med 220 Ohm motstander og kobles til Arduinos digitale utganger som f?lger:
- Lys p? bryterboksen for ? indikere at bryter er trykket ned.
- Implementeres ved Arduinos innebygde LED p? pinne 13.
- R?d/gr?nn trafikklys i begge retninger over gangfeltet. Vi antar at lysene i begge retninger viser det samme.
I/O:
- Inngang: knapp som fotgjengere trykker p? for ? f? gr?nt lys
- Kobles til utgang nr.10
- Utgang: Lydsignal (piezo element) som kommuniserer lystilstand til fotgjenger
- Kobles til utgang nr.11
Tilstandene for trafikklysene:
- S? lenge ingen trykker p? knappen, skal:
- Trafikklys biler:
- Lyse gr?nt.
- Trafikklys fotgjengere:
- Lyse r?dt.
- Piezo elementet skal pipe i sekvens: 0,5 sekunder AV og 0,5 sekunder P?.
- Trafikklys biler:
- N?r en fotgjenger trykker p? knappen, skal:
- Trafikklys biler:
- Etter 2 sekund skal trafikklyset for biler lyse gult.
- Etter 1 sekund med gult skal trafikklyset for biler lyse r?dt.
- Trafikklys fotgjengere:
- Innebygd LED p? pinne 13 skal lyse n?r fotgjenger trykker inn bryteren inntil det blir gr?nt lys for fotgjengere.
- N?r det har blitt r?dt lys for biler skal det g? 1 sekund f?r det blir gr?nt for fotgjengere.
- N?r det er gr?nt lys for fotgjengere skal piezo elementet pipe i selvens: 0,125 sekunder AV og 0,125 sekunder P?.
- N?r det har v?rt gr?nt lys for fotgjengere i 6 sekunder, skal det blinke gr?nt (0.5 sekunder av/p?) i tre iterasjoner. Deretter skal det lyse r?dt for fotgjengere.
- Trafikklys bil:
- N?r det har blitt r?dt lys for fotgjengere blir det f?rst gult lys for biler i 1 sekund, og s? gr?nt lys for biler.
- Trafikklys biler:
(Demo p? gruppe?velsen evt. video. Video m? ogs? vise Arduinokoden p? PC skjermen). Hele sekvensen som starter ved at fotgjenger trykker p? knappen m? vises.
Frivillig
Hvis man vil kan man koble til v?rt "ekte" trafikklys vist i figuren under. Dette st?r p? labben og kobles til Arduino med en ferdig konnektor som man stikker ned i alle de digitale pinnene samtidig. Har man brukt rette pinnenummre slik som spesifisert over, vil den lyse og fungere p? samme m?te som oppkoblingen p? eget breadboard. NB: bryteren i dette lyset kobler pinne 10 til jord uten pullupmotstand n?r man trykker, slik at man m? bruke pinMode(10, INPUT_PULLUP) og sjekke mot verdien LOW eller 0 for ? se om bryteren er trykket inn.