Si tengo varios Arduinos conectados por USB a una computadora Linux, y aparecen como
- / tty / ACM0
- / tty / ACM1
- / tty / ACM2
¿Cómo puedo identificar qué Arduino es cuál sin conectarme a ellos mediante una conexión en serie ? ¿Hay un número de serie o una identificación única en el Arduino?
Gracias por tu tiempo.
Situación: Uno R3, Mega, Leonardo con / ttyACM [1,2,3]
Salida lsusb con dispositivos en el orden mencionado anteriormente:
... Bus 001 Dispositivo 011: ID 2341: 0043 Bus 001 Dispositivo 013: ID 2341: 8036 ... Bus 001 Dispositivo 014: ID 2341: 0042
lsusb -d vendor: dispositivo -vvv muestra para cada uno
Uno
Bus 001 Dispositivo 014: ID 2341: 0042 Descriptor de dispositivo: bLongitud 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x2341 idProduct 0x0042 bcdDevice 0.01 iManufacturer 1 Arduino (www.arduino.cc) iProduct 2 iSerial 220 55330313735351910141 bNumConfigurations 1 Descriptor de configuración: bLongitud 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Autoalimentado MaxPower 100mA Descriptor de interfaz: bLongitud 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (módem) bInterfaceProtocol 1 Comandos AT (v.25ter) iInterface 0 Encabezado de CDC: bcdCDC 10.01 CDC ACM: bmCapabilities 0x06 envía descanso codificación de línea y estado serial Unión de los CDC: bMasterInterface 0 bSlaveInterface 1 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Tipo de transferencia interrupción Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0008 1x 8 bytes bIntervalo 255 Descriptor de interfaz: bLongitud 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 sin usar bInterfaceProtocol 0 iInterface 0 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Tipo de transferencia a granel Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 1 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Tipo de transferencia a granel Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 1 Estado del dispositivo: 0x0000 (Bus alimentado)
Leonardo
Bus 001 Dispositivo 013: ID 2341: 8036 Descriptor de dispositivo: bLongitud 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (definido en el nivel de interfaz) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x2341 idProduct 0x8036 bcdDevice 1.00 iManufacturer 1 Arduino LLC iProduct 2 Arduino Leonardo iSerial 0 bNumConfigurations 1 Descriptor de configuración: bLongitud 9 bDescriptorType 2 wTotalLength 100 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus alimentado) MaxPower 500mA Asociación de interfaz: bLongitud 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (módem) bFunctionProtocol 1 comandos AT (v.25ter) iFunction 0 Descriptor de interfaz: bLongitud 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (módem) bInterfaceProtocol 0 Ninguno iInterface 0 Encabezado de CDC: bcdCDC 1.10 Gestión de llamadas de los CDC: bmCapabilities 0x01 gestión de llamadas bDataInterface 1 CDC ACM: bmCapabilities 0x06 envía descanso codificación de línea y estado serial Unión de los CDC: bMasterInterface 0 bSlaveInterface 1 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Tipo de transferencia interrupción Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 0 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Tipo de transferencia a granel Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 0 Descriptor de interfaz: bLongitud 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 1 Dispositivo de interfaz humana bInterfaceClass 3 bInterfaceSubClass 0 Sin subclase bInterfaceProtocol 0 Ninguno iInterface 0 Descriptor de dispositivo HID: bLongitud 9 bDescriptorType 33 bcdHID 1.01 bCountryCode 0 No compatible bNumDescriptors 1 Informe bDescriptorType 34 wDescriptorLength 101 Descriptor de informe: (la longitud es 101) Elemento (global): página de uso, datos = [0x01] 1 Controles de escritorio genéricos Elemento (local): uso, datos = [0x02] 2 Ratón Elemento (Principal): Colección, datos = [0x01] 1 Solicitud Elemento (local): uso, datos = [0x01] 1 Puntero Elemento (Principal): Colección, datos = [0x00] 0 Físico Elemento (Global): ID de informe, datos = [0x01] 1 Elemento (global): página de uso, datos = [0x09] 9 Botones Elemento (local): Uso mínimo, datos = [0x01] 1 Botón 1 (primario) Elemento (local): uso máximo, datos = [0x03] 3 Botón 3 (terciario) Elemento (Global): Mínimo lógico, datos = [0x00] 0 Elemento (Global): Máximo lógico, datos = [0x01] 1 Elemento (Global): Recuento de informes, datos = [0x03] 3 Elemento (Global): Tamaño del informe, datos = [0x01] 1 Elemento (Principal): Entrada, datos = [0x02] 2 Datos Variable Absoluta No_Wrap Lineal Preferred_State No_Null_Position Non_Volatile Bitfield Elemento (Global): Recuento de informes, datos = [0x01] 1 Elemento (Global): Tamaño del informe, datos = [0x05] 5 Elemento (Principal): Entrada, datos = [0x03] 3 Constante Variable Absoluta No_Wrap Lineal Preferred_State No_Null_Position Non_Volatile Bitfield Elemento (global): página de uso, datos = [0x01] 1 Controles de escritorio genéricos Elemento (local): uso, datos = [0x30] 48 Dirección-X Elemento (local): uso, datos = [0x31] 49 Dirección-Y Elemento (local): uso, datos = [0x38] 56 Rueda Elemento (Global): Mínimo lógico, datos = [0x81] 129 Elemento (Global): Máximo lógico, datos = [0x7f] 127 Elemento (Global): Tamaño del informe, datos = [0x08] 8 Elemento (Global): Recuento de informes, datos = [0x03] 3 Elemento (Principal): Entrada, datos = [0x06] 6 Datos Variable Relativo No_Envoltura Lineal Preferred_State No_Null_Position Non_Volatile Bitfield Elemento (Principal): Finalizar colección, datos = ninguno Elemento (Principal): Finalizar colección, datos = ninguno ...... Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Tipo de transferencia interrupción Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 1 Estado del dispositivo: 0x0000 (Bus alimentado)
Y Mega256:
Bus 001 Dispositivo 014: ID 2341: 0042 Descriptor de dispositivo: bLongitud 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x2341 idProduct 0x0042 bcdDevice 0.01 iManufacturer 1 Arduino (www.arduino.cc) iProduct 2 iSerial 220 55330313735351910141 bNumConfigurations 1 Descriptor de configuración: bLongitud 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Autoalimentado MaxPower 100mA Descriptor de interfaz: bLongitud 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (módem) bInterfaceProtocol 1 Comandos AT (v.25ter) iInterface 0 Encabezado de CDC: bcdCDC 10.01 CDC ACM: bmCapabilities 0x06 envía descanso codificación de línea y estado serial Unión de los CDC: bMasterInterface 0 bSlaveInterface 1 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Tipo de transferencia interrupción Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0008 1x 8 bytes bIntervalo 255 Descriptor de interfaz: bLongitud 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 sin usar bInterfaceProtocol 0 iInterface 0 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Tipo de transferencia a granel Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 1 Descriptor de punto final: bLongitud 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Tipo de transferencia a granel Tipo de sincronización Ninguno Datos de tipo de uso wMaxPacketSize 0x0040 1x 64 bytes bIntervalo 1 Estado del dispositivo: 0x0000 (Bus alimentado)
lsusb -vvv
¿dice?