Comunicación con Dispositivos USB en Python con pyusb

Comunicación con Dispositivos USB en Python con pyusb

En este tutorial aprenderemos a comunicarnos con dispositivos USB en Python utilizando la biblioteca pyusb. pyusb es una biblioteca de código abierto que proporciona una interfaz Python para acceder a dispositivos USB.

Requisitos

Para seguir este tutorial, necesitarás lo siguiente:

  • Una computadora con Python 3 instalado
  • Un dispositivo USB que quieras comunicarte

Instalación

Para instalar pyusb, ejecuta el siguiente comando en tu terminal:

pip install pyusb

Ejemplo básico

Para comenzar, vamos a ver un ejemplo básico de cómo usar pyusb para leer el ID de dispositivo de un dispositivo USB.

Python
import pyusb

# Obtenemos una referencia al dispositivo USB
dev = pyusb.core.find(idVendor=0x1234, idProduct=0x5678)

# Imprimimos el ID de dispositivo
print(dev.idVendor, dev.idProduct)

Este código imprimirá el ID de dispositivo del dispositivo USB, que en este caso es 0x1234:5678.

Lectura y escritura de datos

Ahora que sabemos cómo obtener una referencia a un dispositivo USB, podemos comenzar a leer y escribir datos.

Para leer datos de un dispositivo USB, podemos usar el método read(). Este método toma como argumento un número de bytes a leer.

Python
import pyusb

# Obtenemos una referencia al dispositivo USB
dev = pyusb.core.find(idVendor=0x1234, idProduct=0x5678)

# Leemos 10 bytes del dispositivo
data = dev.read(10)

# Imprimimos los datos leídos
print(data)

Este código leerá 10 bytes del dispositivo USB y los imprimirá en la consola.

Para escribir datos en un dispositivo USB, podemos usar el método write(). Este método toma como argumento los datos a escribir.

Python
import pyusb

# Obtenemos una referencia al dispositivo USB
dev = pyusb.core.find(idVendor=0x1234, idProduct=0x5678)

# Escribimos 10 bytes en el dispositivo
dev.write(b'Hola, mundo!')

Este código escribirá la cadena «Hola, mundo!» en el dispositivo USB.

Control de dispositivos

pyusb también nos permite controlar dispositivos USB. Por ejemplo, podemos usar el método setConfiguration() para configurar un dispositivo USB.

Python
import pyusb

# Obtenemos una referencia al dispositivo USB
dev = pyusb.core.find(idVendor=0x1234, idProduct=0x5678)

# Configuramos el dispositivo USB en la configuración 1
dev.setConfiguration(1)

Este código configurará el dispositivo USB en la configuración 1.

Más información

Para obtener más información sobre pyusb, puedes consultar la documentación oficial: https://github.com/pyusb/pyusb.

Ejercicio

Como ejercicio, intenta escribir un programa que lea el valor de un sensor de temperatura conectado a un dispositivo USB.