Janne Korsimo
7.-9. luokka
IT PRO
microbit ohjelmointi ohjelmoinnin alkeet
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:
-
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.)
-
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ä. - Ohjelma on nyt valmis testaamaan. Paina Flash (tai lataa .hex ja siirrä se microbitille). Micro:bitin pitäisi näyttää tekstinä tervehdyksesi.
-
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:
-
Tehdään Python-koodi, joka reagoi nappeihin jatkuvasti. Aloita koodi taas tuontirivillä:
from microbit import * - 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. -
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). -
Lisää silmukan loppuun pieni viive, jotta looppi ei juokse liian nopeasti:
sleep(100)(100 ms viive riittää.)
-
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) - 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 merkkijonoksistr()-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 randomkoodin alkuun. - Satunnaisen kokonaisluvun saamiseksi käytetään funktiota
random.randint(a, b)missä a on alaraja ja b yläraja. Esimerkiksirandom.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/