GPIO: tutto sulle connessioni Raspberry Pi 4 e 3

Raspberry Pi4 GPIO

I Pin GPIO della scheda Raspberry Pi 4, 3, e anche i suoi predecessori, dotano la scheda SBC di funzionalità simili a quelle che può avere Arduino, poiché con esse si possono creare progetti elettronici molto interessanti controllati dal sistema operativo tramite codice in diversi linguaggi, come Python.

Ciò rende la scheda più di un semplice computer economico. Ti permetterà di connettere una moltitudine di elementi elettronici che puoi usare con Arduino, ma che può anche essere controllato dal Pi. In questa guida cercherò di darti quante più informazioni possibili su questi pin GPIO in modo che tu possa iniziare a trarne vantaggio ...

Cos'è GPIO?

GPIO

GPIO è l'acronimo di General Purpose Input / Output, ovvero General Purpose Input / Output. Diversi prodotti elettronici possono averlo, come i chip stessi o alcune schede PCB come questo Raspberry Pi. Come suggerisce il nome, sono pin che possono essere configurati per eseguire diverse funzioni, quindi sono di uso generale e non per un uso specifico.

Sarà l'utente in fase di esecuzione che può configurare questi pin GPIO in modo che facciano quello che vuole. Può essere fatto in diversi modi, ad esempio con determinati codici o script dalla console o con il programma Python, che è uno dei modi più semplici e preferiti a causa della quantità di opzioni che hai a disposizione.

In questo modo, il Raspberry Pi non ha solo una serie di porte e interfacce per collegare più dispositivi standard, ma aggiungi questi pin GPIO in modo da poter aggiungere altri dispositivi elettronici o progetti maker che hai creato tu stesso. Nello stesso modo in cui faresti con Arduino e i suoi pin I / O per il controllo.

Y non esclusivo di Arduino o Raspberry Pi, così come altre schede SBC e prodotti incorporati simili.

Caratteristiche GPIO

E tra le sue CARATTERISTICHE più eccezionale:

  • Possono essere configurato così come input come output. Hanno quella dualità come accade a quelli di Arduino.
  • Anche i pin GPIO può essere attivato e disattivato per codice. Cioè, possono essere impostati su 1 (livello di alta tensione) o 0 (livello di bassa tensione).
  • Certo che possono leggere dati binari, come gli uno e gli zeri, cioè il segnale di tensione o l'assenza di esso.
  • Valori di output di Leggendo e scrivendo.
  • I valori di input possono essere configurati in alcuni casi come Eventi in modo che generino qualche tipo di azione sulla scheda o sul sistema. Alcuni sistemi embedded li usano come IRQ. Un altro caso è configurare che quando uno o più pin sono attivi da determinati sensori, eseguono alcune azioni ...
  • Per quanto riguarda il voltaggio e l'intensità, devi conoscere bene le capacità massime accettabili per la scheda, in questo caso il Raspberry Pi 4 o 3. Non dovresti passarle per evitare di danneggiarla.

A proposito, quando viene raggruppato un gruppo di pin GPIO, come nel caso del Raspberry Pi, il gruppo è noto come Porta GPIO.

I pin GPIO del Raspberry Pi

Raspberry Pi GPIO

Schema valido per la versione 4, 3, Zero

Il nuovo Schede Raspberry Pi 4 e versione 3 Sono dotati di un gran numero di pin GPIO. Non tutte le versioni offrono la stessa quantità, né sono numerate allo stesso modo, quindi devi stare attento con questo per sapere bene come dovresti effettuare il collegamento in base al modello e alla revisione che hai.

