Oppgave 1: Kjør rett frem

Du skal nå programmere kontinuerlig servoer som går fra 0 til 180. Det betyr at 90 er nullpunktet og servoen står stille.

Du Lærer å:

  • Bruke blokken “for alltid” for å kjøre et program over tid

  • Koble til servo og sette noe i bevegelse

  • Lage variabler

  • Kopiere kode

Litt om Servo (Servomotor/microservo)

En servo, eller servomotor er en elektrisk motor som kan ta imot strøm og signaler for å sette noe i bevegelse. Servoen kan bevege seg i ulike hastigheter etter som hva slags signaler vi gir den. Servomotoren kan også holde en gitt posisjon om den får beskjed om det, noe vanlige motorer ikke kan. Disse funksjonene gjør de spesielt egnet innenfor programmering og robotikk, da man ofte er ute etter å kontrollere både bevegelse og posisjon.

Programmering

For å programmere denne må vi gå til makecode.microbit.org. Trykk på “Nytt prosjekt” og gi prosjektet ditt et navn.

Når du åpner opp det nye prosjektet ditt ligger det allerede to kodeblokker klare: “Ved start” og “gjenta for alltid”

I "ved start"-blokken skal vi sette inn de to blokkene for de to servomotorene. Disse blokkene må vi lage selv, og går derfor inn i menyen "variabler" og trykker på "Lag en variabel"

Vi trenger to ulike blokker, en for den høyre og en for den venstre servoen. Skriv derfor først servo1 inn i feltet før du trykker OK, før du igjen lager en ny som du kaller servo2. Du har nå fått et sett med nye blokker i denne menyen.

Vi velger blokken "sett servo til..." og setter inn i "ved start"-blokka. Lag så en kopi av denne slik at du har to like blokker. Vi må så endre på betingelsene slik at den ene blokka viser servo1 og den andre viser servo2. Begge disse skal ha verdien 90. Dette betyr at vi vil at servomotorene skal stå stille på 90 grader når vi kobler til strøm.

For å få kjøretøyet til å kjøre fremmover må vi gi beskjed til servoene om at de skal bevege seg i samme retning kontinuerlig. Det gjør vi ved å sette inn servo-blokker i den blå "for alltid"-blokka. Vi må da gå i menyen til venstre og trykke på "tilkobling". Her finner vi blokken "servo skriv til..." og setter den inn i blokka. Lag så en kopi av denne slik at vi har en for hver servo. Servoene er koblet til ulike Pinner på kontrollkortet. På den øverste blokken endrer du derfor til P1. I variabler henter du ut "servo1" og setter inn i feltet for verdi. Du har nå bestemt at den servoen som er koblet til P1 heter "servo1". Gjør det samme med den underste blokken. Endre til P2 og legg inn verdien "servo2"

Denne delen av koden skal se slik ut:

Nå vil vi at kjøretøyet skal bevege seg fremmover når vi gir det beskjed om å kjøre, og stoppe når vi gir beskjed om det.

Vi velger at den skal starte når vi trykker på knapp A på micro:bit. Hent derfor ut "når knapp...trykkes"-blokka fra "inndata" på venstre side.

Kopier blokkene som ligger i "ved start"-blokken og sett servo1 til 10 og servo2 til 170

HUSK! på servoen er 0-punktet på 90 grader. Det betyr at verdier høyere en 90 vil bevege servoen en vei, mens verdier lavere enn 90 vil bevege servoen motsatt vei. Vi har montert servoene motsatt av hverandre, derfor er det viktig at vi husker på dette. Når vi bruker verdiene 10 og 170 har vi i teorien valgt en hastighet på 80 på begge servomotorene slik at de beveger seg like raskt og wheel:bit kan kjøre rett frem.

Vi vil at den skal stoppe når vi trykkrt på B-knappen. Vi gjør derfor den samme operasjonen en gang til, men denne gangen setter vi inn verdiene 90 på begge servoene. Husk også å endre til "B" på inndatablokken. Den ferdige koden skal se slik ut:

Du har nå laget ditt eget testprogram for å få kjøretøyet til å bevege seg fremover og stoppe når du gir beskjed om det!

Trykk på last ned ikonet nederst på siden. Programmet du har laget vil lagre seg som en .Hex fil. Legg merke til hvor du lagrer filen. Når den er lastet ned kan du simpelthen dra den over til micro:bit ikonet i filutforskeren. Micro:bit blinker oransje bak når programmet lastes over, og stopper når den er ferdig. Programmet er umiddelbart klart til å brukes når micro:bit er koblet til strøm

Slik virker det:

Når micro:bit er koblet til strøm vil wheel:bit kjøre fremover når du trykker på A-knappen og stoppe når du trykker på B-knappen

Prøv selv:

  1. Last ned programmet og overfør til micro:bit.

  2. Forsøk å trykke på A-knappen på et flatt underlag. Kjører wheel:bit rett fremover? NB: Om ditt kjøretøy kjører bakover endrer du på verdiene til servo1 og servo2 slik at de blir motsatt av hva vi har satt opp her.

  3. Ingen servomotorer er kalibrert helt likt, det betyr at det kan være små variasjoner i hastigheten. Om ikke kjøretøyet ditt kjører helt rett fremover kan du forsøke å gjøre noen små justeringer på den ene servoen. Eksempel: Svinger Wheel:bit bittelitt mot venstre, bør hastigheten på denne siden litt opp, eller hastigheten på den høyre siden litt ned. Ikke bruk verdier lavere enn 10 eller høyere enn 170

Last updated