raspberry pi - raspberry - Python SerialException: el dispositivo informa que está listo para leer pero no devolvió datos
leer datos de arduino con python (0)
Estoy usando un Arduino Nano, anteriormente UNO, para recopilar datos de los sensores y luego enviar los datos a través de una conexión USB a través de un concentrador impulsado a un Raspberry Pi modelo B con Jessie 4.1.19+ mar, 15 2016 y Python 2.7 . El código python usa pyserial readline para obtener los datos.
En general, funciona bien, pero ocasionalmente (por lo general un par de veces al día) falla con el mensaje anterior. Parecía que la única forma de solucionarlo era desenchufar la conexión USB, volver a conectarla y reiniciar el programa. Altere el código para capturar la excepción pero no volvería a abrir la conexión, dando el error:
serial.serialutil.SerialException: no se pudo abrir el puerto / dev / ttyUSB0: [Errno 2] No existe dicho archivo o directorio: ''/ dev / ttyUSB0''
Este problema ocurre tanto con UNO (en / dev / ttyAMA0) como con NANO (en / dev / ttyUSB0).
Recientemente descubrí que después de este error, el Nano se había movido a / dev / ttyUSB1. El código python se ejecutará correctamente contra / dev / ttyUSB1, pero cuando el problema vuelva a ocurrir, volverá a ser / dev / ttyUSB0.
Como resultado, he cambiado el código para interceptar la excepción y abrir el dispositivo alternativo y continuar. Hasta ahora, esto está funcionando bien, pero claramente no está bien.
¿Alguien puede sugerir dónde podría estar el problema y cómo podría diagnosticarlo? ¡No soy súper técnico! Además, he visto un par de otras publicaciones sobre este tema, pero volver a un nivel de núcleo anterior no es realmente práctico en este caso.
Actualizado para incluir salida de registro a continuación. Hay dos dispositivos: NANO (1a86: 7523) y un monitor de potencia OWL (0fde: ca05).
$ dmesg -T
[Sáb 11 feb 14:53:02 2017] usb 1-1.3-port2: deshabilitado por hub (EMI?), Reactivación ...
[Sáb. 11 feb. 14:53:02 2017] usb 1-1.3.2: Desconexión USB, número de dispositivo 71
[Sáb. 11 feb. 14:53:03 2017] dwc_otg_hcd_handle_hc_fsm: 173 retrollamadas suprimidas
[Sáb. 11 de feb. 14:53:03 2017] Falló la transferencia al punto final del dispositivo 72 0x1 1649 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1650 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb 11 feb 14:53:03 2017] ch341-uart ttyUSB1: usb_serial_generic_read_bulk_callback - urb detenido: -32
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1651 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1652 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1653 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb 11 feb 14:53:03 2017] ch341-uart ttyUSB1: usb_serial_generic_read_bulk_callback - urb detenido: -32
[Sáb. 11 feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1654 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1655 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1656 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. 11 de feb. 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1657 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb 11 feb 14:53:03 2017] Transferencia al punto final del dispositivo 72 0x1 Fracasó 1658 - FIQ informó NYET. Los datos pueden haberse perdido.
[Sáb. Feb 11 14:53:03 2017] usb 1-1.3.2: nuevo dispositivo USB de velocidad completa número 73 con dwc_otg
[Sáb. 11 feb. 14:53:03 2017] usb 1-1.3.2: Se encontró un nuevo dispositivo USB, idVendor = 0fde, idProduct = ca05
[Sáb. 11 de feb. 14:53:03 2017] usb 1-1.3.2: Nuevas cadenas de dispositivo USB: Fabricante = 1, Producto = 2, Número de serie = 3
[Sáb. 11 feb. 14:53:03 2017] usb 1-1.3.2: Producto: La versión USB del monitor de electricidad inalámbrico OWL está conectada
[Sáb. Feb 11 14:53:03 2017] usb 1-1.3.2: Fabricante: Silicon Labs
[Sáb. 11 de feb. 14:53:03 2017] usb 1-1.3.2: Número de serie: 001A3C26
[Sáb. 11 feb. 14:53:03 2017] cp210x 1-1.3.2: 1.0: convertidor cp210x detectado
[Sáb. 11 feb. 14:53:03 2017] usb 1-1.3.2: convertidor cp210x ahora conectado a ttyUSB0
[Sáb 11 feb 14:53:03 2017] usb 1-1.3-port3: deshabilitado por hub (EMI?), Volver a habilitar ...
[Sáb. 11 feb. 14:53:03 2017] usb 1-1.3.3: Desconexión USB, número de dispositivo 72
[Sáb 11 feb 14:53:03 2017] ch341-uart ttyUSB1: convertidor ch341-uart ahora desconectado de ttyUSB1
[Sáb 11 feb 14:53:03 2017] ch341 1-1.3.3: 1.0: dispositivo desconectado
[Sáb. 11 feb. 14:53:03 2017] usb 1-1.3.3: nuevo dispositivo USB a velocidad completa número 74 con dwc_otg
[Sáb 11 feb 14:53:03 2017] usb 1-1.3.3: Se encontró un nuevo dispositivo USB, idServidor = 1a86, idProduct = 7523
[Sáb. Feb 11 14:53:03 2017] usb 1-1.3.3: Nuevas cadenas de dispositivo USB: Mfr = 0, Product = 2, SerialNumber = 0
[Sáb. Feb 11 14:53:03 2017] usb 1-1.3.3: Producto: USB2.0-Serial
[Sáb. 11 feb. 14:53:03 2017] ch341 1-1.3.3: 1.0: convertidor ch341-uart detectado
[Sáb. 11 feb. 14:53:03 2017] usb 1-1.3.3: convertidor ch341-uart ahora conectado a ttyUSB2
[Sáb. 11 feb. 14:53:05 2017] cp210x ttyUSB0: convertidor cp210x ahora desconectado de ttyUSB0
[Sáb 11 feb 14:53:05 2017] cp210x 1-1.3.2: 1.0: dispositivo desconectado