[pyar] Modulo USB para windows

Marcelo Fernandez marcelo.fidel.fernandez en gmail.com
Dom Jul 24 12:24:42 ART 2011


El día 23 de julio de 2011 21:05, Alan Jonatan Romero
<eldoblecero en gmail.com> escribió:
> Hola capos! (y por capos me refiero a capos y "capas") Solo queria
> preguntar esto. Anduve googleando por un modulo para leer datos que
> entran por un puerto USB. Me topé con:
>
> -pySerial
> -pyParallel(dentro de la pagina de pySerial)
> -pyUSB (lo que mas se parece de movida a lo mio...)
>
> La cosa es asi... necesito hacerme un programita que me capture los
> eventos (o los datos) que envia mi pedalera de efectos de guitarra,
> para transformarlos en lo que a mi se me antoje. Esta pedalera se
> conecta a mi compu mediante una interface MIDI-USB (la pedalera tiene
> MIDI, y va a la compu por USB).

Lo primero que tenés que saber es como qué clase de dispositivo USB
[1] se hace ver en el sistema. Si bien podés interactuar "a pelo"
mediante pyUSB mandando y recibiendo bytes por el canal, muchas veces
es más sencillo usar una biblioteca que hace ese trabajo por vos.

Por ejemplo, si estamos hablando de una impresora USB, casi nadie se
animaría a aprenderse el lenguaje de la impresora y escribirle en el
port USB lo necesario para que ésta imprima, sino que utilizaría los
mecanismos estándares para imprimir que te provee el SO. Lógico que
éste no es el caso, pero se me ocurre que la pedalera puede hacerse
ver como dispositivo Serie (0x02), como HID (joystick, 0x03), o MIDI
(0x01). Ignoro cómo se hace eso en Windows (Google puede ayudar acá),
pero si tenés un Linux a mano lo ves en el syslog al enchufarlo.

Una vez que sepas eso, si se muestra como un dispositivo serial, es
más fácil usar pySerial (en Linux se ve como /dev/ttyUSB0), por
ejemplo. Si se ve como un joystick usás (pyJoystick? existe? :-P ),
etc.

En mi caso tuve que utilizar pyUSB a mano con una impresora medio
extraña, pero eso no es más que copiar el ejemplo de la página (una
vez que sabés el idVendor y el idDevice, que nuevamente, lo sacás del
syslog de tu Linux más cercano).

[1] http://en.wikipedia.org/wiki/Usb#Device_classes

Saludos
-- 
Marcelo F. Fernández
Buenos Aires, Argentina
Licenciado en Sistemas - CCNA

E-Mail: marcelo.fidel.fernandez en gmail.com
Blog: http://blog.marcelofernandez.info
Twitter: http://twitter.com/fidelfernandez



More information about the pyar mailing list