Nelle lezioni precedenti, abbiamo visto come installare Raspbian sul nostro Raspberry Pi. Tale sistema operativo, oltre che gestire Raspberry e le principali periferiche, permette di programmare nella sua totalità la scheda. Tra le altre cose, infatti, esso consente di gestire la porta GPIO presente su uno dei due lati del Raspberry Pi. Ciò è possibile mediante diversi linguaggi di programmazione, tra cui Python, Java, C e C++.
Nelle prossime lezioni useremo il linguaggio Python per lo sviluppo dei progetti che tratteremo all'interno della guida.
Oltre ad essere uno dei linguaggi più usati (soprattutto di recente), Python ha dalla sua anche il vantaggio di possedere una fervida comunità di sviluppatori, che contribuisce a rilasciare numerose librerie, liberamente accessibili.
Tra queste, RPi.GPIO è quella che permette di interagire con la porta GPIO di Raspberry, ed è quindi lo strumento di programmazione principale.
In questa lezione, introdurremo dapprima i diversi ambienti di sviluppo, e continueremo facendo riferimento al linguaggio di programmazione
Python (di cui si è ampiamente parlato nella guida di HTML.it).
Il sistema operativo installato sulla nostra scheda ci permette di interagire con il mondo esterno, attraverso periferiche
che possono essere connesse alle porte del nostro mini computer, oppure con circuiti elettrici realizzati da noi attraverso l'uso di sensori e componenti elettronici che è possibile acquistare ovunque (anche a basso prezzo).
Programmare un dispositivo come Raspberry Pi risulta semplice anche a chi non ha mai avuto esperienze
di programmazione su personal computer o utilizzo di sistemi operativi provenienti dal mondo Linux.
La Raspberry Pi foundation, che ha come obiettivo quello di aiutare il maggior numero di persone
ad avvicinarsi al mondo della programmazione, ha dotato il sistema operativo Raspbian di numerosi ambienti di sviluppo
semplici, potenti ed intuitivi e che accompagnano l'utente durante questo percorso di formazione.
Tra questi, abbiamo BlueJ e Greenfoot per lo sviluppo utilizzando il linguaggio Java,
e Scratch, un ambiente di sviluppo grafico adatto per chi comincia a muovere i primi passi nel mondo della programmazione.
Sviluppo
Per eseguire lo script su Raspberry, generalmente è possibile seguire tre diverse modalità:
- esecuzione diretta sul Raspberry Pi: in questo caso, la scheda è connessa a schermo, mouse, tastiera e qualsiasi altra periferica necessaria. Avendo il pieno controllo, si può procedere con le stesse modalità di programmazione utilizzate su una installazione standard di un sistema operativo Debian-based
- connessione in Secure Shell (SSH): per utilizzare questa tipologia di connessione, è strettamente necessario avere connesso alla nostra rete domestica il Raspberry (attraverso il modulo Wireless, oppure tramite cavo Ethernet). Quindi, è necessario avviare il server SSH su Raspberry e connettersi utilizzando un qualunque client SSH (Putty su Windows, o una soluzione basata su riga di comando su sistemi Linux e macOS). Nel caso di Linux e MacOS, la connessione SSH può avvenire digitando una stringa come la seguente:
ssh utente@indirizzo-ip-raspberry
- connessione tramite VNC: anche per utilizzare la connessione VNC, è innanzitutto necessario connettere la scheda alla rete domestica. Nelle recenti versioni di Raspbian, è presente un server VNC integrato che è può essere abilitato in fase di installazione o attraverso raspi-config: per usare quest'ultimo tool, apriamo il terminale e digitiamo:
raspi-config
Quindi, seguiamo il percorso raspi-config > interfacing options > VNC --> YES. Il server VNC mette a disposizione la GUI di Raspbian attraverso un client VNC installato su un altro computer, da cui potremo
utilizzare Raspberry e quindi programmarlo.
In tutti e tre i casi, potremo avere accesso al terminale, e quindi alla shell. Accertiamoci quindi che Python sia correttamente installato, digitando python
e premendo Invio. Se tutto è configurato correttamente, l'interprete Python verrà caricato, mostrando la versione ed i caratteri >>>
.
Nel seguito non ci soffermeremo sull'uso di Python, ma supporremo che siano chiare le basi sintattiche del linguaggio.In ogni caso, per sviluppare script in Python è sufficiente un semplice editor di testo, ma esistono anche ambienti di sviluppo più sofisticati, come PyCharm o PyDev. Una volta realizzato il nostro script, potremo eseguirlo da terminale (o tramite uno degli ambienti appena citati).
Moduli di Python
Prima di proseguire, dovremo installare i moduli indispensabili per il funzionamento di uno script che possa gestire la GPIO. Per farlo, possiamo sfruttare pip, un tool per l’installazione dei pacchetti per Python.
L’installazione di questo è molto semplice, basta digitare da terminale:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Quando il tool è stato installato è possibile installare i pacchetti presenti nel repository attraverso il comando:
pip install nome-pacchetto
Installiamo quindi RPi.GPIO come segue:
sudo pip install RPi.GPIO
Questa libreria potrebbe essere già presente all’interno di Python per Raspberry, ma essendo di vitale importanza per il nostro lavoro, se non è già installata, il comando procederà con l’installazione.