gpt4 book ai didi

c++ - 通过 USB 命令步进电机 Controller

转载 作者:太空狗 更新时间:2023-10-29 23:06:53 26 4
gpt4 key购买 nike

我正在尝试在 Trinamic 上做一些实验 StepRocker Gnu/Linux 中的步进电机 Controller 。我之前通过 USB 将设备连接到 Windows 机器并使用了 Trinamic 的 proprietary software测试 Controller 是否按预期运行,而且看起来确实如此。 StepRocker 的初学者手册提到了某些应该通过串行接口(interface)发送的命令,以向左、向右旋转电机,或使其停止。但是当我通过 USB 将这个 Controller 连接到 Gnu/Linux 计算机,并想编写我自己的 C++ (libusb) 程序来使电机运动时,我不太确定我的起点应该是什么。控制台应用程序(我打算编写)应该是非阻塞的。

这是发出旋转命令时正在发送的数据报和收到的响应的图像:

enter image description here

我试着写了一个简单的程序,将图中所示的旋转值数据报送入电机 Controller :

#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <unistd.h>

int fd1;
int wr;
int main()
{
fd1=open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd1 == -1 )
{
perror("open_port: Unable to open /dev/ttyACM0");
}
else
{
fcntl(fd1, F_SETFL,0);
printf("Port 1 has been sucessfully opened and %d is the file description\n",fd1);
char moveMsg[9]={0x01,0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0xbc, 0xc0};
wr = write(fd1, moveMsg, 9);
}
close(fd1);
return 0;
}

但这不会以任何方式改变 Controller 的 LED 行为(当然也不会移动电机)。

最佳答案

他们说“USB 虚拟 COM 端口驱动程序”,因此您不需要 libusb:只需像常规 RS-232 一样在您的程序中打开/dev/USBtty0(/dev/ACM0 或您的发行版如何创建它)并工作与它。

关于c++ - 通过 USB 命令步进电机 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com