问题标签 [motordriver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
702 浏览

windows - 通过 CAN-BUS 与电机驱动器通话

我有一个电机,连接到电机驱动器,
通过 CAN-BUS 连接 Windows XP 计算机(我相信通过 USB)。我想和电机驱动器“交谈”并有一些问题:

  • USB 是否显示为 COM 端口?

  • 我使用什么协议或如何找出要使用的协议?或者我怎么跟它说话?


  • 是否有人拥有或知道我可以查看 的类似事物的任何公共实现?

  • 您还有其他要分享的提示吗?

    谢谢!

0 投票
1 回答
328 浏览

usb - 通过 USB 与电机驱动器通话

我有一个电机,连接到电机驱动器,通过 CAN-BUS(通过 USB)连接 Windows XP 计算机。我想和电机驱动器“交谈”并有一些问题:

  • USB 是否显示为 COM 端口?
  • 我使用什么协议或如何找出要使用的协议?
  • 是否有人拥有或知道我可以查看的类似事物的任何公共实现?
  • 您还有其他想要分享的热门歌曲吗?

    谢谢!

0 投票
1 回答
866 浏览

microcontroller - 三洋 B00224 步进电机的驱动顺序

我得到了一台 Sanyo #B00224 4 线步进电机,但我终生无法确定驱动顺序,例如为线圈供电的顺序和方向。据我所知,它是一个双极步进电机,应该可以驱动:

或者:

其中 1 为电源,0 为接地。

我真的只是在寻找有关此电机的数据表或您可能拥有的任何信息。

谢谢!

0 投票
3 回答
3513 浏览

c - 在 8 位 PIN 中设置一位而不更改其他位

以下代码使用 winAVR。

我在这里得到了一个 8 位 PIN,我需要将它与 00000010 或 0x02 进行 OR 以设置第 7 位。

现在我要做的是:

  • 设置端口 B 位 7
  • 等待 1ms
  • 清除端口 B 位 7
  • 等待 19 毫秒

但是,我不应该更改这些步骤中的其他位。

所以我必须要 :

  • 读取端口 B
  • 需要设置位
  • 将修改后的值写回端口
  • 清除位
  • 写回端口 B

所以我的测试代码是:

但我认为在这个过程中其他位将被改变,我的问题是,我应该如何在不改变其他位的情况下操作 8 位端口的一位?

非常感谢 !!

0 投票
3 回答
2029 浏览

c - 步进电机控制时序

在使用 Microchip TCP/IP 堆栈时,我有一个关于步进电机控制的问题。

过去,我使用计时器来控制步进电机。我将定时器的周期设置为脉冲之间所需的时间,然后在定时器滴答 ISR 中根据需要更改电机相位输出。在我这样做的情况下,我的步进器以每秒大约 400 个脉冲的最大速率移动,这意味着中断每 2.5 毫秒发生一次。我正在使用 USB 与主机通信。

我现在正在开发一种新产品,它将使用 TCP/IP 堆栈通过以太网与 PC 进行通信。它还将通过 SPI 和 UART 模块与其他设备进行通信。这个新设备必须能够以每秒 2000 个脉冲的速度运行步进器,这意味着如果我使用相同的定时器/ISR 方法来驱动步进器,则中断可能每 0.5 毫秒触发一次。步进电机根据从主机接收到的命令打开和关闭,因此与主机的通信和电机的运行需要和谐地同时发生。如果步进速度略有变化,这不是问题,但并不理想。此外,如果步进器在其移动过程中暂停 30 毫秒,这是不可接受的。

我正在考虑为这个项目使用指令时钟速度为 16MHz(32Mhz/2 使用内部 FRC+PLL)的 PI​​C24F。您认为步进器的中断会破坏以太网通信还是反之亦然?有没有更好的方法来做到这一点?

我考虑过为步进控制使用单独的 PIC,然后我可以发送该 pic 目标位置命令或停止命令来启动和停止运动,但这会在混合中添加另一个固件并使周围的事情复杂化。

0 投票
2 回答
4371 浏览

c++ - 通过 USB 控制步进电机控制器

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

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

在此处输入图像描述

我尝试编写一个简单的程序,将图片中显示的旋转值数据报提供给电机控制器:

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

0 投票
1 回答
974 浏览

python - python中用于电机控制和数据采集的并行while循环

假设我有两个功能:

在实践中,我希望能够让电机来回摆动(通过一个循环调用 moveMotorToPosition 两次;一次是正位置,一个是负位置)

虽然该“控制”循环正在迭代,但我希望一个单独的 while 循环通过调用 getMotorPositionnd 以某种频率提取数据。然后我会在这个循环上设置一个计时器,让我设置采样频率。

在 LabView 中(电机控制器提供了一个 DLL 来连接),我通过“并行”while 循环来实现这一点。我以前从未使用过 parallel 和 python 做过任何事情,并且不确定哪个是最引人注目的方向。

0 投票
3 回答
1228 浏览

labview - 快速了解复杂 LabView VI 工作原理的最有效方法是什么?

了解控制电机的复杂 LabView VI 的最佳方法是什么?

我的目标是通过操纵杆控制电机。

下面显示的接线图允许 LabView 用户从 LabView GUI 控制电机:上下移动滑块以增加或减少所需的速度。随着滑块值的变化,它被输入到一堆数学控件中,最终被转换成一个命令字符串供电机解释。如果我理解正确,这个命令字符串是写入串行端口的一堆字节。

我不想使用 LabView GUI 来控制电机,而是使用操纵杆。

解决这个问题的最佳方法是什么?

操纵杆有俯仰、偏航、滚动和油门。哪一个与电机的速度最相关?

在此处输入图像描述

0 投票
4 回答
38080 浏览

mongodb - 如何从聚合中隐藏_id?

我有这个查询:

这给了我这个结果:

所以我可以这样做:

但我怎么能隐藏"_id",所以我只能得到:

在普通查询中,我会简单地添加类似的东西,{"_id":0}但在这里它不起作用。

0 投票
2 回答
320 浏览

mongodb - 电机返回 无

我正在使用电机驱动程序连接到 Mongo DB。下面是向集合中插入数据的代码

插入语句总是返回 None。这不是 Tornado 应用程序。马达只能与 Tornado 一起使用吗?如果不是,为什么插入没有返回?