python pyusb库使用教程在window10系统上操作USB(操作Intel Realsense D435)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python pyusb库使用教程在window10系统上操作USB(操作Intel Realsense D435)相关的知识,希望对你有一定的参考价值。

发现位置:usb之python(pyusb)
pypi:pyusb 1.0.2
Libraries.io教程 :pyusb Release 1.0.2
github教程:Programming with PyUSB 1.0
我的安装流程:参考tensorflow-yolov3 调试Intel Realsense D435摄像头所遇到的问题(USB自动检测并重置机制)

查看idVendor和idProduct

根据作者提供的github教程:
测试打印usb接口信息
随机挑选一个Intel Realsense摄像头,根据它的idVendor和idProduct打印它的信息:
发现深度摄像头都是一样的:

RGB摄像头都是一样的:

运行代码

# -*- coding: utf-8 -*-
"""
@File    : test_191128_测试pyusb.py
@Time    : 2019/11/28 11:24
@Author  : Dontla
@Email   : sxana@qq.com
@Software: PyCharm
"""
import usb.core
import usb.util

# find our device
dev = usb.core.find(idVendor=0x8086, idProduct=0x0B07)

print(dev)

结果:

D:\\20191031_tensorflow_yolov3\\python\\python.exe D:/20191031_tensorflow_yolov3/needed/test/test_Intel_realsense/test_191128_测试pyusb.py
DEVICE ID 8086:0b07 on Bus 001 Address 014 =================
 bLength                :   0x12 (18 bytes)
 bDescriptorType        :    0x1 Device
 bcdUSB                 :  0x320 USB 3.2
 bDeviceClass           :   0xef Miscellaneous
 bDeviceSubClass        :    0x2
 bDeviceProtocol        :    0x1
 bMaxPacketSize0        :    0x9 (9 bytes)
 idVendor               : 0x8086
 idProduct              : 0x0b07
 bcdDevice              : 0x50b6 Device 80.116
 iManufacturer          :    0x1 Error Accessing String
 iProduct               :    0x2 Error Accessing String
 iSerialNumber          :    0x3 Error Accessing String
 bNumConfigurations     :    0x1
  CONFIGURATION 1: 110 mA ==================================
   bLength              :    0x9 (9 bytes)
   bDescriptorType      :    0x2 Configuration
   wTotalLength         :  0xb77 (2935 bytes)
   bNumInterfaces       :    0x5
   bConfigurationValue  :    0x1
   iConfiguration       :    0x0 
   bmAttributes         :   0xc0 Self Powered
   bMaxPower            :   0x37 (110 mA)
    INTERFACE 0: Video =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x0
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x1
     bInterfaceClass    :    0xe Video
     bInterfaceSubClass :    0x1
     bInterfaceProtocol :    0x0
     iInterface         :    0x5 Error Accessing String
      ENDPOINT 0x87: Interrupt IN ==========================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x87 IN
       bmAttributes     :    0x3 Interrupt
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x6
    INTERFACE 1: Video =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x1
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x1
     bInterfaceClass    :    0xe Video
     bInterfaceSubClass :    0x2
     bInterfaceProtocol :    0x0
     iInterface         :    0x5 Error Accessing String
      ENDPOINT 0x82: Bulk IN ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x82 IN
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :  0x400 (1024 bytes)
       bInterval        :    0x0
    INTERFACE 2: Video =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x2
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x1
     bInterfaceClass    :    0xe Video
     bInterfaceSubClass :    0x2
     bInterfaceProtocol :    0x0
     iInterface         :    0x8 Error Accessing String
      ENDPOINT 0x83: Bulk IN ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x83 IN
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :  0x400 (1024 bytes)
       bInterval        :    0x0
    INTERFACE 3: Video =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x3
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x0
     bInterfaceClass    :    0xe Video
     bInterfaceSubClass :    0x1
     bInterfaceProtocol :    0x0
     iInterface         :    0x6 Error Accessing String
    INTERFACE 4: Video =====================================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x4
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x1
     bInterfaceClass    :    0xe Video
     bInterfaceSubClass :    0x2
     bInterfaceProtocol :    0x0
     iInterface         :    0x6 Error Accessing String
      ENDPOINT 0x84: Bulk IN ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x84 IN
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :  0x400 (1024 bytes)
       bInterval        :    0x0

Process finished with exit code 0

看不懂这打印的一堆是啥玩意o_o …

然后运行dev.set_configuration(),报错:

usb.core.USBError: [Errno 2] Entity not found


不丸了(╯‵□′)╯︵┻━┻

以上是关于python pyusb库使用教程在window10系统上操作USB(操作Intel Realsense D435)的主要内容,如果未能解决你的问题,请参考以下文章

pyUSB read() 总是返回相同的值

pyusb 2.7 windows安装错误

pyusb 读取操作总是返回 '1'

Python PyUSB HID 功能报告

Windows 10 上与 python PyUSB 的简单通信 USB

使用 PyUSB 通过 USB 发送数据