Go Down

Topic: Problemas con comuicación serial. (Read 1 time) previous topic - next topic

yOPERO

A mi suena a reset cuando cuando abre el com port. Prueba poner un capacitor entre los pines de gnd y reset a ver que pasa.
Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

Anskar

#6
Nov 14, 2012, 04:38 pm Last Edit: Nov 14, 2012, 04:41 pm by Anskar Reason: 1
Soy un novato ;), pero lo que yo hago es llamar a serial.Serial al principio del programa, así cuando quiero recoger los datos ya ha esperado el segundo de marras... o sea:


import serial

class LaClasePrincipal():
   serial = serial.Serial('localización de arduino', baudios)
   def __init__(self):
       parte inicial el programa
       ....
   def datos_arduino(self):
       self.serial.read()
       proceso de datos arduino


Tampoco se si es lo correcto, pero noto que el parapadeo del arduino se efectua al principio i no cuando quiero recoger los datos.
En caso de no necesitarlo siempre se puede hacer de poner el serial.Serial en otra instancia que se llame en algun momento del programa. Lo que no se es como cerrarlo :D, que tampoco estaria mal saber.

Anskar

Encontré la forma de cerrar la comunicación con el puerto serie.

Tan fácil como:

serial = serial.Serial('/ruta/al/puerto/serie', baudios)
serial.close()

UndercoverNerd

Pero eso soluciona lo de que funcione con el serial de arduino abierto?
Es que a mí me pasa lo mismo.

Anskar

Por lo que puedo entender, el problema está en que, igual que en una llamada telefónica, hay que esperar que se "descuelgue" el aparato receptor para establecer la comunicación. En el caso de python-Arduino eso es la llamada

serial.Serial()

Se nota que Arduino parpadea hasta que se establece la comunicación y los envios de datos ya son instantaneos. O sea, siempre que se pida los datos de arduino con

serial.read()

el parpadeo no se efectua por que la comunicación ya está establecida. El problema, creo yo, (si alguien lo puede confirmar será de más ayuda que mis comentarios de newbe) está en hacer la llamada a comunicación

serial.Read()

cada vez que se quieren recuperar los datos de Arduino, entonces es cuando la comunicación tarda un rato en establecerse y se pierden los primeros datos. Por eso lo que propongo es establecer la comunicación serial antes de necesitar el envio de datos y tener siempre disponible la comunicación para no tener que esperar el bootloader, puesto que ya está establecido anteriormente.... no sé si me explico bien o igual me pierdo algo.

Go Up