Florø barneskule
0815
- Velkommen, kaffe og introduksjon
- Estetiske læringsprosesser
- Teknologi i skolen
0845
- Idefase
0900
- Presentere ideer
0930
- Formgi, skru sammen
- Forel oppgaver i gruppene
1000
- Felles intro til koding
1015
- Formgi, montere
1115
- Sette opp arena, teste
Programvare styrer veldig mye av det som omgir oss i hverdagen, men disse tekniske løsningene er på mange måter skjult – de fleste tenker i alle fall ikke så mye over de. Samtidig møter programvaren oss ofte gjennom en eller annen form for fysisk grensesnitt. Dette er designet, dvs noen har bestemt funksjoner og fysisk utforming.
Dette bør også lever lære noe om. Ikke for at de behøver å bli programmerere, men for at de skal kunne forstå grunnleggende sider ved teknologien for på den måten å bli bedre rustet til å ta del i diskusjoner om fremtiden.
Nedenfor en video fra en tidligere, mer omfattende gjennomføring som involverte en 6. klasse ved Christi Krybbe skoler i Bergen:
Mange av de samme stype sensorer som vi finner i dagens forbrukerelektronikk brukes til å styre en mengde ulike prosesser. Akselerometeret som kan brukes for å finne ut hvilken vei du holder mobiltelefonen kan du finne igjen i en rimelig drone. Da gir denne sensoren data som hjelper dronen med å holde seg på rett kjøl, automnomt (dvs uten at en menneskelig operatør behøver å bry seg om denne prosessen). Skalerer vi opp dette er det den samme type teknologi som gjør at SpaceX kan lande sine bæreraketter. I bunn ligger samme type algoritmer for styring og feilkorreksjon.
I koden nedenfor er det definert fem funksjoner: Forover (F), Bakover (B), Høyre (H), (Venstre) og Stopp (S) som sender signaler til to servorer, som igjen driver hvert sitt hjul. Dette er de grunnleggende funksjonene for å kjøre en bil. Kompleksiteten ligger i hvordan vi finner ut hvilke funksjoner som til enhver tid skal iverksettes.
I denne koden kjøres en evig løkke (den ytre blå klammen). Inne i denne løkken er en annen løkke (grønn klamme) som kjøres 2 til 6 ganger, avhengig av hvilken verdi som programmet velger.
Deretter setter vi variabelen "retning" (rød blokk) til et tilfeldig tall mellom 1 og 5. Denne variabelen knytter vi deretter til funksjonene (F,B,H,V,S) ved å gjøre en rekke "hvis -så" (if - then)-sjekker (turkis klamme). Dersom vi får en match (variabelen "retning" har den verdien vi sjekker) kjøres den korresponderende funksjonen. Pause indikerer her tiden programmet kjører denne funksjonen før det går videre i sekvensen. Her velger vi intervaller i millisekunder.
Varigheten for de ulike funksjonene er en måte å gi servoboten en egenskap. Om vi setter lange intervaller for H og V blir trolig resultatet at roboten svinger relativt mye. Men vi vet ikke sikkert, fordi valgene er tilfeldige. Dermed er dette en egenskap, og som egenskaper hos mennesker dominerer de, men det er ikke alltid de kommer til syne.