通过 USB COM 与步进电机控制器通信?

Communication with a stepper motor controller through a USB COM?

我有一个步进电机控制器,我可以通过 windows 上的 USB COM 命令。制造商提供了一个软件,但我想在 python 上创建自己的软件(事实上,我想将步进器的控制包含在 python 代码中,该代码使用步进器控制另一个设备)。问题是我没有任何关于发送到控制器以移动电机的命令的信息。我想知道是否有办法使用制造商软件读取发送到控制器的命令(例如移动电机并读取发送的命令),然后使用该命令在 python 上编写我自己的代码?我想知道我的想法是纯粹的幻想还是真的可以做到?谢谢

我觉得有点难,因为厂商已经有了自己的软件,也就是说他们的软件已经和控制器的固件绑定了。

一种方法是您必须寻找在 python 和您的控制器之间与固件通信的方式。谁知道这样做?生产厂家。如果你有电气工程的基础,我认为它是可能的,但仍然很难。

我能够通过对设备协议进行逆向工程来解决我的问题:

  1. Wireshark usbcap 在使用设备软件移动电机时嗅探数据。
  2. pyUSB 编写自己的程序来根据使用wireshark 检索到的数据包来控制设备

import time 
import usb.core 
import usb.util
from sys import exit
import sys

'''
On windows : Install libusb-win32
             Install zadig
             Launch Zadig :
                 choose the driver
                 choose libusb-win32
                 choose "install filter driver"
                 restart the computer
'''

VID = 0x04d8
PID = 0x000a

dev = usb.core.find(idVendor=VID, idProduct=PID)

if not dev:
    print("Could not find device ")
    exit(1)
else:
    print("Yeeha! Found the device")
    
dev.set_configuration()

# command : Limit
dev.write(2, (0x59, 0x4c, 0x0d))