Raspberry Pi 3 - GPIO

Raspberry GPIO

Ciao a tutti,
poco tempo fa avevo pubblicato una guida in due parti per la realizzazione di un sistema di video sorveglianza con Raspberry (parte 1 e parte 2).
Una delle idee che mi erano venute in mente per estendere le funzionalità del sistema era quella di aggiungere un sensore di movimento.
Per fare questo però, conviene prima introdurre l'interfaccia GPIO per questo mini-computer.

GPIO sta per General-purpose input/output e con questo acronimo ci si riferisce ad una serie di pin su un circuito integrato o su una board che permettono di comunicare in entrambi i sensi con dispositivi esterni o di attaccarci dei sensori e degli attuatori.

Premessa

Prima di tutto c'è da precisare una cosa: questo articolo riguarda Raspberry Pi 2 e 3. I modelli A/B di prima generazione hanno la metà dei pin. Da poco ho fatto l'upgrade al modello 3 e per questo vi parlerò dell'interfaccia che troviamo nel 2 e nel 3.
Come noterete anche dalla vostra board, i pin non sono etichettati. Questa cosa è molto scomoda perché vi obbliga a tenere sotto mano una stampa della mappa dei pin con i loro nomi. Un primo consiglio che mi sento di dare, è quello di comprare una placchettina da infilare sull'interfaccia sulla quale sono scritti i nomi dei pin. Questa vi faciliterà non poco la vita! Io l'ho comprata qua per meno di 2€.
In alternativa, se volete stare più comodi, potete pensare di acquistare una cosa tipo questa o questa. Tramite un cavo a nastro ed una basetta, si possono portare i pin direttamente sulla breadboard.placchetta gpio raspberry

I pin

Vediamo un po' più nel dettaglio cosa sono questi pin e a cosa servono.
Come prima cosa si nota che sia nel modello 2 che nel modello 3 di Raspberry Pi ci sono 40 uscite GPIO (2 file da 20). Qua di lato vediamo la mappa dei pin.

I colori rappresentano funzioni equivalenti. In verde i pin generici possono essere utilizzati per qualsiasi scopo mentre quelli in azzurro, giallo e fucsia sono dedicati. Nello specifico:

  • Ground (GND) sono i pin numero 6, 9, 14, 20, 25, 30, 34, 39
  • 4 pin di alimentazione
    • 3.3V al numero 1 e 17
    • 5V al numero 2 e 4
  • 2 pin UART (Universal Asynchronous Receiver/Transmitter) sono l'interfaccia seriale
    • TXD0 pin num 8 per la trasmissione
    • RXD0 pin num 10 per la ricezione

    Possono essere utilizzati per comunicare con un Arduino o una Propeller board. La velocità di trasmissione di default è di 115200 bit al secondo. Per modificarla basta cambiare il valore nel file /boot/cmdline.txt.

  • 2 pin I2C (Inter Integrated Circuit) servono per la comunicazione sincrona con architettura master-slave tra più circuiti integrati. La comunicazione avviene collegando in cascata i dispositivi slave ed in parallelo con i master. Sono i pin num 3 e 5.
  • 17 pin per il controllo ingresso/uscita con ddp a 3.3V. Per sicurezza è sempre buona norma usare delle resistenze a protezione della scheda per evitare danni

Per ulteriori dettagli consiglio di consultare pinout.xyz

Hello GPIO

Vediamo ora un piccolo esempino che ci aiuterà a capire le basi per controllare qualche pin.
Questo qua sotto è il circuito che andremo ad attaccare al nostro Raspberry

Abbiamo quindi bisogno di due led, due resistenze da 330Ω e un pulsante.
Il cavo blu andrà collegato al pin numero 11 che è il GPIO17, il cavo rosso al numero 15 che è il GPIO22 e il cavo arancione al numero 36 che è il GPIO16.
Il circuito farà una cosa molto semplice: di default sarà acceso il led di sinistra ma, tendendo premuto il pulsante, spegniamo quello di sinistra e accendiamo quello di destra. Quindi dovremo mantenere alto il GPIO17 in uscita e quando leggeremo sul GPIO16 "premuto", abbassiamo GPIO17 e alziamo GPIO22.. easy!

Per programmare useremo python perché tutto è pronto out-of-the-box nel senso che le librerie che ci permettono di mandare e ricevere segnali tramite interfaccia GPIO, sono già installate.
Se avete già familiarità con Arduino, tutto vi saprà di già visto 🙂

Come vedete anche voi è molto intuitivo. Per esercizio provate a modificare il codice in modo che una volta cliccato il pulsante si lascia acceso il led che prima era spento e spegnere quello che prima era acceso.

Per ora è tutto. Se avete delle domande, non esitate a lasciarci un commento.
A breve nuovi articoli a riguardo, a presto!

Ingegnere Informatico e Ricercatore se compiace al Prodigioso Spaghetto Volante. Sono uno spartan racer, massimo esperto di serie tv, fotografo amatoriale e appena ne ho l’occasione preparo la valigia e parto

Raspberry Pi 3 - GPIO ultima modifica: 2017-02-28T12:18:43+00:00 da Andrea Salvi


Advertisment ad adsense adlogger