-
Notifications
You must be signed in to change notification settings - Fork 0
micro:bit med Python: Komme i gang
Mikrokontrolleren micro:bit og roboten Bit:bot XL.
I denne veilederen forklarer vi hvordan du kommer i gang med å programmere micro:bit med Python i Visual Studio Code for Windows. Visual Studio Code er en kildekode-editor, det vil si et program som brukes til å skrive tekstbasert programkode. Å komme i gang krever litt forarbeid, men gir en løsning som er godt egnet for elever med blindhet, svaksynthet og hjernerelaterte synsvansker. For veldig mange av disse elevene er tekstbasert programmering det eneste som fungerer. Men løsningen passer også fint for normalt seende elever som ønsker å bruke tekstbasert programmering.
micro:bit kan brukes alene eller sammen med forskjellige tilbehør. I forbindelse med prosjektet super:bit er roboten Bit:bot XL veldig aktuell. Dette dokumentet beskriver derfor også hvordan du kan komme i gang med Bit:bot XL. Det er viktig at micro:bit programmeres slik at den gir mening for elever som har nedsatt syn eller er blinde. Skjermen (LED-matrisen) på micro:bit er derfor ikke interessant å bruke, i hvert fall ikke alene. Derimot kan lyd, både i form av musikk og syntetisk tale, samt bevegelse være spennende.
Visual Studio Codes programvindu. Programmering av micro:bit.
For elever som er blinde, er blokkbasert programmering umulig. De kan ikke dra og slippe blokker slik seende elever kan. Blokkbasert programmering er også vanskelig for mange elever med nedsatt syn. Flere av de mest kjente løsningene for blokkbasert programmering har dårlige tilpasningsmuligheter, det vil si mangelfulle muligheter for forstørring og kontrastforbedringer.
Python er i dag det mest dominerende programmeringsspråket i skolen. Derfor er Python et godt valgt også til programmering av micro:bit.
Det blokkbaserte verktøyet MakeCode er i utgangspunktet den vanligste løsningen for å programmere micro:bit. Men MakeCode kan også brukes til å programmere micro:bit med Python. Hvorfor ikke bruke MakeCode? Det er mulig, men Visual Studio Code vil likevel være den beste løsningen for blinde elever og for mange elever med nedsatt syn. Grunnen er at programmet har langt bedre tilpasningsmuligheter, flere hurtigtaster og vil fungere bedre med hjelpemiddelteknologien.
NB! For eleven er det viktig at skolen velger enten Visual Studio Code eller MakeCode. Python-koden for micro:bit og Bit:bot vil se forskjellig ut i de to løsningene. Det er derfor ingen god idé å veksle mellom disse. Vi anbefaler at kildekode-editor velges i samarbeid med rådgiver fra Statped.
Det første du trenger er selve Python-systemet. Det er en verktøykasse som inneholder forskjellige standard Python-verktøy. Uten den kan ikke datamaskinen forstå Python. Når Python er på plass, kan du installere Visual Studio Code som brukes til å skrive programmene dine. Deretter må du opprette en mappe i Visual Studio Code der programmene dine skal ligge. Du trenger også en extensions (utvidelse av Visual Studio Code) som gir Visual Studio Code Python-funksjonalitet. Til slutt trenger du en extension som gir deg micro:bit-funksjonalitet i Visual Studio Code.
micro:bit Extension for Visual Studio Code.
Når Python og Visual Studio Code er installert, må du sørge for at du kan bruke Visual Studio Code med micro:bit:
- Åpne Visual Studio Code.
- Åpne Extensions (Ctrl+Shift+X).
- Søk etter microbit med søkefunksjonen øverst i Extensions-feltet. Installer utvidelsen micro:bit fra Statped.
- Start Visual Studio Code på nytt.
- Åpne Command Palette (Ctrl+Shift+P).
- Søk etter og velg kommandoen micro:bit Prepare.
- Når du har fått beskjed om at dette var vellykket, trykk Ctrl+Shift+P og velg kommandoen Reload Window.
Du har nå et utviklingsmiljø som er godt egnet for programmering av micro:bit og Bit:bot XL i Python.
- Bruk oppgavene i super:bit-oppdraget for å øve på å programmere micro:bit og Bit: XL.
- Finn ut hvordan du kan utnytte Visual Studio Code best mulig for elever som er blinde eller har nedsatt syn.
Her finner du lenker til beskrivelse av funksjonene og metodene for micro:bit og Bit:bot XL.
Klikk for å utvide.
- micro:bit: microbit-micropython.readthedocs.io/en/latest/index.html
- Bit:bot XL: https://github.com/oivron/bitbotxl#usage. Dette er i tillegg beskrevet under.
Alle metodene under tilhører Python-modulen for Bit:bot XL. For å bruke disse metodene, må du først skrive bitbot, etterfulgt av punktum og så navn på metoden.
Husk at Bit:bot XL består av to elektromotorer – en på hvert hjul. Slike motorer er ustabile og gir ikke alltid det resultatet en forventer. Motorene kan for eksempel trekke ulikt slik at roboten drar mot høyre eller venstre. Svært lave hastigheter bør unngås. Det kan bety at roboten ikke beveger seg i det hele tatt. Og du vil også legge merke til at roboten kan kjøre med en annen hastighet bakover enn den gjør forover, selv om du har oppgitt at den skal kjøre med samme fart.
# Direction: LEFT eller RIGHT.
# Percent: 0-100%.
bias(direction, percent)
Brukes for å korrigere Bit:bot XL slik at den ikke drar mot høyre eller venstre, men følger en rett linje. Hvis roboten drar mot høyre med for eksempel 10 cm over en distanse på 1 meter, kan dette korrigeres ved å velge direction=left og percent=10:
bitbot.bias(LEFT, 10)
bias-metoden trenger du bare å bruke én gang i programmet ditt. Sett den øverst, rett etter import-setningene.
# Direction: FORWARD eller REVERSE.
# Speed: 0-100%.
go(direction, speed)
Kjører roboten forover eller bakover med en bestemt hastighet. Retningen bestemmes med direction og hastigheten med speed. Speed oppgis i prosent. Å kjøre roboten forover med 40% hastighet, skrives slik:
bitbot.go(FORWARD, 40)
# Direction: FORWARD eller REVERSE.
# Speed: 0-100%.
# Duration: i millisekunder.
goms(direction, speed, duration)
Samme som go, men spesifiserer også hvor lenge roboten skal kjøre. Å kjøre roboten bakover med 60% hastighet i 2 sekunder skrives slik:
bitbot.goms(REVERSE, 60, 2000)
# Direction: LEFT eller RIGHT.
# Speed: 0-100%.
spin(direction, speed)
Brukes for å snu eller rotere roboten. Retningen bestemmes av direction og hastigheten med speed. Når roboten roterer, vil det ene hjulet gå forover, mens det andre går bakover. Den vil med andre ord rotere uten å bevege seg forover eller bakover. For å snu roboten mot høyre med hastighet 30%, må vi skrive:
bitbot.spin(RIGHT, 30)
# Direction: LEFT eller RIGHT.
# Speed: 0-100%.
# Duration: i millisekunder.
spinms(direction, speed, duration)
Samme som spin, men spesifiserer også hvor lenge roboten skal rotere. Å rotere roboten mot venstre med 50% hastighet i et halvt sekund skrives slik:
bitbot.spinms(LEFT, 50, 500)
# Duration: i millisekunder.
buzz(duration)
Buzz brukes for å la roboten lage et pipesignal. Hvis vi vil la roboten pipe i et tidels sekund, skriver vi:
bitbot.buzz(100)
# Directon: LEFT eller RIGHT.
linesensor(direction)
Brukes til å lese av linjesensoren. Bit:bot XL har egentlig to linjesensorer, en foran på hver side. Begge sensorene vil registrere endringer, enten at de havner utenfor en linje, eller ved at de kommer inn på en linje. Vi kan utnytte dette og få roboten til å følge en linje eller å kjøre mellom to linjer. Hvis roboten er i ferd med å forlate linja og dra ut mot venstre, må vi korrigere retningen ved å rotere roboten mot høyre. Slik kan du sjekke om roboten kjører for mye til venstre (dvs. at den forlater linja den har fulgt):
if (bitbot.linesensor(RIGHT) == 1):
# Korriger retningen slik at roboten kjører mer mot høyre.
I eksemplet over må du erstatte kommentaren (merket med #) med koden som er nødvendig for å få roboten tilbake til linja.
For å lage linjer som roboten skal følge, bruker du tapen som følger med micro:bit klassesettet. Men du kan like gjerne bruke vanlig svart tape.
# Returnerer avstand i cm.
sonar()
Brukes for å finne avstanden til det nærmeste objekt foran roboten. Metoden returnerer avstanden i cm. Følgende setning vil sjekke om avstanden til nærmeste objekt er mindre enn 10 cm.
if bitbot.sonar() < 10:
# Korriger retningen så ikke roboten krasjer med det som er foran.
NB! Sonar-metoden forutsetter at sonar-enheten er montert på Bit:bot XL. Denne følger med Bit:bot XL som standard og monteres i sporet helt foran på roboten.
stop()
Stopper roboten.
Vær oppmerksom på at de metodene som har duration som parameter, automatisk vil bruke metoden stop. Du trenger for eksempel ikke bruke stop etter at du har brukt spinms. spinms stopper roboten automatisk etter angitt tid.