[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