Razumevanje delovanja programa

Pri tej dejavnosti boš spoznal(-a) in razumel(-a) delovanje zank v programiranju. Po vzpostavitvi okolja za delo boš pognal(-a) delujoč program in ugotovil(-a), kaj dela. Nato se boš preizkusil(-a) v razumevanju delovanja programa. Pomagal(-a) si boš z izpisi na zaslon. Naučil(-a) se boš tudi nekaj o času, ki ga program porabi za delovanje.

Strojna oprema

  • 1 Malina
  • 1 preizkusna ploščica (angl. breadboard)
  • 1 zatič oblike T s kablom (angl. T-cobbler with breakout cable)
  • 1 LED dioda poljubne barve
  • 1 upor 100-330 Ω
  • vtične žičke moški-moški (angl. jumper wire male-to-male)

Programska oprema

  • Python 3 (prednameščen na Raspbianu)
  • Pythonov modul gpiozero (prednameščen na Raspbianu)

Navodila

  1. Poveži Malinine GPIO nožice in preizkusno ploščico s pomočjo T-zatiča in kabla.
  2. Naredi vezje na preizkusni ploščici (glej zavihek Vezje).
  3. Odpri IDLE in ustvari novo datoteko tako, da klikneš File > New file.
  4. Shrani novo datoteko tako, da klikneš File > Save. Datoteki daj ime zanke.py.
  5. V datoteko zanke.py vnesi kodo z zavihka Koda.
  6. Shrani kodo s Ctrl+S in jo nato zaženi s F5.
    Svetilnost LED diode bi se morala spreminjati po korakih od ugasnjene do polne svetilnosti in nazaj.

Naloge

  1. Za vsako vrstico programa ugotovi, kaj naredi na preizkusni ploščici in ugotovitve zapiši na delovni list.
    Pomagaj si tako, da dodaš ukaz print na različnih mestih v programu in slediš izpisom v oknu interpreterja.
    Primer: ukaz print("Vrednost spremenljivke a je ", a) bi izpisal na zaslon stavek Vrednost spremljivke a je 15, če bi bila na tistem mestu programa vrednost spremenljivke enaka 15. Lahko tudi spreminjaš programsko kodo, če boš tako lažje ugotovil(-a) pomen posamezne vrstice.
  2. Svetilnost LED diode se spreminja po korakih. Spremeni program tako, da se bo svetilnost spreminjala tako, da oko ne bo razpoznalo preklopov svetilnosti, ampak boš imel(-a) občutek, da se svetilnost spreminja zvezno. Zapiši, kaj je bilo potrebno spremeniti v programu.
  3. V programu smo uporabili ukaze time.sleep(x). Kaj bi se zgodilo, če bi napisal(-a) program brez teh ukazov? Izbriši jih iz programa in ugotovi kaj se zgodi. Razmisli o rezultatu in zapiši zakaj si dobil(-a) tak rezultat.
  4. Izmisli si svoj izziv, ki bo vseboval zanko ( zanka while True ne šteje!) in ga sprogramiraj (npr. različno utripanje LED diode). Lahko uporabiš isto vezje, lahko ga tudi spremeniš (npr. uporabiš več LED diod). Izziv in rešitev na kratko opiši na delovni list.


# encoding: utf-8
import gpiozero
import time

pin17 = gpiozero.PWMLED(17)

while True: # zanka, ki zagotovi ponavljanje kode v nedogled
    svetilnost = 0
    while svetilnost < 1:
        svetilnost = round(svetilnost, 1)
        pin17.value = svetilnost
        svetilnost = svetilnost + 0.1
        time.sleep(0.5)
    while svetilnost > 0.1:
        svetilnost = round(svetilnost, 1)
        pin17.value = svetilnost
        svetilnost = svetilnost - 0.1
        time.sleep(0.5)

Izvorna koda