py5 u Thonny-ju – instalacija i prvi sketch

Lekcija 3 od 20 · Python i Processing

U ovom kursu crtamo i animiramo u py5-u: to je Processing za pravi Python 3. Radimo u Thonny-ju, istom okruženju koje koristimo za osnove Pythona i za MicroPython na micro:bit-u. Tako učenik celu godinu radi u jednom programu.

Zašto ne Processing Python Mode?
Python Mode u Processing-u 4 se više ne održava i koristi stari Python 2.7 (Jython). Crtanje i animacije rade, ali biblioteke za serijsku vezu i zvuk često ne rade – baš one koje trebaju za micro:bit. Detalji: Processing 4 – problemi i izbor puta.

Korak 1 – Thonny

Preuzmi Thonny sa thonny.org i instaliraj ga. Ako ga već imaš iz osnovnog kursa, ažuriraj ga na poslednju verziju. py5 traži Python 3.11 ili noviji, a Thonny ga donosi sa sobom.

Korak 2 – dodatak thonny-py5mode

  1. U Thonny-ju otvori Tools → Manage plug-ins…
  2. Potraži thonny-py5mode i klikni Install.
  3. Zatvori i ponovo pokreni Thonny. U meniju se pojavljuje py5.

Korak 3 – uključi imported mode

U meniju py5 označi Imported mode for py5. Prvi put dodatak sam preuzima i podešava Javu (JDK) – to traje nekoliko minuta, samo jednom. Ne moraš ručno da instaliraš Javu niti da podešavaš JAVA_HOME.

Važno:
kada radiš obične Python programe iz osnovnog kursa (input, print), isključi imported mode. On je namenjen samo programima koji crtaju.

Korak 4 – prvi sketch

# py5 u Thonny-ju (imported mode): nema import naredbe ni py5. ispred funkcija

def setup():
    size(600, 400)


def draw():
    background(240)
    fill(0, 150, 255)
    no_stroke()
    circle(mouse_x, mouse_y, 50)   # krug prati miš

Pokreni zelenim dugmetom ▶. Otvara se prozor sa krugom koji prati miš.

Šta se menja u odnosu na Processing Python Mode

Logika programa ostaje ista: setup(), draw(), koordinate, boje. Menjaju se imena: umesto velikog slova u sredini (mouseX) piše se malo slovo i donja crta (mouse_x).

Processing Python Modepy5 (imported mode)
mouseX, mouseYmouse_x, mouse_y
pmouseXpmouse_x
mousePressed (promenljiva)is_mouse_pressed
def mousePressed():def mouse_pressed():
keyPressed (promenljiva)is_key_pressed
def keyPressed():def key_pressed():
keyCodekey_code
noStroke(), noFill()no_stroke(), no_fill()
strokeWeight(3)stroke_weight(3)
textSize(20), textAlign(CENTER)text_size(20), text_align(CENTER)
rectMode(CENTER), ellipseMode(…)rect_mode(CENTER), ellipse_mode(…)
frameCountframe_count
frameRate(30)frame_rate(30)
noLoop()no_loop()
map(v, a, b, c, d)remap(v, a, b, c, d)
loadImage("slika.png")load_image("slika.png")
PVectorPy5Vector
add_library('serial') + serialEvent()import serial (pyserial), čitanje u draw()
Isto ime u oba okruženja:
size, background, fill, stroke, ellipse, rect, line, circle, text, width, height, random i constrain pišu se isto, pa mnogi primeri rade bez izmena.
Rezervisana imena:
u imported mode-u ne nazivaj svoje promenljive imenima py5 funkcija (npr. size, text, width). Piši velicina, poruka, sirina_palice.

py5 i micro:bit

Za čitanje podataka sa micro:bit-a instaliraj paket pyserial: Tools → Manage packages…, potraži pyserial, Install. Primer celog projekta je u lekciji micro:bit kao gejming kontroler, a osnova u lekciji micro:bit → py5 preko serijskog porta.

Jedan port – jedan program:
isti Thonny služi i za micro:bit. Kada si snimio program na micro:bit, prebaci interpreter na Local Python 3 (donji desni ugao Thonny-ja), pa tek onda pokreni py5 sketch koji čita port.

Proveri znanje

Otvori kviz

Mini kviz: py5 u Thonny-ju

1. Kako se u py5 piše mouseX?




2. Šta radi dodatak thonny-py5mode prvi put kad uključiš imported mode?




3. Kada isključuješ imported mode?




4. Kako se zove funkcija map() u py5?




Korisni spoljni resursi