Pagine

mercoledì 24 marzo 2010

Arduino e seriale python

Premessa

Quando si effettua uno sketch con arduino che invia/riceve dati verso/dalla seriale è necessario un programma che recepisca o mi permetta di scrivere dati sulla porta seriale.
Per effettuare i test solitamente si utilizza il monitor dell'IDE ma se si vuole automatizzare qualche passaggio o se si vuole rendere indipendente lo sketch è necessario "captare" le informazioni che transitano sulla seriale ed eventualmente rispondere.
Molti programmi hanno una libreria che permette di dialogare con la seriale.
In questo articolo vi parlerò con pyserial la libreria per python che comunica con la seriale.

pyserial

Si presuppone che sulla vostra macchina sia installato python.
Personalmente mi trovo bene con la versione 2.5
La pagina principale del progetto è http://pyserial.sourceforge.net/
Potete scaricare la libreria da questa pagina: http://sourceforge.net/projects/pyserial/files/ e diversi esempi qui http://pyserial.sourceforge.net/shortintro.html

Pyserial e Arduino

A questo punto vi voglio presentare una piccola parte di uno programma che ho fatto ultimamente in python.
L'idea è quella di recepire delle stringhe inviate da Arduino e in base a ciò che c'è scritto agire in diversi modi con il sistema operativo.
A questo scopo, dopo aver importato la libreria:
import serial

dopo aver inizializzato la seriale con una velocità di 9600 baud:
s=serial.Serial(1)
Su windows sarebbe COM1 mentre su Linux la /dev/ttyUSB1
Si può passare ad un ciclo che legge dalla seriale:
line=s.readline()


A questo punto il programma completo anche se depurato delle parti necessarie a me per interagire con il sistema operativo risulta molto semplicemente come segue:
import serial
s=serial.Serial(1)

while(1):

line=s.readline()
# interazioni con la variabile s

Ne consegue che è molto semplice fa interagire il PC con Arduino e questo rende questa tecnologia ancora più affascinante ai miei occhi...
Che ne pensate?