通过 USB COM 与步进电机控制器通信?
Communication with a stepper motor controller through a USB COM?
我有一个步进电机控制器,我可以通过 windows 上的 USB COM 命令。制造商提供了一个软件,但我想在 python 上创建自己的软件(事实上,我想将步进器的控制包含在 python 代码中,该代码使用步进器控制另一个设备)。问题是我没有任何关于发送到控制器以移动电机的命令的信息。我想知道是否有办法使用制造商软件读取发送到控制器的命令(例如移动电机并读取发送的命令),然后使用该命令在 python 上编写我自己的代码?我想知道我的想法是纯粹的幻想还是真的可以做到?谢谢
我觉得有点难,因为厂商已经有了自己的软件,也就是说他们的软件已经和控制器的固件绑定了。
一种方法是您必须寻找在 python 和您的控制器之间与固件通信的方式。谁知道这样做?生产厂家。如果你有电气工程的基础,我认为它是可能的,但仍然很难。
我能够通过对设备协议进行逆向工程来解决我的问题:
- Wireshark usbcap 在使用设备软件移动电机时嗅探数据。
- 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))
我有一个步进电机控制器,我可以通过 windows 上的 USB COM 命令。制造商提供了一个软件,但我想在 python 上创建自己的软件(事实上,我想将步进器的控制包含在 python 代码中,该代码使用步进器控制另一个设备)。问题是我没有任何关于发送到控制器以移动电机的命令的信息。我想知道是否有办法使用制造商软件读取发送到控制器的命令(例如移动电机并读取发送的命令),然后使用该命令在 python 上编写我自己的代码?我想知道我的想法是纯粹的幻想还是真的可以做到?谢谢
我觉得有点难,因为厂商已经有了自己的软件,也就是说他们的软件已经和控制器的固件绑定了。
一种方法是您必须寻找在 python 和您的控制器之间与固件通信的方式。谁知道这样做?生产厂家。如果你有电气工程的基础,我认为它是可能的,但仍然很难。
我能够通过对设备协议进行逆向工程来解决我的问题:
- Wireshark usbcap 在使用设备软件移动电机时嗅探数据。
- 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))