Ma ciò che è più generico sono i tipi di GPIO che puoi trovare nel port delle schede Raspberry Pi. E questa sarà la prima cosa che vorrei chiarire, poiché è così che lo saprai i tipi di pin su cui contare per i tuoi progetti:

  • AlimentazioneQuesti pin vengono utilizzati per collegare le linee elettriche o il cablaggio per i tuoi progetti elettronici. Corrispondono a pin simili a quelli sulla scheda Arduino e che forniscono tensioni di 5v e 3v3 (3.3v limitato a 50mA di carico). Inoltre, troverai anche quelli di terra (GND o Ground). Se non utilizzi fonti di alimentazione esterne come batterie o adattatori, questi pin possono essere di grande aiuto per alimentare il tuo circuito.
  • DNC (non collegare): sono pin che sono in alcune versioni e che non hanno alcuna funzione, ma che nelle nuove schede hanno un altro scopo. Li troverai solo nei modelli più primitivi del Pi. Nei nuovi 3 e 4 saranno generalmente contrassegnati come GND, potendosi integrare nel gruppo precedente.
  • Pin configurabili: sono i normali GPIO, e possono essere programmati da codici come spiegherò più avanti per fare quello che ti serve.
  • Perni speciali: si tratta di alcune connessioni che sono destinate a connessioni o interfacce speciali come connessioni seriali UART, TXD e RXD, ecc., come accade con Arduino. Ne troverai anche alcuni come SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, ecc. Si distinguono tra loro:
    • %PWM, che può regolare l'ampiezza dell'impulso come abbiamo visto in un precedente articolo. Sul Raspberry Pi 3 e 4 sono GPIO12, GPIO13, GPIO18 e GPIO19.
    • SPI è un'altra interfaccia di comunicazione che ho anche discusso in un altro articolo. Nel caso delle nuove schede a 40 pin, sono i pin (con diversi canali di comunicazione come puoi vedere):
      • 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 è un altro collegamento che ho spiegato anche in questo blog. Questo bus è costituito dal segnale dati (GPIO2) e dall'orologio (GPIO3). Oltre a EEPROM Data (GPIO0) e EEPROM Clock (GPIO1).
    • Seriale, un'altra comunicazione molto pratica con pin TX (GPIO14) e RX (GPIO15) come quelli che puoi trovare sulla scheda Arduino UNO.

Ricorda che i GPIO sono l'interfaccia tra il Raspberry Pi e il mondo esterno, ma lo hanno i suoi limiti, soprattutto elettrico. Qualcosa di cui devi tenere conto per non rovinare la scheda è ricordare che questi pin GPIO di solito sono senza buffer, cioè senza buffer. Ciò significa che non hanno protezione, quindi è necessario monitorare le grandezze di tensione e intensità applicate per non finire con una piastra inutile ...

Differenze GPIO tra le versioni

Vecchi pin GPIO Raspberry Pi

Come ho detto, non tutti i modelli sono gli stessi pinEcco alcuni diagrammi in modo da poter vedere le differenze tra i modelli e quindi essere in grado di concentrarsi sui Raspberry Pi 4 e 3, che sono i più nuovi e quello che probabilmente hai in tuo possesso. Differisce tra (tutti i gruppi condividono gli stessi pin):

  • Raspberry Pi 1 Model B Rev 1.0, con 26 pin leggermente diverso da Rev2.
  • Raspberry Pi 1 Modello A e B Rev 2.0, entrambi i modelli con 26 pin.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero e Zero W e anche 4 modelli, tutti con un'intestazione GPIO a 40 pin.

Cosa posso collegare ai GPIO?

Cappello Raspberry Pi

Non puoi solo collegare dispositivi elettronici come transistor, sensori di umidità / temperatura, termistori, motori passo-passo, LED, eccetera. Puoi anche collegare componenti o moduli creati appositamente per il Raspberry Pi e che estendono le capacità della scheda oltre a quanto incluso nella base.

Mi riferisco al famoso cappelli o cappelli e piatti che puoi trovare sul mercato. Ce ne sono molti tipi, da quelli usati per controllare motori con driver, ad altri da creare un cluster di computer, Con Pannello LED controllabile, da aggiungere Funzionalità TV DVB, Schermo a cristalli liquidi, ecc.

Questi cappelli o cappelli Sono montati sulla scheda Raspberry Pi, abbinando i GPIO necessari per il suo funzionamento. Pertanto, il suo assemblaggio è abbastanza semplice e veloce. Certo, assicurati della versione della piastra compatibile con ogni cappello, poiché la porta GPIO è diversa come hai visto ...

Lo dico nel caso tu abbia un piatto più vecchio, dal momento che i cappelli lo sono compatibile solo con i più recenti. Come i modelli Raspberry Pi Model A +, B +, 2, 3 e 4.

Introduzione all'uso di GPIO su Raspberry Pi

Output del comando Pinout

