30. junija, 2014

Raspberry Pi in Python za začetnike (4)

Revija 221 221 26%20%281%29 - Raspberry Pi in Python za začetnike (4)Revija logo se - Raspberry Pi in Python za začetnike (4)

Moramo si priznati, da smo z Raspberry Pi-jem že dobri prijatelji. Da bomo še boljši, smo se odločili, da vam pripravimo „modul“, ki nam bo zelo olajšal komunikacijo z LCD zaslonom. Potem pa se bomo lotili izpopolnjevanja tega modula. Kaj sploh so moduli? Tudi to bomo omenili in jih opisali. Sledilo bo programiranje inkrementalnega dajalnika impulzov ali bolj domače enkoder-ja, s katerim pa bomo naredili zelo zanimivo aplikacijo.

Znakovni LCD – nadaljevanje

Revija 221 221 26 2 300x180 - Raspberry Pi in Python za začetnike (4)

Kje smo ostali? Saj res. Izpisali smo besedilo v prvo vrstico LCD zaslona, kar pa je bilo vse prej kot mačji kašelj. Seveda pa vas lahko razveselimo, da bo vaš trud dobro poplačan, ker boste lahko vašo prejšnjo kodo z ukazom „import“ uvozili v vse vaše naslednje programe, kjer boste uporabljali znakovni LCD. Malo jo bomo še morali dopolniti, saj nismo zadovoljni s tem, da lahko pišemo le v prvo vrsto, pa še kakšno drugo možnost bomo dodali.

Najprej bi radi naredili naš modul malo bolj univerzalen. Priključke LCD-ja smo namreč vnesli kar direktno v spremenljivke. Te spremenljivke bomo naredili zasebne in jih bomo lahko spreminjali preko funkcije, s katero bomo lahko določili, katere priključke smo na RPi-ju uporabili za komunikacijo z LCD-jem. Funkcija je naslednja:

def set_io(RS, EN, D4, D5, D6, D7):
„““Nastavi vrednosti prikljuckov na RPi“““
    global _LCD_RS, _LCD_EN, _LCD_D4, _LCD_D5, _LCD_D6, _LCD_D7
    _LCD_RS = RS
    _LCD_EN = EN
    _LCD_D4 = D4
    _LCD_D5 = D5
    _LCD_D6 = D6
    _LCD_D7 = D7
Revija 221 221 26%20%283%29 - Raspberry Pi in Python za začetnike (4)

KLIK

Kot ste opazili so se pred spremenljivkami pojavili podčrtaji. To označuje zasebnost (privatnost). Takih metod in spremenljivk ne naslavljamo direktno. Lahko pa omenimo še dve posebnosti. Uporaba trojnih narekovajev („““) je namenjena opisu funkcije, ki se nam pokaže, ko funkcijo kličemo – na primer na mestu „set_io(„. To je dokaj uporabna možnost, ki bo čez čas nas, ali pa druge uporabnike našega  modula spomnila, kaj ta funkcija naredi. Zagotovo pa ste opazili tudi določilo „global“. Z njim napravimo sklic na zunanje spremenljivke. Namreč, če bi pisali brez te vrstice, bi se definirale nove spremenljivke z istim imenom, ki bi bile vidne le v tej funkciji, ne pa v celotnem programu. Vrednosti, ki smo jih funkciji posredovali ob klicu, bi se torej priredile le tem lokalnim spremenljivkam, zunanje pa ostale nespremenjene.

Poglejmo si še, kako bi to funkcijo klicali v programu, v katerega smo uvozili naš modul „alnu_lcd_module“. Denimo da imamo LCD priključen tako, kot je na shemi razvojne plošče AX:

alnu_lcd_module.set_io(12,16,18,22,24,26)

Modul je sedaj skorajda pripravljen za vse splošno uporabo. Ne glede na to, katere priključke RPi-ja bo uporabnik povezal, ga bo lahko uporabil. No, pa povejmo še kaj o modulih. Uporabljamo jih, ko se pojavijo bolj kompleksni programi, katere bi težko obvladali v eni datoteki ali pa želimo uporabljati določeno funkcijo v več programih, ne da bi jo kopirali. Module lahko uvažamo v druge module ali v glavni program, v katerem so nam nato hierarhično na voljo vse spremenljivke in metode. Module je torej, kot ste verjetno že ugotovili, skupek definicij in izjav, ki nam je na voljo v datoteki s končnico „.py“. Tako datoteko uvozimo v naš program z ukazom „import“:

import nasModule

kjer je „nasModule“ ime našega modula, ta pa naj bo v isti mapi kot program, v katerega uvažamo. Python ima sicer tudi nastavljene posebne poti, kjer preverja module možne za uvoz, pa to sedaj pustimo na strani.

Z uvozom modula funkcij definiranih v „nasModule“ ne vnesemo direktno v naš program, vendar lahko s pomočjo tega dostopamo do njih na naslednji način:

nasModule.nasaFunkcija()

Program

Celotni članek

Raspberry Pi in Python za začetnike (4)

AX elektronika d.o.o.

www.svet-el.si

2014_SE221_26