×
Janne Korsimo
2 oppituntia
Luokka-aste
7.-9. luokka
Oppiaineet
IT PRO
Hakusanat
microbit ohjelmointi ohjelmoinnin alkeet

Microbit - Osa5 - Python

Osa 5: Python

Tavoitteet:

  • Kokeilla micro:bitin ohjelmointia tekstipohjaisella Python-kielellä (MicroPython)
  • Ymmärtää yksinkertaisia Python-käskyjä micro:bitille (esim. LED-näytön komennot, silmukat ja ehtolauseet koodina)
  • Oppia siirtymään lohkoajattelusta koodiin – nähdä yhteys lohkojen ja koodirivien välillä
  • Toteuttaa pari perusohjelmaa Pythonilla: "Hei maailma" ja napinpainalluksiin reagoiva ohjelma

Huom: Avaa Python-editori osoitteessa https://python.microbit.org  (valitse New aloittaaksesi uuden ohjelman). Kirjoita koodi tekstinä editoriin ja käytä Download tai Flash lähettääksesi koodi micro:bittiisi. Python-koodi tunnistaa isot ja pienet kirjaimet, ole tarkkana kirjoittaessasi!

 

 

Tehtävä 20: Hello World Pythonilla
Ohjeet:

  1. Siirry Python-editoriin. Kaikki micro:bit Python -ohjelmat alkavat rivillä, jolla tuodaan microbit-kirjasto käyttöön:

     
    from microbit import *
     

    Kirjoita tämä ensimmäiselle riville. (Kirjasto sisältää valmiit komennot micro:bitin ohjaukseen.)

  2. Seuraavalla rivillä käytetään LED-näyttöä: kirjoita esimerkiksi:

     
    display.scroll("Hei Microbit!")
     

    Komento display.scroll() vierittää annetun tekstin micro:bitin näytöllä. Varmista, että merkkijono on lainausmerkeissä.

  3. Ohjelma on nyt valmis testaamaan. Paina Flash (tai lataa .hex ja siirrä se microbitille). Micro:bitin pitäisi näyttää tekstinä tervehdyksesi.
  4. Kokeile muokata tekstiä. Voit myös kokeilla display.show() -komentoa:

     
    display.show(Image.HEART)
     

    Tämä näyttää valmiin sydänkuvakkeen. Muista tuoda Image-olion iso alkukirjain oikein.

Selitys: display on olio, joka viittaa micro:bitin LED-näyttöön. Sillä on metodeja kuten scroll() ja show(). Image.HEART on microbit-kirjaston sisäänrakennettu kuvio.

Palauta koodi Teamsin tehtävään: MicroBit-20

Tehtävä 21: Nappien luku Pythonilla
Ohjeet:

  1. Tehdään Python-koodi, joka reagoi nappeihin jatkuvasti. Aloita koodi taas tuontirivillä:

     
    from microbit import *
     
  2. MicroPythonissa ei ole erillisiä tapahtumalomakkeita napeille kuten lohkoeditorissa, vaan käytämme jatkuvaa silmukkaa tilan tarkkailuun. Kirjoita ikuisesti-toistoon Pythonissa while True: rivin alkuun. Muista kolon (:) loppuun.
  3. Sisennä seuraavat komennot (4 välilyöntiä sisään, Python vaatii sisennyksen lohkon sisällä):

     
    if button_a.was_pressed():
        display.show(Image.HAPPY)
    if button_b.was_pressed():
        display.show(Image.SAD)
     

    Tässä käytetään ehtoja: jos A-painiketta on painettu, näytetään iloinen naama; jos B-painiketta on painettu, näytetään surunaama. was_pressed() tunnistaa painalluksen kerran ja nollaa sen (eli näyttää yhden painalluksen kerrallaan).

  4. Lisää silmukan loppuun pieni viive, jotta looppi ei juokse liian nopeasti:

     
    sleep(100)
     

    (100 ms viive riittää.)

  5. Koodi kokonaisuudessaan näyttää tältä:

     
    from microbit import *
    while True:
       if button_a.was_pressed():
          display.show(Image.HAPPY)
       if button_b.was_pressed():
          display.show(Image.SAD)
       sleep(100)
     
  6. Flashaa koodi micro:bittiin. Nyt micro:bitin näyttöön pitäisi ilmestyä 😊 kun painat A:ta, ja ☹ kun painat B:tä. Ne pysyvät näytöllä viimeisimmän painalluksen mukaisina. Voit lisätä vaikka display.clear() komennon sleepin eteen, jos haluat, että naama näkyy vain hetkellisesti.

