Mundu errealarekin lotura: Raspberry Pi GPIO

Zer da GPIO?

Oinarrizko elektronika-praktikak ere plakan bertan egiteko asmakizuna da RPi, eta Arduino eta enparauen beharrik gabe, GPIO (General Purpose Input/Output) izeneko plakako atal batekin egiten dira. 40 pin edo sarrera-irteera elektriko ditu plakak, eta nahieran programatu daitezke RPi-k eta kanpoko munduak elkarri eragiteko.

Beste modu batera esanda, sentsoreak konektatzen dira kanpoko datuak jaso eta interpretatzeko, eta datu horien arabera abiarazten dira ekintzak; edo alderantziz, zuzenean programatu daiteke kanpoko eragingailu bati agintzeko (argi bati edo motor bati, adibidez).

Sistema-eragilearen eta GPIO geruzaren arteko komunikazio horrek ezinbestean behar du programazio-lengoaia bat. Raspbian, oro har, Pythonekin erabiltzen da eta Raspbianeko bertsioan bertan dago, beharrezko liburutegia kontrolerako aginduekin. Dena den, Zatoz meategira programatzera! ikastaroan Python lehenetsi arren Scratchekin Minecraft nola lotu ere azaltzen denez, aurrerago daude batetik zein bestetik LED bat pizteko adibideak.

GPIOaren alboko eskemak pin bakoitzaren izaera adierazten du. Beltzak lur-seinaleak dira, elektrizitatearen bueltako bidea edo polo negatiboa. Laranjak elikatzeko harguneak dira, polo positiboa, 3.3 V-ko tentsioa ematekoak. Gorriak ere laranjak bezalakoak dira, baina 5 V-ko tentsioa ematen dute. Berdeak, aldiz, sarrera- edo irteera-seinale gisa programatu daitezke. Informazioa trukatzeko erabiltzen dira, jasotzeko zein bidaltzeko seinale gisa, hain zuzen (5 V-ko tentsioa ematen dute baieztatzeko, eta 0 V-koa, ezeztatzeko). Horiak oso erabilera zehatzak eta aurreratuak dituzte (I2C LCD pantaila txikiekin lotzeko erabiltzen dira). Moreak, arrosak eta urdinak ere prest daude beste betebehar batzuetarako, baina sarrera-irteera gisa erabili daitezke lasai asko.

Egitasmo ederrak egin daitezke plakan integratutako baliabide horrekin. Baina ez da arin hartzeko kontua; izan ere, tentuz jokatu ezean, plaka erre egin daiteke kableak zoriz sartzean edo potentzia handia behar duten osagaiak konektatzean. Baliteke LEDak ondo egotea, baina motorrak ez. Arduraz jokatzea komeni da, eta hasieran geruza bat bakarrik erabiltzea (esaterako, Pibrella).

GPIOren hainbat ezaugarri ez dira argitu atal honetan, eta erabiltzaileak berak ikertu beharko du, beharra sortu ahala. Esate baterako, benetan ezaugarri interesgarria da Remote GPIO izenekoa, sare-zerbitzu gisa aktibatu eta beste RPi batetik eragin dakiokeelako urrutitik.

OHARRA: Azpiatal honetara itzultzeko gomendatzen da aurrerago, ezinbestekoa delako programazio-ingurunearen funtzionamendua aurretik ondo ulertzea; agian, gainera, tutoriala errepasatu beharko da praktikaren bat egiteko (Will Byers alderdi ilunetik komunikatzen erronka egiteko, esaterako).

Keinukariaren praktika

Praktika honetan, zirkuitu bat eraiki behar da, eta, horretarako, osagai hauek behar dira:

    • edozein koloretako LEDa
    • erresistentzia txikia: adibidez, 220 Ω-koa
    • Protoboard plaka

Saiatu irudian agertzen den bezala egiten: lotu LEDaren hanka luzea (positiboa) 18. pinera; egia esan, aurreko eskemako edozein pin berde edo urdinek ere balio du, baina gero, programatzean, gogoan izan zenbakia! Segidan, lotu erresistentziarekin LEDaren beste hanka motzagoa (negatiboa) lur-hartune bati.

Ondoren, programazio-ingurunea aukeratu eta plakari agindu behar zaio zirkuitu horri eragiteko. Beraz, aukeratu Python eta egin Scratchekin.

Python

Raspbianek berekin dakar Pythonen moldatutako GPIO liburutegia. Beraz, erabiltzeko aipamena besterik ez zaio egin behar. Zabaldu Python3 programazio-ingurunea Menua > Programazioa > Python 3 (IDLE) sakatuta. Bertan, sakatu File > New File eta sortu fitxategi berri bat.

Mahaigainean propio sortutako karpetan gorde daiteke File > Save eginda. Gogoratu Git erabiltzea ohitura erosoa dela, segurua delako erabiltzailearentzat eta baita sarean partekatuta erabiltzen dutenentzat ere.

Gauzak horrela, kopiatu honako agindu hauek, eta bukatzean, martxan jarri IDLEa menuan Execute aukeratuta edo teklatuan F5 sakatuta:

import RPi.GPIO as GPIO
import time

#plaka abiaraztea GPIO erabiltzeko:
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
#pina hasieratu irteera-seinale gisa:
GPIO.setup(18, GPIO.OUT)
print “Piztu argia!”
#5 V bidali pinera:
GPIO.output(18, GPIO.HIGH)
#itxaron, argia piztuta dagoela:
time.sleep(3)
print “Eta dagoeneko itzali da”
#0 V jarri pinean:
GPIO.output(18, GPIO.LOW)

Eta? Ezer jazo al da?

Scratch

Raspbianen Stretch azken bertsioan Scratch2 ingurunea dator instalatuta, eta horrek aukera ematen du gehigarriak instalatzeko. GPIO kontrolatzeko bloke berriak ere lehenetsita dakartzanez, gaitu besterik ez dira egin behar. Horretarako, ireki Scratch2 programa, menuan Programazioa > Scratch2 aukeratuta. Ondoren, gaitu bloke berriak Scriptak erlaitzean dagoen Bloke gehiago atal morera joanda. Gero, sakatu Luzapena botoiari, aukeratu Pi GPIO izeneko irudia eta sakatu OK. Horiek horrela, agindu gehiago agertzen dira “Bloke gehiago” atalean.

Dagoeneko honako irudiko programa hau egin eta abiarazi daiteke:


Eta? Ezer jaso al da?