Nanpy – Usa il tuo Arduino con Python
Salve a tutti, quest’oggi ho il piacere di ospitare Andrea Stagi, un programmatore italiano che in passato ho avuto già il piacere di intervistare su questo blog (qui potete leggere l’intervista). In questo suo guest post Andrea ci illustrerà un suo nuovo progetto ovvero Nampy, che vi consentirà di usare Arduino con Python. Non vi trattengo oltre, lascio dunque la parola ad Andrea Stagi. Buona lettura 🙂
Ciao a tutti,
sono
stato chiamato nuovamente alle armi da Marco per illustrare Nanpy, un
progetto sul quale ho cominciato a lavorare quest’estate e che si sta
avvicinando verso una versione stabile: Nanpy. Grazie a questa libreria
open source (https://github.com/nanpy/nanpy)
è possibile scrivere script Python che interagiscono con Arduino, e
quindi è possibile utilizzare un Lcd, accendere un led, leggere la
temperatura da un sensore ecc.. il tutto collegando Arduino al PC (o a
una RaspberryPi) e utilizzando Python e Nanpy 🙂
Perché ho fatto tutto questo?
Per
semplificare a me e agli altri la vita. Python è un linguaggio semplice
da imparare e utilizzare, e incrementa di molto la produttività:
scrivere prototipi e debuggarli, testare componenti e fare piccoli
esempi diventa semplice e veloce, inoltre Nanpy è uno strumento che
facilita il lavoro nel caso si abbia la necessità di utilizzare Arduino
con Raspberry, com’è successo a me che dovevo riesumare una mia vecchia
macchinina radiocomandata https://www.youtube.com/watch?v=NI4PDfVMdgM
Come Funziona?
Per
utilizzare Nanpy dovete innanzitutto avere a disposizione un Arduino e
un PC o RaspberryPi con installato Python 2 o 3. Scaricate poi l’
archivio da http://pypi.python.org/pypi/nanpy
. Nanpy si compone di due parti: la parte firmware, che dovete
compilare e uploadare su Arduino (e che dovete flashare solo una volta),
quindi collegate il vostro Arduino via USB e andate di terminale
cd firmware
export BOARD=uno
make
make upload
Adesso è il turno della libreria Python che starà sul vostro PC o Raspberry
python setup.py install
bene, siete pronti 🙂 I vostri script Python grazie a Nanpy comunicheranno con Arduino via USB.
Un esempio
Partiamo
da un semplice esempio, il classico blink, ovvero fate lampeggiare un
Led, che poniamo sul pin 13. Per prima cosa importate gli oggetti che vi
servono: potete importare Arduino, che contiene le funzioni di base
come map, delay, digitalWrite, digitalRead ecc.. ma potete importare
anche i moduli Lcd, Tone, DallasTemperature, OneWire ecc… a seconda
delle necessità. In questo caso abbiamo bisogno solo di Arduino quindi
from nanpy import Arduino
Bene, adesso impostiamo il pin 13 come pin in uscita
Arduino.pinMode(13, Arduino.OUTPUT)
Adesso
possiamo scrivere sul piedino 13 un valore alto (Arduino.HIGH) oppure
un valore basso (Arduino.LOW). Accendiamo il nostro led:
Arduino.digitalWrite(13, Arduino.HIGH)
Per creare il blinking comunque avrete bisogno di dichiarare un ciclo che accenda e spenga il vostro led, quindi:
for i in range(10000):
Arduino.digitalWrite(13, (i + 1) % 2)
Arduino.delay(10)
dando
un piccolo delay in fondo al ciclo 🙂 Ci sono altri esempi nel codice,
guardate nella cartella examples. Inoltre esiste un repository che
contiene dei mini progetti fatti con Nanpy, https://github.com/nanpy/eggsamples .
Se volete approfondire la questione consiglio l’ultimo numero di MagPi dove parlo di Nanpy: http://www.themagpi.com/ .
Happy coding 🙂
=.4S.=
sono
stato chiamato nuovamente alle armi da Marco per illustrare Nanpy, un
progetto sul quale ho cominciato a lavorare quest’estate e che si sta
avvicinando verso una versione stabile: Nanpy. Grazie a questa libreria
open source (https://github.com/nanpy/nanpy)
è possibile scrivere script Python che interagiscono con Arduino, e
quindi è possibile utilizzare un Lcd, accendere un led, leggere la
temperatura da un sensore ecc.. il tutto collegando Arduino al PC (o a
una RaspberryPi) e utilizzando Python e Nanpy 🙂
Perché ho fatto tutto questo?
Per
semplificare a me e agli altri la vita. Python è un linguaggio semplice
da imparare e utilizzare, e incrementa di molto la produttività:
scrivere prototipi e debuggarli, testare componenti e fare piccoli
esempi diventa semplice e veloce, inoltre Nanpy è uno strumento che
facilita il lavoro nel caso si abbia la necessità di utilizzare Arduino
con Raspberry, com’è successo a me che dovevo riesumare una mia vecchia
macchinina radiocomandata https://www.youtube.com/watch?v=NI4PDfVMdgM
Come Funziona?
Per
utilizzare Nanpy dovete innanzitutto avere a disposizione un Arduino e
un PC o RaspberryPi con installato Python 2 o 3. Scaricate poi l’
archivio da http://pypi.python.org/pypi/nanpy
. Nanpy si compone di due parti: la parte firmware, che dovete
compilare e uploadare su Arduino (e che dovete flashare solo una volta),
quindi collegate il vostro Arduino via USB e andate di terminale
cd firmware
export BOARD=uno
make
make upload
Adesso è il turno della libreria Python che starà sul vostro PC o Raspberry
python setup.py install
bene, siete pronti 🙂 I vostri script Python grazie a Nanpy comunicheranno con Arduino via USB.
Un esempio
Partiamo
da un semplice esempio, il classico blink, ovvero fate lampeggiare un
Led, che poniamo sul pin 13. Per prima cosa importate gli oggetti che vi
servono: potete importare Arduino, che contiene le funzioni di base
come map, delay, digitalWrite, digitalRead ecc.. ma potete importare
anche i moduli Lcd, Tone, DallasTemperature, OneWire ecc… a seconda
delle necessità. In questo caso abbiamo bisogno solo di Arduino quindi
from nanpy import Arduino
Bene, adesso impostiamo il pin 13 come pin in uscita
Arduino.pinMode(13, Arduino.OUTPUT)
Adesso
possiamo scrivere sul piedino 13 un valore alto (Arduino.HIGH) oppure
un valore basso (Arduino.LOW). Accendiamo il nostro led:
Arduino.digitalWrite(13, Arduino.HIGH)
Per creare il blinking comunque avrete bisogno di dichiarare un ciclo che accenda e spenga il vostro led, quindi:
for i in range(10000):
Arduino.digitalWrite(13, (i + 1) % 2)
Arduino.delay(10)
dando
un piccolo delay in fondo al ciclo 🙂 Ci sono altri esempi nel codice,
guardate nella cartella examples. Inoltre esiste un repository che
contiene dei mini progetti fatti con Nanpy, https://github.com/nanpy/eggsamples .
Se volete approfondire la questione consiglio l’ultimo numero di MagPi dove parlo di Nanpy: http://www.themagpi.com/ .
Happy coding 🙂
=.4S.=