Fonte: Raspberry Pi

Per iniziare, su Raspbian, puoi aprire la console e digitare il comando piedinaturaCiò che ti restituirà è un'immagine nel terminale con i pin GPIO disponibili sulla tua scheda e a cosa servono ciascuno. Qualcosa di molto pratico per averlo sempre presente al momento del lavoro in modo da non confondersi.

Primo progetto: lampeggiare un LED con i GPIO

GPIO con LED su Raspberry Pi

Il modo più semplice per creare una sorta di "Hello world" con GPIO consiste nell'utilizzare un semplice LED collegato ai pin del Raspberry Pi in modo da poter vedere come funzionano. In questo caso l'ho collegato a GND e l'altro al pin 17, anche se potete scegliere un altro dei pin normali ...

Una volta connesso, puoi controllarli da Raspbian facendo uso del terminale. In Linux, vengono utilizzati file specifici come quelli nella directory / sys / class / gpio /. Ad esempio, per creare un file con la struttura necessaria per iniziare a lavorare:

echo 17 > /sys/class/gpio/export

Allora puoi configurare come ingresso (in) o come uscita (out) quel pin 17 scelto per il nostro esempio. Puoi farlo molto facilmente con:

echo out > /sys/class/gpio/gpio17/direction

In questo caso come uscita, visto che vogliamo inviare un impulso elettrico al LED per accenderlo, ma se fosse un sensore, ecc., Potresti usare in. Adesso per accendi (1) o spegni (0) il LED puoi usare:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Se vuoi passare a un altro progetto e eliminare la voce creato, puoi farlo in questo modo:

echo 17 > /sys/class/gpio/unexport

A proposito, puoi anche raccogliere tutti i comandi necessari per il tuo progetto, come tutti i precedenti, salvarli in un tipo di file bash script e poi eseguirli in un pacchetto contemporaneamente, invece di digitarli uno per uno. Questo è utile quando ripeti lo stesso esercizio molte volte, quindi non devi riscriverlo. Corri e vai. Per esempio:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Una volta terminato, salvi e quindi puoi dargli le autorizzazioni di esecuzione ed esecuzione appropriate il copione affinché il LED si accenda, attendere 1.3 secondi e spegnersi in questo modo in un ciclo ...

chmod +x led.sh
./led.sh

Avanzamento della programmazione

codice sorgente del linguaggio di programmazione

Ovviamente quanto sopra funziona per piccoli progetti elettronici con pochi componenti, ma se vuoi creare qualcosa di più avanzato, al posto dei comandi, quello che puoi usare sono linguaggi di programmazione per creare diversi script o codici sorgente che automatizzano l'operazione.

Possono essere usati strumenti diversi programmare, con linguaggi molto diversi. Le librerie che la comunità ha sviluppato ti rendono le cose molto più facili, come WiringPi, sysfs, pigpio, ecc. I programmi possono essere molto vari, da Python, che è l'opzione preferita da molti, a Ruby, Java, Perl, BASIC e persino C #.

Ufficialmente, il Raspberry Pi ti offre molte strutture per programmare i tuoi GPIO, come ad esempio:

  • Scratch, per chi non sa programmare e vuole utilizzare i blocchi puzzle di questo progetto con cui si può programmare anche Arduino, ecc. La programmazione con blocchi grafici è abbastanza intuitiva e molto pratica per il campo dell'istruzione.
  • Python: Questo semplice linguaggio di programmazione interpretato ti consente di creare codici semplici e potenti, con una moltitudine di librerie a tua disposizione per fare quasi tutto ciò che immagini.
  • C / C ++ / C #: sono linguaggi di programmazione più potenti per creare binari con cui interagire con i GPIO. Puoi farlo in diversi modi, utilizzando il modulo standard o l'interfaccia del kernel tramite la librerialibpiod, ma anche tramite una libreria di terze parti come pygium.
  • Elaborazione 3, simile ad Arduino.

Scegli in modo flessibile quello che ti piace di più o che ritieni sia semplice.


4 commenti, lascia il tuo

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   nemico suddetto

    Articolo molto carino sull'inizio di Rasperry

    1.    Isaac suddetto

      Grazie mille.

      1.    Ruth Medina suddetto

        sei tu l'autore?

        1.    Isaac suddetto