serial raspberry puerto libreria leer graficar example descargar datos con comunicacion adquisicion python linux osx serial-port

raspberry - python y arduino pdf



Hablando programáticamente con un puerto serie en OS X o Linux (2)

/dev/cu.xxxxx es el dispositivo de "llamada", es lo que usa cuando establece una conexión con el dispositivo serie y comienza a hablar con él. /dev/tty.xxxxx es el dispositivo "dialin", que se usa para monitorear un puerto para llamadas entrantes, por ejemplo, para un oyente de fax.

Tengo un letrero Prolite LED que me gusta configurar para mostrar las consultas de búsqueda de desplazamiento de los registros de Apache y otras estadísticas divertidas. El problema es que mi G5 no tiene un puerto serie, así que tengo que usar un dongle de usb a serial. Se muestra como /dev/cu.usbserial y /dev/tty.usbserial.

Cuando hago esto, todo parece ser hunky-dory:

stty -f /dev/cu.usbserial speed 9600 baud; lflags: -icanon -isig -iexten -echo iflags: -icrnl -ixon -ixany -imaxbel -brkint oflags: -opost -onlcr -oxtabs cflags: cs8 -parenb

Todo también funciona cuando uso la herramienta de puerto serie para hablar con él.

Si ejecuto este fragmento de código con la herramienta de puerto en serie mencionada anteriormente, también funciona todo. Pero tan pronto como desconecto la herramienta, la conexión se pierde.

#!/usr/bin/python import serial ser = serial.Serial(''/dev/cu.usbserial'', 9600, timeout=10) ser.write("<ID01><PA> /r/n") read_chars = ser.read(20) print read_chars ser.close()

Entonces la pregunta es, ¿qué magicks debo hacer para comenzar a hablar con el puerto serie sin la herramienta de puerto serie? ¿Es eso un problema de permisos? Además, ¿cuál es la diferencia entre /dev/cu.usbserial y /dev/tty.usbserial?

No, no hay números de serie. El problema es que el problema persiste incluso con sudo-ejecutar el script de python, y lo único que lo hace funcionar es abrir la conexión en la herramienta de GUI que mencioné.


¿Has intentado ver el tráfico entre la GUI y el puerto serie para ver si hay algún tipo de comando especial que se envíe? También es curioso, Python está enviando ASCII y no UTF-8 u otra cosa, ¿verdad? La razón por la que pregunto es porque noté los cambios de cotizaciones para las cadenas y en algunos idiomas que realmente es la diferencia entre ASCII y UTF-8.