Un tour del GPIO Raspberry Pi

Il Lampone Pi possono essere molte cose. Fa parte del suo fascino. Puoi utilizzare il Pi come un normale PC, collegando i dispositivi periferici tramite le porte USB e HDMI della scheda. Se vuoi approfondire gli aspetti tecnici del Pi, rivolgi la tua attenzione al set di pin lungo il lato del circuito. Questi pin contengono la chiave per utilizzare Raspberry Pi in IoT, robotica e altri progetti. Le spille non sono così intimidatorie come potresti pensare, una volta che sono state scomposte e spiegate.

Raspberry Pi GPIO

Un'introduzione ai pin del Raspberry Pi

Il termine GPIO (General Purpose Input Output) non è esclusivo del Lampone Pi. I pin di input e output possono essere trovati sulla maggior parte dei microcontrollori come Arduino, Beaglebone e altri.

Il GPIO con Raspberry Pi è il lungo blocco di pin nell'angolo in alto a sinistra della scheda. I modelli precedenti avevano 26 pin e i modelli attuali hanno 40 pin.

È possibile collegare componenti e altri dispositivi hardware a questi pin e utilizzare il codice per controllare cosa fanno i componenti. È una parte importante del Raspberry Pi e un ottimo modo per conoscere l'elettronica.

Dopo alcuni progetti software, probabilmente ti ritroverai a sperimentare con questi pin, desideroso di mescolare il tuo codice con l'hardware per far accadere le cose nella vita reale.

Questo processo può intimidire se non conosci il Pi. Considerando che una mossa falsa può danneggiare il tuo Raspberry Pi, è comprensibile che sia un'area nervosa da esplorare per i principianti.

Questo articolo spiega cosa fa ogni tipo di pin GPIO e le sue limitazioni.

Il GPIO

Innanzitutto, diamo un'occhiata al GPIO nel suo insieme. I pin potrebbero sembrare uguali, ma hanno tutti funzioni diverse. L'immagine sotto mostra queste funzioni in diversi colori.

Diagramma di sequenza dei pin GPIO Raspberry Pi

Ogni pin è numerato da 1 a 40, a partire dall'angolo inferiore sinistro. Questi sono i numeri di pin fisici. Tuttavia, esistono anche convenzioni di numerazione ed etichettatura come BCM, che vengono utilizzate durante la scrittura del codice.

Potenza e terra

Evidenziati in rosso sono i pin di alimentazione etichettati 3 o 5 per 3,3 V o 5 V. Questi pin consentono di inviare alimentazione a un dispositivo senza la necessità di alcun codice. Non c'è nemmeno modo di disattivarli.

I pin di alimentazione e messa a terra GPIO Raspberry Pi

Ci sono due linee di alimentazione: 3,3 volt e 5 volt. Il binario da 3,3 V è limitato a un assorbimento di corrente di 50 mA. Al contrario, il binario 5V fornisce qualsiasi capacità di corrente residua dall'alimentatore dopo che il Pi ha preso ciò di cui ha bisogno.

Evidenziati in marrone sono i perni di massa (GND). Questi pin di massa sono una parte vitale di qualsiasi progetto di elettronica.

I pin GPIO 5V sono i numeri fisici 2 e 4. I pin GPIO da 3,3 V sono i numeri fisici 1 e 17. I pin GPIO di terra sono i numeri fisici 6, 9, 14, 20, 25, 30, 34 e 39.

Pin di ingresso/uscita

I pin verdi sono pin di input/output generici. Questi possono essere facilmente utilizzati come ingressi o uscite senza scontrarsi con altre funzioni come I2C, SPI o UART.

Questi pin possono inviare alimentazione a un LED, un cicalino o altri componenti oppure possono essere utilizzati come input per leggere sensori, interruttori o altri dispositivi di input.

Pin di ingresso e uscita GPIO Raspberry Pi

La potenza di uscita di questi pin è di 3,3 V. Ciascun pin non deve superare i 16 mA di corrente, sia in sink che in sourcing. L'intero set di pin GPIO non deve superare più di 50 mA alla volta. Questo può essere restrittivo, quindi potresti dover essere creativo in determinati progetti.

I pin GPIO generici sono i numeri fisici 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 e 40.

Pin I2C

I pin I2C sono in giallo. I2C è un protocollo di comunicazione che consente ai dispositivi di comunicare con il Raspberry Pi. Questi pin possono essere utilizzati anche come pin GPIO generici.

Pin Raspberry Pi I2C GPIO

Un buon esempio di utilizzo I2C è il popolare chip di espansione della porta MCP23017, che può darti più pin di input/output attraverso questo protocollo I2C.

I pin I2C GPIO sono i numeri di pin fisici 3 e 5.

Pin UART (seriale)

I pin UART sono in grigio. Questi pin sono un altro protocollo di comunicazione che offre connessioni seriali e possono essere utilizzati come ingressi/uscite GPIO generici.

Pin Raspberry Pi GPIO UART

Un uso per UART è abilitare una connessione seriale da un Pi a un laptop tramite USB. Ciò può essere ottenuto utilizzando schede aggiuntive o semplici cavi. Elimina la necessità di uno schermo o di una connessione Internet per accedere al tuo Pi.

I pin GPIO UART sono i numeri di pin fisici 8 e 10.

Perni SPI

I pin SPI sono in rosa. SPI è un bus di interfaccia che invia dati tra il Pi e altro hardware e periferiche. È comunemente usato per concatenare dispositivi come an GUIDATO matrice o display.

Pin GPIO SPI Raspberry Pi

Come altri, questi pin possono essere utilizzati anche come ingressi/uscite GPIO generici.

I pin SPI GPIO sono i numeri di pin fisici 19, 21, 23, 24 e 26.

Pin DNC

Gli ultimi sono due pin in blu che sono attualmente etichettati come DNC, che sta per Non connettere. Questo potrebbe cambiare in futuro se la Raspberry Pi Foundation altera le schede o il software.

Pin Raspberry Pi DNC GPIO

I pin DNC GPIO sono i numeri di pin fisici 27 e 28.

Convenzioni di numerazione GPIO

Quando si codifica con GPIO, è possibile importare la libreria GPIO in due modi: BCM o BOARD.

La prima opzione è GPIO BCM. Questa è la convenzione di numerazione Broadcom. È comunemente usato in progetti e componenti aggiuntivi hardware.

La seconda opzione è SCHEDA GPIO. Questo metodo utilizza invece i numeri di pin fisici, il che è utile quando si contano i pin. Scoprirai che è usato meno negli esempi di progetto.

Raspberry Pi Portsplus

La modalità GPIO viene impostata durante l'importazione della libreria GPIO:

importa RPi. GPIO come GPIO. 

Per importare come BCM:

GPIO.setmode (GPIO.BCM)

Per importare come TAVOLA:

GPIO.setmode (GPIO.BOARD)

Entrambi questi metodi fanno lo stesso lavoro. È una questione di preferenza di numerazione.

È possibile utilizzare schede di etichette GPIO come il RasPiO Portsplus (nella foto) per verificare a quali pin stai collegando i cavi. Un lato mostra la convenzione di numerazione BCM. L'altro mostra BOARD. Quindi, sei coperto per qualsiasi progetto trovi.