Accedir a dispositius USB: llibreria libusb

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Tinc la Drums Rockband de la Wii de Nintendo, que es connecta per USB. El fabricant és Harmonix. Vull accedir a la informació que envia, i sembla ser que utilitzant libusb es pot accedir a la velocity del cop de baqueta.

Introduction to using LibUSB-1.0

El primer exercici proposat és per llegir tota la llista de dispositius USB connectats, i mirar quines interfícies i endpoints té cada dispositiu. Els dispositius vénen identificats per un VendorID i un ProductID, que en el cas de la bateria USB és:

  idVendor           0x1bad Harmonix Music (7085)
  idProduct          0x0005 (5)

El primer exemple l'anomeno libusb_intro.c. He de fer un petit retoc a la capçalera, i compilo:

//#include <libusb.h>
#include "/usr/include/libusb-1.0/libusb.h"

$ g++ -Wall -g -O2 -I/usr/local/include/ -o libusb_intro libusb_intro.c -lusb-1.0
$ libusb_intro

...
Number of possible configurations: 1  Device Class: 0  VendorID: 7085  ProductID: 5
Interfaces: 1 ||| Number of alternate settings: 1 | Interface Number: 0 | Number of endpoints: 2 | Descriptor Type: 5 | EP Address: 2 | Descriptor Type: 5 | EP Address: 129 | 

El segon exercici intenta escriure un valor al dispositiu, però evidentment dóna error perquè el meu dispositiu no és d'escriptura sinó de lectura. Fitxer libusb_intro2.c (he de ficar els valors correctes de VendorID i ProductID):

dev_handle = libusb_open_device_with_vid_pid(ctx, 7085, 5); //these are vendorID and productID I found for my usb device
$ sudo ./libusb_intro2
7 Devices in list.
Device Opened
Claimed Interface
Data->abcd3<-
Writing Data...
Write Error
Released Interface

libusb couldn't open usb device permission denied

Per evitar problemes de permisos amb el dispositiu USB, creem el fitxer /etc/udev/rules.d/55-rockband-usb.rules:

 SYSFS{idProduct}=="0005",SYSFS{idVendor}=="1bad",MODE="666",OWNER="joan",GROUP="joan"

creat per Joan Quintana Compte, octubre 2012

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines