[LUG.ro] Comunicacion puerto Serie Telescopio ¿HOW TO?
Nicolas D R
nicolasdr en live.com
Dom Nov 11 14:01:51 ART 2012
Hola. Yo estuve haciendo un curso de Electrónica y Linux donde conectábamos una plaqueta con un micro PIC y puerto RS232 con la PC mediante un conversor USB/RS232. La programación de lectura/escritura se hizo con Python, de un modo simple: Python -> Import Serial, creamos un objeto de conexión serial y utilizábamos Write y Read.
Te paso un pedazo del código:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
#! /usr/bin/python
# -*- coding: iso-8859-15 -*-n
#----------------------------------------------------------------------------
# leds_serial.py
# Enciende o apaga los leds con parámetros -c o -t
#
#
# Práctica Python:
# Implementación de pasaje de parámetros. Uso de funciones. Módulo logging.
# Configuración de un log. Determinación del sistema operativo.
# Manejo del puerto serie para actuar sobre los leds.
#
# (C)2012 Ing. Marcelo Carlos Castello
#
#
# 23/10/12 LICENCIA GPL
#----------------------------------------------------------------------------
#-- Abre el puerto serie --
try:
s=serial.Serial('/dev/ttyUSB0',9600,timeout=.1)
s.flushInput()
s.flushOutput()
s.read(100) #artilugio para limpiar el puerto
#print 'abro serial'
except serial.SerialException:
#-- Error al abrir el puerto serie
print 'Error al abrir el puerto serie'
logger.info('No se puede abrir puerto serie')
sys.exit(1)
#----------
#-- MAIN --
#----------
delay=.3
com,tc=Analizar_argumentos()
if com=='':
print 'Error en argumentos'
s.close()
sys.exit(1)
s.flushInput()
str_out= com
s.write(str_out)
time.sleep(delay)
rta=s.read(50)
if rta=='':
logger.info('El actuador dio respuesta vacia')
print 'El actuador dio respuesta vacia'
else:
logger.info('El actuador respondio: %s',rta)
print 'El actuador respondio:',rta
if (tc!=''):
time.sleep(int(tc))
s.write(str_out)
time.sleep(.1)
rta=s.read(50)
print 'Actuación por tiempo. El actuador respondio:',rta
logger.info('Actuación por tiempo. El actuador respondio: %s',rta)
s.close()
>>>>>>>>>>>>>>>>>>>>>>>>>>>
Saludos.
Nicolás Di Ruscio.
nicolasdiruscio.com.ar
climalocal.com.ar
coronelbogado.com.ar
oesutnrosario.com.ar
pagojusto.com
Skype: nicolasdiruscio
Tel. Cel.: (0341) 156 187 057
> Date: Sun, 11 Nov 2012 13:34:27 -0300
> From: guilleip en yahoo.com.ar
> To: lugro en lugro.org.ar
> Subject: [LUG.ro] Comunicacion puerto Serie Telescopio ¿HOW TO?
>
> Estimados, necesito comunicarme con un dispositivo (telescopio) por un
> puerto serie (un conversor USB/RS232 que se conecta al telescopio).
>
> La idea es que el telescopio tiene un PLC, le mando texto y él me
> devuelve texto.
>
> ¿Cuál sería la forma mas práctica de hacerlo? (que no sea usando
> programas de astronomía)
>
> Pensé en Telnet, pero da la impresión de estar pensado para redes.
>
> También pensé en hacer directamente un "echo" al puerto, pero ¿Cómo
> direcciono la respuesta a la stdout?
>
> La verdad, me siento como un burro ¿me ayudan a desburrarme? Linux debe
> tener una opción nativa para ésto.
>
> Ya veo que la solución final será con un programita en c, pero antes de
> llegar a eso me gustaría experimentar un poco con los comandos y por eso
> necesito de vuestra ayuda.
>
> Gracias.
> _______________________________________________
> Lugro mailing list
> Lugro en lugro.org.ar
> http://lugro.org.ar/mailman/listinfo/lugro
Más información sobre la lista de distribución Lugro