Raspberry Pi Programmazione ultimo aggiornamento 13 ottobre 2012 |
|
Il linguaggio di programmazione Python
Per la scrittura del programma di
gestione della Demo-board personalmente ho scelto Il linguaggio di programmazione
Python che è di tipo ad alto livello, orientato agli oggetti, adatto, tra gli altri
usi, per sviluppare applicazioni distribuite, scripting, computazione numerica e
system testing.
Altri linguaggi cui Python è spesso paragonato sono Perl, Java, JavaScript,
Visual Basic.
Il linguaggio fu ideato da
Guido
Van Rossum all'inizio degli anni novanta. Il nome fu scelto per via della
passione dell'ideatore per i Monty Python.
Python è un linguaggio pseudocompilato: un interprete si occupa di analizzare il
codice sorgente (semplici file testuali con estensione .py) e, se
sintatticamente corretto, di eseguirlo. In Python, non esiste una fase di
compilazione separata (come avviene in C, per esempio) che generi un file
eseguibile partendo dal sorgente.
L'essere pseudointerpretato rende Python un linguaggio portabile.
Una volta scritto un sorgente, esso può essere interpretato ed eseguito sulla
gran parte delle piattaforme attualmente utilizzate, siano esse di casa Apple (Mac)
che PC (Microsoft Windows e GNU/Linux).
Semplicemente, basta la presenza della versione corretta dell'interprete.
Un’altra particolarità è che Python è free software: non solo il download
dell'interprete per la propria piattaforma, ma anche per l'uso di Python nelle
proprie applicazioni.
Queste caratteristiche hanno fatto di Python il protagonista di un enorme
diffusione in tutto il mondo. Questo perché garantisce lo sviluppo rapido (e
divertente) di applicazioni di qualsiasi complessità in tutti i contesti: dal
desktop al web, passando dallo sviluppo di videogiochi e dallo scripting.
Per quanto riguarda l’interprete questo è già installato all’interno del
sistema
Operativo Raspbian sarà sufficiente fare un doppio clic sull’icona
posta sul desktop denominata IDLE 3, in questo modo sarà caricato il programma
interprete che si presenta come un’editor dei testi che ci
permetterà di scrivere, salvare, caricare i programmi il cui file avrà come
estensione “py”
Installazione delle librerie RPi.GPIO per Python.
Per la gestione della Demo Board
è possibile utilizzare una specifica libreria Python chiamata RPi.GPIO che
consente di configurare in modo semplice i pin GPIO sia in lettura sia in
scrittura all'interno di uno script Python
Per utilizzarle è necessario installare il pacchetto poiché non è attualmente
incluso nell'immagine del SO.
Questo è disponibile presso
http://pypi.python.org/pypi/RPi.GPIO in questo
momento la versione più aggiornata è la 0.4.1a.
Se esiste, una versione più aggiornata sarà necessario apportare le modifiche
appropriate per il numero di versione nei comandi sotto riportati.
Per installarlo accertarsi che la scheda Raspberry sia connessa in internet
quindi lanciare una linea di comando (cioè LXTerminal) e digitare i seguenti
comandi:
Passo 1 - Scaricare la libreria
http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.4.1a.tar.gz wget
Fase 2 - Estrarre l'archivio
in una nuova cartella
tar zxf RPi.GPIO-0.4.1a.tar.gz
Fase 3 - Individuare la nuova directory
cd RPi.GPIO-0.4.1a
Fase 4 - Installare la libreria
sudo python setup.py install
Fase 5 - Rimuovere la directory e il suo contenuto
cd ..
sudo rm-rf RPi.GPIO-0.4.1a /
Fase 6 - Eliminare il file di archivio
rm-RPi.GPIO 0.4.1a.tar.gz
Si potrà ora utilizzare la libreria in Python.
Testiamo un programma di prova
Possiamo ora provare a scrivere
qualche programma e testarlo sul campo. Per fare questo potremo costruire
una scheda come quella visibile sotto, le cui istruzioni sono alla
pagina Interfaccia Demo-Board.
Il programma cui presentato farà lampeggiare tutti gli otto led connessi alle
porte, il suo funzionamento è visibile nel filmato
http://youtu.be/0n4MzWPjj9g
Il programma dovrà essere copiato utilizzando la Shell del programma Python, (programma)
Il funzionamento del programma è molto semplice.
Demo Board utilizzata per la prova del programma
La prima linea
#!/usr/bin/python
Riporta la posizione del programma Python
Le successive
import time
import RPi.GPIO as GPIO
servono ad importare le due librerie la prima time è una libreria standard usata
per la temporizzazione, mentre la RPi.GPIO va istallata secondo le indicazioni
del precedente paragrafo.
Segue l’impostazione di come chiameremo i pin, che può essere
GPIO.setmode(GPIO.BOARD)
oppure
GPIO.setmode(GPIO.BCM)
Vengono poi impostate le varie porte tutte come uscite, viene poi creato un
ciclo che pone ogni uscita a true accendendo il led, quindi dopo una pausa di un
secondo stabilita dall’istruzione
time.sleep(1)
Una volta scritto il programma e salvato per esempio come Test_scheda.py, si
potrà mandare in esecuzione mediate il comando RUN, oppure dalla riga di comando
sudo python Test_scheda.py
#!/usr/bin/python
import time
import RPi.GPIO as GPIO
# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)
# set up the GPIO channels
GPIO.setup(11, GPIO.OUT) # GPIO 0
GPIO.setup(12, GPIO.OUT) # GPIO 1
GPIO.setup(13, GPIO.OUT) # GPIO 2
GPIO.setup(15, GPIO.OUT) # GPIO 3
GPIO.setup(16, GPIO.OUT) # GPIO 4
GPIO.setup(18, GPIO.OUT) # GPIO 5
GPIO.setup(22, GPIO.OUT) # GPIO 6
GPIO.setup(7, GPIO.OUT) # GPIO 7
while 1:
GPIO.output(11, True) #GPI O a 1 Led acceso
GPIO.output(12, True) #GPI 1 a 1 Led acceso
GPIO.output(13, True) #GPI 2 a 1 Led acceso
GPIO.output(15, True) #GPI 3 a 1 Led acceso
GPIO.output(16, True) #GPI 4 a 1 Led acceso
GPIO.output(18, True) #GPI 5 a 1 Led acceso
GPIO.output(22, True) #GPI 6 a 1 Led acceso
GPIO.output(7, True) #GPI 7 a 1 Led acceso
time.sleep(1)
GPIO.output(11, False) #GPI O a 0 Led spento
GPIO.output(12, False) #GPI 1 a 0 Led spento
GPIO.output(13, False) #GPI 2 a 0 Led spento
GPIO.output(15, False) #GPI 3 a 0 Led spento
GPIO.output(16, False) #GPI 4 a 0 Led spento
GPIO.output(18, False) #GPI 5 a 0 Led spento
GPIO.output(22, False) #GPI 6 a 0 Led spento
GPIO.output(7, False) #GPI 7 a 0 Led spento
time.sleep(1)
Elenco revisioni | |
13/10/2012 | Emissione preliminare |