[pyar] pyserial, twisted y +

Manuel Kaufmann humitos en gmail.com
Dom Jul 6 01:08:57 ART 2014


Hola lista,

Ayer estuve jugando un rato con una placa electrónica (que hizo un
amigo) conectada al USB y que manda los datos usando el puerto serie
en RS232.

Básicamente la información que manda es:

10 20 30 40 50 60 70 80 90 100

y vuelve a empezar (son las decenas desde 10 a 100 y separadas por un  espacio).

Lo primero que hice fue conectarme con "cutecom" y ver que
efectivamente estaba mandando lo que él me decía que tenía que mandar.
Después, me puse a jugar con pyserial y llegué a algo que funciona:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
while True:
    data = ser.read(40)
    print data

Después, lo que quise hacer es graficar esos puntos que me estaban
llegando (próximamente la información va a ser un poco más valiosa que
las simples decenas) y empecé a probar "matplotlib" para eso.

Lo que hice fue crear un Thread que sea el productor (quien se conecta
al puerto serie y guarda los datos en un buffer (Queue.Queue()) y en
el main del archivo los consumía mediante un while True y usando
Queue.Queue.get() . Esto me trajo algunos problemas ya que, por alguna
razón, a veces se me quedaba bloqueado.

Me cansé de pelear con eso y me puse a leer un poco más: llegué a
Twisted y SerialPort:

https://twistedmatrix.com/documents/13.1.0/api/twisted.internet.serialport.SerialPort.html

Ahora bien, usé Twisted una sola vez y muy por arriba y ahora no estoy
seguro que me pueda servir para hacer lo que quiero: "captar los datos
del puerto serie -sin perder ninguno, sino que guardando en un buffer-
y luego graficarlos en 2 dimensiones"

¿Por dónde me conviene seguir investigando? ¿Es Twisted útil para eso?

Muchas gracias!

-- 
Kaufmann Manuel
-- http://elblogdehumitos.com.ar


More information about the pyar mailing list