Raspberry Pi era stato progettato principalmente per scopi educativi, poiché consentiva ai giovani di fare i primi passi nella programmazione con un computer Linux economico. Tuttavia, con l'aumentare quotidiano della potenza dei prodotti elettronici e con l'aggiunta del Bluetooth 4.1 e del WiFi al Raspberry Pi 3, il dispositivo è ora in grado di soddisfare esigenze di tipo professionale.
Un PC standard non consente di accedere ai pin del processore; non è quindi possibile, ad esempio, collegare un nuovo sensore che comunichi attraverso un bus I2C con un PC. Ciononostante, Raspberry Pi offre l'accesso al GPIO. Questo tipo di funzione è normalmente riservata ai microcontroller, ma richiede delle conoscenze relative alla programmazione embedded che possono essere noiose per chi non è esperto. Il Raspberry Pi fornisce la possibilità di programmare il GPIO grazie a poche righe di codice in Python. Python è uno dei linguaggi più semplici da imparare ed è usato da una comunità molto ampia che non è composta solo da ingegneri informatici. Raspberry Pi si è creato la sua nicchia di mercato tra i PC standard e i microcontroller. Diamo un'occhiata alla procedura da seguire per attivare un GPIO su un Raspberry.
Il sistema operativo predefinito di Raspberry Pi è Raspbian, che ha già caricata la libreria RPi.GPIO di Phyton. Attualmente utilizza la versione 0.6.2, che può essere scaricata su pypi.python.org.
Su siti Web open source sono disponibili esempi su come usare questa libreria.
Poiché si tratta di un programma Python, è necessario importare le librerie. Sono richieste due librerie: la libreria RPI.GPIO per azionare i pin, e la libreria temporale, che consente agli utenti di creare temporizzazioni tra ogni transizione del pin.
Infine, è necessario dichiarare il tipo di sistema di numerazione. L'opzione BOARD utilizza i pin esattamente nel modo in cui sono disposti sul Pi. Il connettore e la numerazione non cambiano tra le versioni. L'opzione BCM sfrutta la numerazione Broadcom SoC, che varia a seconda delle versioni dei pin del Raspberry. Nella tabella riportata di seguito vengono illustrate le differenze tra i due sistemi di numerazione.
Nel nostro programma, il numero di scheda viene usato e selezionato attraverso la funzione di comando GPIO.setmode.
Quindi, il pin 12 viene configurato come l'uscita, e sarà quello che andremo ad azionare. In un ciclo infinito, il pin è portato ad alta tensione (3V) per un secondo, quindi messo a terra (0V) per un secondo.
Il fattore di forma del Raspberry Pi consente di accedere facilmente ai GPIO, e uno scope è collegato a un pin messo a terra (pin 25) e al pin 12.
Come confermato dallo screen shot dello scope, il pin 12 si attiva tra 0 e 3 V a una frequenza di 0,5 Hz, come programmato nello script Python.
Lo script Python non può essere utilizzato nei sistemi Real Time poiché il sistema operativo Linux non garantisce la temporizzazione esatta per l'azionamento del pin. Altre priorità possono ritardare l'azionamento di un GPIO, che non rappresenta una priorità elevata. Tuttavia, per comunicare con il mondo esterno, è un modo rapido, efficiente e semplice che i PC tradizionali non offrono.