MicroPython

MicroPython

Instalacija MU editora: https://codewith.mu/#download

Hello world!

from microbit import *
display.scroll(“Hello, World!”)

microbit je modul u kojemu se nalazi sve što treba za rad s njim
import znači da MicroPythonu govorimo da želimo koristiti modul
* je Pythonov način za riječ „sve
– dakle: from microbit import * znači: koristi sve iz modula microbit

– riječ display je objekt iz modula microbit
– unutar navodnika i zagrada pišemo argumente, tj. ono što želimo ispisati na micro:bitu

 

Prikaz slika

from microbit import *
display.show(Image.HAPPY)

                           

 

Izrada slike

– svaka LED dioda može svijetliti određenom jačinom (od 0 do 9)
– jačina 0 znači da LED dioda uopće ne svijetli
– jačina 9 predstavlja najjači intenzitet svjetlosti

from microbit import *
boat = Image(‘05050:05050:05050:99999:09990’)
display.show(boat)

 

Zadatak: Nacrtati kuću na micro:bitu.

Rješenje:
from microbit import *
kuca = Image(‘00900:09090:99999:90009:99999’)
display.show(kuca)

 

Izrada animacije na micro:bitu?

Liste
Primjeri:
shopping = [“Eggs”, “Bacon”, “Tomatoes” ]
primes = [2, 3, 5, 7, 11, 13, 17, 19]
mixed_up_list = [“hello!”, 1.234, Image.HAPPY]

Lista slika u MicroPythonu
Dvije liste slika već postoje u MicroPythonu: Image.ALL_CLOCKS i Image.ALL_ARROWS

from microbit import *
display.show(Image.ALL_CLOCKS, loop=True, delay=100)

– prikazuje se svaka slika u listi posebno, jedna za drugom
– loop=True omogućava da se animacija odvija neprekidno
– delay=100 slika se izmjenjuje svakih 100 milisekundi

Kako kreirati vlastitu animaciju?

from microbit import *
c1 = Image(‘05050:05050:05050:99999:09990’)
c2 = Image(‘00000:05050:05050:05050:99999’)
c3 = Image(‘00000:00000:05050:05050:05050’)
c4 = Image(‘00000:00000:00000:05050:05050’)
c5 = Image(‘00000:00000:00000:00000:05050’)
c6 = Image(‘00000:00000:00000:00000:00000’)
sve = [c1, c2, c3, c4, c5, c6]
display.show(sve, delay=200)

 

Zadatak: Napraviti Stickman figuricu koja neprestano maše rukama.

from microbit import *
br1 = Image(‘90909:09990:00900:09090:90009’)
br2 = Image(‘00900:09990:90909:09090:90009’)
mahanje = [br1, br2]
display.show(mahanje, loop=True, delay=500)

 

Tipke

– Output
– Input (tipke A i B)

 

Primjer zadatka:

from microbit import *
sleep(10000)
display.scroll(str(button_a.get_presses()))

– microbit „spava” 10 000 milisekundi (10 sekundi) i onda ispisuje koliko puta je pritisnuta tipka A
– funkcija sleep služi za pauzu u programu (micro:bit „spava” određeni broj milisekundi)
– button_a je objekt na kojemu se izvršava funkcija get_presses()
objekt i funkcija se razdvajaju točkom
– budući da get_presses() daje numeričku vrijednost i display.scroll prikazuje znakove trebamo konvertirati numeričku vrijednost u niz znakova
– funkcija str (string) pretvara brojeve u niz znakova (a string of characters)

 

Petlje (loops)

– petlja while provjerava je li nešto istina (True)
– ako je istina, izvršava se programski kod petlje
– ako nije istina, preskače se programski kod petlje i nastavlja se daljnji program

 

Primjer zadatka s funkcijom running_time()

from microbit import *
while running_time() < 10000:
display.show(Image.ASLEEP)
display.show(Image.SURPRISED)

– funkcija running_time() vraća broj milisekundi od početka pokretanja uređaja

 

Zadatak: Napisati program koji će na micro:bitu prvih 5 sekundi ispisivati Vaše ime, a zatim Vaše prezime.

from microbit import *
while running_time() < 5000:
display.scroll(“Ankica”)
display.scroll(“Zvonko”)

Funkcija is_pressed

– daje dvije vrijednosti: True ili False
– vraća vrijednost True ako je pritisnuta tipka, inače vraća vrijednost False
– naredbom break izlazi se iz petlje
– naredba display.clear()

Kako provjeriti koje tipke su pritisnute?

– naredbe IF, ELIF (else if) i ELSE

if something is True:
# do one thing
elif some other thing is True:
# do another thing
else:
# do yet another thing

 

Primjer zadatka (naredbe IF, ELIF (else if) i ELSE)

from microbit import *
while True:
    if button_a.is_pressed():
display.show(Image.HAPPY)
elif button_b.is_pressed():
    break
else:
display.show(Image.SAD)

display.clear()

 

Zadatak: Napiši program koji unutar 10 sekundi pamti koliko je puta pritisnuta tipka A ili B. Nakon isteka 10 sekundi program prikazuje sumu pritisaka tipki A i B te ukoliko je suma pritisaka veća od 5 prikazuje nasmiješeno lice, inače prikazuje tužno lice.

from microbit import *
sleep(10000)
a = button_a.get_presses()
b = button_b.get_presses()
display.scroll(str(a+b))
if a+b > 5:
display.show(Image.HAPPY)
else:
display.show(Image.SAD)

 

Korištenje micro:bit pinova

from microbit import *
while True:
if pin0.is_touched():
display.show(Image.RABBIT)
else:
display.show(Image.DUCK)

 

Modul random

from microbit import *
import random
names = [‘Marija’, ‘Ivan’, ‘Marko’, ‘Katarina’, ‘Nikola’, ‘Iris’, ‘Marina’]
display.scroll(random.choice(names))

– lista names sadrži 7 članova (string)
– funkcija random.choice ima argument listu names