Oppgave 2 - Kjøring med ultralydsensor / sonar

Elever holder Bit:Bot med sonar.

 

I en smart by må vi ha smarte kjøretøy som unngår å kjøre på hindringer eller andre trafikanter! 

 

Bit:Bot har en ultralydsensor som bruker lydbølger til å oppdage hindringer foran seg. Denne teknologien kalles også for en sonar. Sonaren fungerer ved at den sender ut et ultrasonisk lydsignal, og så måler den hvor lang tid det tar før den hører et ekko. Jo nærmere Bit:Boten er noe, jo kortere tid vil det ta fra lydsignalet sendes ut til mikrofonen fanger opp ekkoet.  

Nå gjenstår det bare å programmere Bit:Bot til å bremse hvis noe kommer i nærheten!

Utstyr:

  • micro:bit
  • Bit:Bot med sonar
  • Smartby-matte (hvis dere har en)

Bruk av sensorer:

Eksempel 1

Når vi bruker sensorer er det lurt å programmet om å lese av sensoren som en egen prosess, altså med en egen kodeblokk.

I eksempel 1 (se bilde av kodeblokker til høyre) har vi puttet sensoren inn i ei løkke som gjentas for alltid. Avlesingen av sensoren skjer inni det vi kan kalle en «hvis-betingelse». 

Hva tror dere skjer om Bit:Bot kjører denne koden?

Dessverre er ikke koden trygg nok! For dersom Bit:Bot allerede kjører en annen blokk, så vil ikke stoppen komme før denne blokka er ferdig. Da har vi kanskje allerede kollidert.

Eksempel 2 

For å unngå dette, må vi bruke variabler til å styre farten til Bit:Bot. Vi starter med å lage to variabler: en vi kaller «fart rett frem» og en som vi kaller «fart sving». Se på eksempel 2 til høyre.

En variabel er en plassholder for verdier og tall. Det gjør det mulig å endre verdier underveis i koden. For eksempel kan vi endre tallet for farten til Bit:Bot. Endringen skal skje ved hjelp av hva sensoren måler.

Eksempel 3

Vi starter med å definere variablene slik at Bit:Boten kjører som normalt når den starter.

Inni blokken med «kjørekode» erstatter vi fartstallet med variabelen («fart rett frem» eller «fart sving»). Se eksempel 3 til høyre.

Eksempel 4

Helt til slutt bruker vi «hvis-betingelsen» til å endre fart hvis den oppdager en hindring nærmere enn 10 cm unna. Variabelen vil endres umiddelbart, og farten vil bli satt ned til 0 selv om Bit:Bot er midt i en «kjøre-blokk». Se eksempel 4!

Smart, ikke sant?! Prøv du også! 

Smartby-matte.
Elever og lærer programmerer.
Eksempel 1 med kodeblokker.

Eksempel 1.

Variabler i makecode. Eksempel 2.

Eksempel 2: Variabler.

Kodeblokker med variabler. Eksempel 3.

Eksempel 3.

Hvis-betingelse. Eksempel 4.

Eksempel 4.