Una caratteristica interessante di Rasperry Pi sono i GPIO, 40 pin general purpose dedicati all’input e all’output di dati. Qualsiasi pin GPIO può essere usato come input o come output per un ampia gamma di scopi.
TENSIONI
Sulla scheda sono presenti due pin 5V e due pin 3.3V, oltre a un numero di pin di Ground (0V), che non sono configurabili. I pin rimanenti sono tutti pin 3.3V per uso generico, il che significa che le uscite sono impostate su 3.3V e gli ingressi tollerano 3.3V. Tensioni maggiori di quelle indicate potrebbero portare alla rottura del dispositivo.
USCITE
Un pin GPIO designato come pin di uscita può essere impostato su alto (3.3V) o basso (0V).
INGRESSI
Un pin GPIO designato come pin di ingresso può leggere un valore come alto (3.3V) o basso (0V). Ciò è facilitato dall’uso di resistenze interne di pull-up o pull-down. I pin GPIO2 e GPIO3 hanno resistori pull-up fissi, ma per altri pin questo può essere configurato via software.
FUNZIONALITA AGGIUNTIVE
Oltre a semplici dispositivi di input e output, i pin GPIO possono essere utilizzati con una varietà di funzioni alternative, alcune sono disponibili su tutti i pin, altre su pin specifici.
- PWM (modulazione di larghezza di impulso)
- Software PWM disponibile su tutti i pin
- Hardware PWM disponibile su GPIO12, GPIO13, GPIO18, GPIO19
- SPI
- SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
- SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
- I2C
- Dati: (GPIO2); Orologio (GPIO3)
- Dati EEPROM: (GPIO0); Orologio EEPROM (GPIO1)
- Seriale
- TX (GPIO14); RX (GPIO15)
COME SONO NUMERATI I PIN
È possibile accedere a un pratico riferimento sul Raspberry Pi aprendo un terminale di comando ed eseguendo il comando pinout
. Questo strumento è fornito dalla libreria GPIO ZERO in Python, che ègià installata sull’immagine desktop del sistema operativo Raspbian, ma non su Raspberry Pi OS Lite.
AUTORIZZAZIONI
Per poter utilizzare le porte GPIO il tuo utente deve essere un membro del gpio
. L’utente pi
è un membro per impostazione predefinita, gli altri utenti devono essere aggiunti manualmente.
sudo usermod -a -G gpio <nome-utente>
PRIMA DI INIZIARE A PROGRAMMARE
Per scrivere un programma andiamo ad utilizzare l’editor di testo Vim. Eseguire:
sudo apt-get install vim
successivamente andiamo a creare un file con il comando:
vim programma.py
una volta scritto il codice, per salvare il programma basta digitare esc+w
e premere Invio
. Per uscire dall’editor premere esc+q
e premere invio
. Infine per eseguire il codice appena scritto, digitare nel terminale:
python programma.py
COME CONTROLLARE UN LED
Colleghiamo un led al pin GPIO17 e eseguiamo il codice seguente
1 2 3 4 5 6 7 8 9 10 | from gpiozero import LED from time import sleep led = LED(17) while True: led.on() sleep(1) led.off() sleep(1) |
COME CONTROLLARE UN PULSANTE
Colleghiamo un pulsante al pin GPIO2 ed eseguiamo il codice seguente
1 2 3 4 5 6 7 8 9 10 11 | from gpiozero import Button from time import sleep button = Button(2) while True: if button.is_pressed: print("premuto") else: print("rilasciato") sleep(1) |
Il modulo Button del pulsante include le proprietà is_pressed
e is_held
; le callback when_pressed, when_released
e when_held
; e i metodi wait_for_press()
e wait_for_release()
.
PULSANTE E LED
Rimaniamo alla configurazione dei pin dettata precedentemente ed eseguiamo il seguente codice:
1 2 3 4 5 6 7 | from gpiozero import LED, Button led = LED(17) button = Button(2) button.when_pressed = led.on button.when_released = led.off
|
Commenti
Posta un commento