Bentornato all’ottava parte della rubrica RaspberryPi, le basi , oggi si parlerà di GPIO.
Nelle puntate precedenti…
- RaspberryPi, le basi: Cos’è e cosa non è. #1
- RaspberryPi, le basi: Sistemi operativi ed installazione. #2
- RaspberryPi, le basi: post installazione. #3
- RaspberryPi, le basi: i software. #4
- RaspberryPi, le basi: Comandi e file utili #5
- RaspberryPi, le basi: accesso remoto al Desktop. #6
- RaspberryPi, le basi: sicurezza informatica contro gli hacker. #7
Cosa sono le porte GPIO
La cosa che mi ha sempre affascinato del RaspberryPi, a parte il costo irrisorio, sono le porte GPIO e la possibilità di comandarle in tempo reale, senza dover preparare uno sketch, salvarlo, caricarlo, resettare ….
… Queste possono agire come input, per leggere i segnali digitali dalle altre parti del circuito, o output, per controllare o segnalare agli altri dispositivi. …
Semplicemente servono per comunicare con il mondo esterno, vi si possono collegare ogni sorta di sensore, motori, microcontrollori e molto altro… anche le banane.
Nel RaspberryPi le porte GPIO, sono dei pin metallici posizionati su un lato, ed attualmente sono 40, di cui varie con specifiche funzioni.
Nel sito pinout.xyz puoi trovarle descritte in modo preciso. Bisogna fare attenzione alla numerazione che di norma troverai nominate come GPIO, che corrisponde a BCM.
Cosa significano questi numeri?
BCM – Numero pin Broadcom, comunemente chiamato “GPIO”, questi sono quelli che probabilmente vorresti usare con RPi.GPIO e GPIO Zero
WiringPi – Numero pin di Wiring Pi (mostrato come descrizione comando), per la libreria Wiring Pi di Gordon Henderson
Fisico: numero corrispondente alla posizione fisica del perno nell’intestazione
Rev 1 Pi – Numeri BCM alternativi per il modello originale a 26 pin “A” e “B” Pi
Come avrai notato dallo schema, alcune porte gestiscono l’alimentazione, alcune sono semplici Input/Output, mentre alcune hanno funzioni speciali, come 1-Wire, Seriali, PMW ed altre che potrai approfondire in base al progetto che seguirai.
Oltre ai singoli sensori esistono vere e proprie schede dedicate a scopi precisi, chiamate HAT. Pimoroni è molto conosciuto come costruttore e nel suo shop potrai farti un idea della varietà di dispositivi pronti da attaccare, senza saldature, alle porte GPIO.
Attenzione: prima di collegarci la lavatrice, ricorda sempre che possono assorbire una quantità limitata di corrente.
La tensione di funzionamento dei pin GPIO è di 3,3 V con un assorbimento di corrente massimo di 16 mA. Ciò significa che possiamo alimentare in sicurezza uno o due LED da un singolo pin GPIO, tramite un resistore. Ma per qualsiasi cosa che richieda più corrente, ad esempio un motore CC, dovremo utilizzare componenti esterni per assicurarci di non danneggiare il GPIO.
Librerie GPIOZero
Ogni sensore o motore che collegherai sarà comandabile semplicemente usando una libreria, di norma in python, dedicata al dispositivo. Le librerie sono create spesso da persone indipendenti.
La libreria preferita dalla fondazione RaspberryPi e da me, si chiama GPIOZero .
GPIOZero riunisce la gestione dei più comuni dispositivi, in semplici comandi, ben documentati e pronti all’uso.
Si parte dal far lampeggiare un semplice led
from signal import pause
led = PWMLED(17)
led.pulse()
pause()
Fino a comandare da remoto qualsiasi periferica anche grazie all’uso delle API.
Installazione GPIOZero
Raspbian Full possiede di default GPIOZero, mentre su Raspbian Lite, andrà installata.
- Aggiorniamo l’elenco apt
sudo apt update
- Installiamo le librerie per python3
sudo apt install python3-gpiozero
- Oppure per python2
sudo apt install python-gpiozero
Esiste anche la versione per Windows / Mac , ma serve per comandare da remoto le porte GPIO del RaspberryPi .
Perfetto, verifichiamo che siano installate digitando nella shell il comando pinout
.
Nel caso tu stessi usando la versione Raspbian Full a scopo educativo, con l’uso di Scratch, avrai a disposizione i blocchi per usare le porte GPIO in modo a portata di bambino.
Approfondimenti
- Descrizione Porte GPIO
- Documentazione GPIOZero
- Pimoroni è un famoso rivenditore inglese
- Melopero è un rivenditore italiano
- Anche in Amazon troverai molti componenti validi