Gestire linee gpio sul Raspberry pi
Sapiamo che le schede Raspberry Pi offrono un panorama di impiego molto ampio, grazie anche alla presenza di un connettore maschio a 40 pin (Raspberry Pi 1, 2, 3, Zero) che interfaccia la scheda a diverse tipologie di circuiti elettronici. Questa possibilità è data da una serie di linee GPIO che possono essere programmate anche con Python.Cosa sono le linee GPIO
Le linee GPIO (general purpose input output) sono dei collegamenti tra il processore e i pin del connettore della scheda. Queste linee possono essere programmate sia per funzionare come porte di ingresso sia come porte di uscita. Alcune di queste linee hanno delle funzionalità aggiuntive infatti possono essere configurate come linee UART, SPI o I2C.Pin function
Per conoscere la posizione e la denominazione delle linee GPIO nel connettore a 40 pin del Raspberry Pi utilizzo il comando pinout. Apriamo il terminale LxTerminal e digitiamo il seguente comando:
1 |
$ pinout |

Gestire le linee GPIO con Python
Configurare pin Gpio in uscita
Per utilizzare le porte IO abbiamo a disposizione l’attributo GPIO del modulo RPi. Questo attributo mette a disposizione i metodi per definire una linea come ingresso o come uscita e ne permette di controllarne lo stato. Se è una linea di uscita è possibile porla a livello logico alto oppure basso, se è una linea di ingresso è possibile leggere il valore logico disponibile sul pin. Per scrivere il programma Python usiamo Thonny, disponibile come software preinstallato nelle ultime versioni di Raspbian. scriviamo la prima istruzione che definisce l’attributo GPIO
1 |
from RPi import GPIO |
1 |
GPIO.setmode(GPIO.BCM) |
1 |
GPIO.setup(21, GPIO.OUT) |
1 |
GPIO.setmode(GPIO.BOARD) |
1 |
GPIO.setup(40, GPIO.OUT) |
1 2 3 4 |
#uscita a livello logico alto GPIO.output(21, GPIO.HIGH) #uscita a livello logico basso GPIO.output(21, GPIO.LOW) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from RPi import GPIO import time #tipo di riferimento, numerazione della cpu GPIO.setmode(GPIO.BCM) #imposto linea 21, pin 40, come uscita GPIO.setup(21, GPIO.OUT) #ciclo infinito while (True): #metto la linea 21 alta GPIO.output(21, GPIO.HIGH) #attendo 1 secondo time.sleep(1) #metto la linea 21 bassa GPIO.output(21, GPIO.LOW) #attendo 1 secondo time.sleep(1) |

Configurare pin Gpio in ingresso
Allo stesso modo di come abbiamo configurato un pin in uscita possiamo utilizzare alcune semplici istruzioni per impostare un pin in ingresso. L’istruzione seguente configura la linea Gpio 20 (pin 38) come ingresso:
1 |
GPIO.setup(20, GPIO.IN) |
1 |
GPIO.input(20) |

1 2 3 4 5 6 7 8 |
from RPi import GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(20, GPIO.IN) while (True): if GPIO.input(20)== False: print ("Pulsante premuto") |
Categorie
- CorsoArduino (2)
- Elettronica (9)
- Ghi-FEZ (5)
- MikroC (1)
- Notizie (35)
- OpenPicus (8)
- Programmazione (31)
- Tutorial Arduino (91)
- Tutorial Netduino (36)
- Tutorial Python (2)
- Tutorial Raspberry PI (5)
- Tutorial Zerynth (1)