Ymmärrä: Tässä toteutimme jatkuvan silmukan (while True on kuin ikuisesti-lohko) ja kaksi ehtoa sen sisällä. Pythonin button_a.was_pressed() on vastaava toiminto kuin lohko “kun painiketta A painetaan” – se tarkistaa painalluksen.

Vinkki: Lisätietoja MicroPython-komentoihin löydät Micro:bitin Python-dokumentaatiosta. Peda.net-sivulla on myös suomeksi ohjeita eri MicroPython perusasioihin.

Palauta koodi Teamsin tehtävään: MicroBit-21

Tehtävä 22: Kokeile itse! Lämpötila Pythonilla
Haaste: Tee micro:bitille sama lämpömittaritoiminto Python-kielellä, jonka teit lohkoilla Tehtävässä 13.

  • Vihje: MicroPythonissa saat lämpötilan komennolla temperature() (kokeile esim. t = temperature()). Saatuasi lukeman, voit näyttää sen: display.scroll(str(t)). Muunna luku merkkijonoksi str()-funktion avulla, jotta voit scrollata sen. Lisää halutessasi °C yksikkö: display.scroll(str(t) + " C").
  • Yhdistä tämä nappiohjelmointiin: esim. tee jatkuva while-silmukka, ja sisälle ehto if button_a.was_pressed(): niin että A-napin painalluksella kutsutaan yllä mainittua näyttöfunktiota (lukee lämpötilan ja scrollaa sen).

Käytännössä: kun painat A, micro:bit hakee temperature()-funktion avulla lämpötilan ja näyttää sen.

Jos saat tehtyä yllä olevan, kokeile laajentaa ohjelmaa: voit lähettää tämän lämpötilatiedon vaikka radioyhteydellä toiselle micro:bitille (vaatii import radio ja radion käytön MicroPythonissa – haastava, mutta edistyneille kokeiltavaksi!).

Tehtävä 23 (Lisätehtävä): Satunnaisuus Pythonissa
Tutki, miten Pythonissa saadaan satunnaislukuja. Voit toteuttaa esimerkiksi kolikonheiton tai nopan Python-koodilla:

  • Ota käyttöön Pythonin random-kirjasto kirjoittamalla import random koodin alkuun.
  • Satunnaisen kokonaisluvun saamiseksi käytetään funktiota random.randint(a, b) missä a on alaraja ja b yläraja. Esimerkiksi random.randint(0,1) antaa joko 0 tai 1 satunnaisesti. random.randint(1,6) antaisi luvun 1–6.
  • Kokeile tehdä pieni ohjelma:

    from microbit import *
    import random
    while True:
       if button_a.was_pressed():
          n = random.randint(1,6)
          display.scroll(str(n))
     

    Tämä arpoo nopan luvun 1–6 jokaisella A-painalluksella ja näyttää sen.

Yritä toteuttaa jokin aiemmin lohkoilla tekemäsi peli nyt Pythonilla hyödyntäen random-moduulia ja ehtoja. Esimerkiksi voit tehdä uudelleen kolikonheiton: arpoa 0/1 ja näytä kruuna/klaava teksti tai kuvio sen mukaan.

Vinkki: Python-koodin kehittämiseen löytyy runsaasti materiaalia. Esimerkiksi Peda.netin Micro:bit Python -materiaalipankissa on harjoituksia hello worldistä animointiin ja ehtoihin. Niistä voit katsoa esimerkkejä, jos jäät jumiin.

Palauta koodi Teamsin tehtävään: MicroBit-23

BBC micro:bitin avulla harjoitellaan koodaamisen perusteita.

Micro:bit on kämmeneen mahtuva, ohjelmoitava tietokone. 

Vinkkejä löytyy lisää yhteisön sivustolta, http://microbit.org/fi/