Kom i gang med micro:bit og MicroPython

Kom i gang med micro:bit og MicroPython

I denne artikkelen skal vi ta de første stegene med MicroPython og micro:bit ved å lage en enkel terning som trekker et tilfeldig tall når du rister på micro:bit'en. Kun med ni linjer kode.

Hva er MicroPython?

Kort sagt er MicroPython en implementasjon av Python 3 for mikrokontrollere. MicroPython inkluderer et lite subset av standardfunksjonene i Python, men det er optimalisert til å kjøre på mikrokontrollere istedenfor mikroprosessorer.

Hva er micro:bit?

micro:bit er en mikrokontroller laget av BBC i England i samarbeid med mange andre selskapet (ARM, CISCO, Code Club, Microsoft, Python Software Foundation.) Målet med samarbeidet er å lage en plattform for barn å lære om teknologi og bli skapere med teknologi. I 2016 ble micro:bit Foundation stiftet for å ta arbeidet videre.

micro:bit er kun 5x4cm og i midten av kortet finner du en 5x5 matrise med røde lysdioder flankert med to programmerbare knapper. På nedre kan finner du 20 pin GPIO (General Purpose Input Output) der 5 av disse (0,1,2,3V og GND) kan kobles til krokodilleklemmer. Kortet kommer integrert med en 32-bit ARM Cortex M0 16MHz CPU med 16K RAM, Bluetooth Low Energy (BLE), accelerometer og kompass.

Hvordan kan du programmere med micro:bit?

Det er mange programmeringsspråk du kan bruke med micro:bit, men de to mest populær er JavaScript Blocks og MicroPython. I dette eksempelet bruker vi MicroPython til å lage en terning som reagerer på at micro:bit'en ristes. Til dette prosjektet trenger du:

  • En micro:bit
  • En micro-USB til USB kabel
  • En datamaskin med internett

Start med å åpne nettleseren å gå til http://python.microbit.org der du får opp Python-editoren.

Brukergrensesnittet

  • Download: Last ned programmet ditt (som en .hex-fil) og overfør den til micro:bit'en din
  • Save: Last ned en koden til programmet ditt (som en .py-fil) slik at du kan hente den frem igjen senere og jobbe videre på den.
  • Load: Last inn en .hex-fil i editoren
  • Snippets: Kodeblokker som du kan bruke i programmet ditt.
  • Help: Her finner du rik dokumentasjon på hva du kan gjøre.
  • + / -: Gjør teksten større og mindre

Du vil se at det allerede er noe kode i editoren som sier "Hello World". Hvis du vil kan du prøve å laste ned programmet og overføre det til micro:bit'en din for å se at det fungerer.

Slett all koden med unntak av linje 2 "from microbit import *". På en ny linje legger du til en kode for å importere "randint"-funksjonen fra "random"-biblioteket. Vi skal bruke "randint" (Random Integer) (Norsk: Tilfeldig Heltall) for å generere et tilfeldig tall fra 1 til 6 til terningen vår.

from random import randint

Nå trenger vi en evig løkke, i Python heter dette "while True:". Denne løkka vil kjøre alle kode den inneholder.

while True:

Når du nå trykker Enter/Linjeskift er vi på innsiden av løkka, indikert med at koden begynner med 4 mellomrom / 1 tabulator (som automatisk legges til av editoren). På den neste linja må vi utføre en test for å sjekke om micro:bit'en blir ristet. Når micro:bit'en din ristes vil bevegelsen få navnet "shake". Dette kan vi teste med følgende kode:

if accelerometer.was_gesture("shake"):

Nå får koden din ennå et innrykk som betyr at de neste linjene vil kjøre dersom micro:bit'en ristes. Først vil micro:bit'en vise et tilfeldig tall på skjermen. 

display.show(str(randint(1,7)))

De neste to linjene vil pause programmet ditt i 2 sekunder (2000 millisekunder) for deretter å slukke alle lysdiodene på skjermen.

sleep(2000)
display.clear()

Men hva skjer når micro:bit ikke blir ristet? Da kan vi legge inn en "else:"-betingelse som kan vise et smilefjes når micro:bit'en ikke vises.

else:
    display.show(Image.HAPPY)

Det var alt. Nå kan du trykke "Download" og overføre programmet ditt til micro:bit'en. For å få til dette kobler du USB-kabelen fra micro:bit'en til PC'en din. micro:bit vil dukke opp som en USB flash-disk. Kopier koden du har lastet ned over på micro:bit'en. På baksiden av micro:bit'en vil du se et gult, blinkende lys mens programmet overføres. Når denne slutter å blinke er programmet overført og vil starte og du skal se et smilefjes. Nå kan du riste micro:bit'en og den vil velge et tilfeldig tall.

I denne guiden har du tatt dine aller første steg med MicroPython. 

Komplett kode

from microbit import *
from random import randint
while True:
    if accelerometer.was_gesture("shake"):
        display.show(str(randint(1, 7)))
        sleep(2000)
        display.clear()
    else:
        display.show(Image.HAPPY)

Nyttige linker

Hvis du syns dette virket spennende kan du lære mer om micro:bit og MicroPython via disse ressursene:

Forrige artikkel Edison Robot - Gøy med robotikk for morgendagens innovatører
Neste artikkel Marbotic: Lek og lær med tall og bokstaver