Salta la barra di navigazione [1] - Vai alla barra di navigazione [3] - Scrivimi una mail [4]

wiringPi

Raspberry Pi - Note di hardware - Sommario - Novità - Tutorial - Progetti - Risorse - Non solo elettronica

wiringPi è una libreria che ha lo scopo di semplificare l'accesso alle periferiche collegate al connettore GPIO. Il sito ufficiale è http://wiringpi.com

Installazione di wiringPi

wiringPi è disponibile come pacchetto standard in Raspbian (nota 1):

pi@raspberrypi:~ $ sudo aptitude install wiringpi

pi@raspberrypi:~ $ gpio -v
gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
Type: Pi 2, Revision: 01, Memory: 1024MB, Maker: Sony
* Device tree is enabled.
*--> Raspberry Pi 2 Model B Rev 1.1
* This Raspberry Pi supports user-level GPIO access.

wiringPi ha due modalità di funzionamento:

Se siete interessati ad una eventuale versione più aggiornata di questa libreria, potete scaricarla direttamente da http://wiringpi.com/download-and-install/

gpio

Questo programma viene definito il "coltellino svizzero" che permette di accedere direttamente da shell alle funzioni di wiringPi.

Purtroppo questo programma deve essere eseguito con i diritti di root. Nell'installazione standard la cosa viene mascherata dal fatto che l'eseguibile è "SUIDdato", cioè con il flag setuid settato e quindi eseguito con i diritti di root anche se lanciato da un utente normale:

pi@raspberrypi:~/wiringpi $ which gpio
/usr/bin/gpio
pi@raspberrypi:~/wiringpi $ ls -l /usr/bin/gpio
-rw
sr-xr-x 1 root root 31436 Feb 29 07:32 /usr/bin/gpio

Per conoscerne il funzionamento (non esiste il man):

pi@raspberrypi:~ $ gpio

Un esempio d'uso (gpio -v) lo abbiamo già visto, per mostrare la versione installata.

Una opzione particolarmente utile permette di visualizzare i nomi dei 40 (o 26) pin presenti sul connettore GPIO (nota 3):

pi@raspberrypi:~ $ gpio readall

gpio readall

Per esempio il pin fisico 3 è indicato a seconda del contesto gpiocome:

Probabilmente questo in nome della chiarezza e della semplificazione...

Esempio

Proviamo ad accendere un LED collegato al pin GPIO.3 (pin fisico: 15; pin Broadcom, indicato in figura: GPIO22):

Led connesso a massa

Ovviamente per spegnere:
pi@raspberrypi:~ $ gpio write 3 0

Esempio

Proviamo a leggere un interruttore. Lo schema è uno dei seguenti, funzionalmente identici (nota 4). Si noti la presenza di una resistenza di pull-up (valore molto indicativo: 10 KΩ) necessaria al funzionamento (nota 5).

Analogamente al'esempio precedente il pin GPIO21 è identificato da wiringPi come GPIO.29 e corrisponde al pin fisico 40,

Leggere un interruttore

Esercizi

  1. Scrivere uno script che fa lampeggiare un LED usando gpio
  2. Scrivere uno script che accende tre LED rosso-giallo-verde come un semaforo
  3. Scrivere uno script che, sfruttando i due circuiti mostrati in questa pagina, accende il LED se l'interruttore è chiuso e lo spegne se aperto (uno smart wire)

Note

  1. Per aggiornare il sistema o installare software: Installare Raspbian
  2. In sistemi non aggiornati è invece necessario settare la variabile WIRINGPI_GPIOMEM:
    pi@raspberrypi:~ $ export WIRINGPI_GPIOMEM=1
  3. L'output reale non è colorato
  4. La resistenza da 100 Ω serve solo come protezione per eventuali collegamenti errati
  5. All'interno del chip Broadcom è presente una resistenza di pull-up che sostituisce quella esterna, opzione particolarmente comoda e semplice. Può essere attivate con:
    pi@raspberrypi:~ $ gpio mode 29 up

Data di creazione di questa pagina: marzo 2017
Ultima modifica: 30 marzo 2018


Raspberry Pi - Note di hardware

Vedi anche: Il taccuino tecnico


Licenza "Creative Commons" - Attribuzione-Condividi allo stesso modo 3.0 Unported


EN - Pagina principale - Sommario - Accessibilità - Note legali e privacy policy - Posta elettronica

XHTML 1.0 Strict - CSS 3