Hola, a ver si alguien puede ayudarme con esto,
Tengo conectado un arduino a una raspberry pi en la cual tengo instalado el software de Ubuntu Mate.
Mando la información por el puerto serie desde arduino, y esa información es recogida por la Raspberry Pi, a partir de un script desarrollado Python, hasta aqui todo bien.
El problema es que hasta que no arranco la IDE de arduino y abro la pantalla del monitor serie, la raspberry Pi no lee nada, he probado de apagar y encender el arduino y nada, desconectar el cable y volver a conectar, dar permisos del puerto serie y nada...
Una vez arrancado el monitor serie de la IDE de arduino, funciona perfecto, y aunque cierre la IDE sigue funcionando.
No se si el problema es de arduino o de la Raspberry PI
¿Aguien sabe si hay que habilitar algo en Ubuntu?
Gracias de antemano
El script Python inicia el puerto que tiene que leer?, porque si el IDE abre el puerto y lee lo que recibe del arduino, la conexion esta bien.
Pues creo que si, el fragmenteo de script es el siguiente
ser = serial.Serial('/dev/ttyACM0', baudrate=115200, timeout=1)
line = ser.readline()
que funciona siempre y cuando este arrancado el IDE de Arduino
he intentado abrir el puerto siguiendo la linea que me comentas añadiendo después
if(ser.isOpen() == False):
ser.open()
pero no he conseguido nada
He solucionado el problema añadiendo la inicialización del puerto en el constructor de la clase,
class datosSensor:
def read_sensor_data(self)
line = self.ser.readline()
def __init__(self)
self.ser = serial.Serial('/dev/ttyACM0', baudrate=115200, timeout=1)
if __name__=='__main__'
ts.datosSensor()
rospy.Timer(rospy.Duration(1.0/100.0), ts.read_sensor_data)
Lo del IDE de Arduino me ha despistado, aún no entiendo muy bien el porque funcionaba cuando se arrancaba el monitor serial de arduino
Porque el Monitor Serie le envía al Arduino un RESET via la linea simulada DTR Data Terminal Ready.
No has comprobado que siempre que abres el Monitor Serie, Arduino inicia desde 0?
Efectivamente, cada vez que abria el monitor serie se vovía se cargaba el programa y me mandaba los datos de inicialización.
Pero si que había probado reseteando el arduino vía boton Reset y aún así.