如何使用db15输入套接字将命令从Python 3.4发送到电动XY显微镜载物台

时间:2016-04-06 04:19:38

标签: python database usb hid pywinusb

我有一个电动XY显微镜载物台,目前由操纵杆控制,操纵杆信号转换成数据,并通过db15电缆送到XY显微镜载物台的电机。我需要用计算机上的命令移动它,更换操纵杆。

我还有一个USB到DB15转换器“USB游戏端口适配器Rockfire RM-203”,我从这里得到 http://www.rockfire.com.tw/en/products/accessory/usb-accessory/7-rm-203-usb-nest-converter.html 这在人机接口设备中创建了一个兼容HID的游戏控制器和一个新的USB输入设备

我在从笔记本电脑到XY显微镜舞台发送命令(让我们说电机从X轴上的位置0移动到位置100)时遇到了一些问题,我不知道如何将命令从Python 3.4发送到电机。

由于我有这个HID,我可以在这里使用pywinusb 0.4.1 https://pypi.python.org/pypi/pywinusb/,文档https://github.com/rene-aguirre/pywinusb,但我看不到如何向HID发送一个文件

我认为我必须识别并打开HID端口,然后编写命令并发送它们,这样电机就会移动,就像我使用串口而不是HID的COM端口一样,它是比这更容易

有人可以帮助我吗? 感谢

修改

我在线检查了一些信息,但很少或没有关于它的例子。这是我尝试过的一种方法 How to send hid data to device using python / pywinusb? 然后它没有用,所以我分成几块并尝试了这个

from pywinusb import hid
filter = hid.HidDeviceFilter()
print (filter)
hid_device = filter.get_devices()
print (hid_device)
if hid_device:
    print("Found %d matching hid devices" + str(len(all_devices)))
else:
    print("no hid devices")
hid_device.open()

我得到了这个

<pywinusb.hid.core.HidDeviceFilter object at 0x0000000003FC0240>
{}
no hid devices
Traceback (most recent call last):
  File "C:/Users/me/Desktop/other.py", line 15, in <module>
    hid_device.open()
AttributeError: 'dict' object has no attribute 'open'

很遗憾,即使键盘,鼠标和USB到DB15电缆已连接,我可以看到它们已在设备管理器上连接,但该程序无法识别它们。

这里有其他例子

https://stackoverflow.com/search?page=1&tab=relevance&q=pywinusb
https://stackoverflow.com/questions/12802401/simple-reading-writing-from-to-a-usb-hid-device-in-python
http://cooder.org/questions/18709253
https://github.com/jrowberg/pywinusb/commit/8a0c7ac0aca6ac66eb944520a2b5e4c538f06a8c
http://www.developerfusion.com/project/31693/pywinusb/
http://nullege.com/codes/show/src@p@y@pywinusb-0.3.3@examples@pnp_qt.py
http://www.developerfusion.com/project/31693/pywinusb/
https://developer.mbed.org/cookbook/USBHID-bindings-

但是,我不知道如何识别Python 3.4中的电缆

请帮助

1 个答案:

答案 0 :(得分:0)

没关系,我试图从这个链接控制MAC5000 http://ludl.com/?portfolio=mac-6000 我已经通过电子邮件发送了制造商,他们说可能在完成所有测试后我必须使用设备的“控制盒”,而不是试图直接从db15端口控制它。虽然这样的db端口有15个引脚但我不能分别使用USB到GPIB或USB到DB15适配器,python包pyvisa和pywinusb。这个控制盒有一个串口,所以我将使用pyserial发送命令并从MAC5000获取回复消息。