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.
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.
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.
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.
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.