问题标签 [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.
windows - 通过 CAN-BUS 与电机驱动器通话
我有一个电机,连接到电机驱动器,
通过 CAN-BUS 连接 Windows XP 计算机(我相信通过 USB)。我想和电机驱动器“交谈”并有一些问题:
USB 是否显示为 COM 端口?
我使用什么协议或如何找出要使用的协议?或者我怎么跟它说话?
是否有人拥有或知道我可以查看 的类似事物的任何公共实现?您还有其他要分享的提示吗?
谢谢!
usb - 通过 USB 与电机驱动器通话
我有一个电机,连接到电机驱动器,通过 CAN-BUS(通过 USB)连接 Windows XP 计算机。我想和电机驱动器“交谈”并有一些问题:
- USB 是否显示为 COM 端口?
- 我使用什么协议或如何找出要使用的协议?
- 是否有人拥有或知道我可以查看的类似事物的任何公共实现?
您还有其他想要分享的热门歌曲吗?
谢谢!
microcontroller - 三洋 B00224 步进电机的驱动顺序
我得到了一台 Sanyo #B00224 4 线步进电机,但我终生无法确定驱动顺序,例如为线圈供电的顺序和方向。据我所知,它是一个双极步进电机,应该可以驱动:
或者:
其中 1 为电源,0 为接地。
我真的只是在寻找有关此电机的数据表或您可能拥有的任何信息。
谢谢!
c - 在 8 位 PIN 中设置一位而不更改其他位
以下代码使用 winAVR。
我在这里得到了一个 8 位 PIN,我需要将它与 00000010 或 0x02 进行 OR 以设置第 7 位。
现在我要做的是:
- 设置端口 B 位 7
- 等待 1ms
- 清除端口 B 位 7
- 等待 19 毫秒
但是,我不应该更改这些步骤中的其他位。
所以我必须要 :
- 读取端口 B
- 需要设置位
- 将修改后的值写回端口
- 清除位
- 写回端口 B
所以我的测试代码是:
但我认为在这个过程中其他位将被改变,我的问题是,我应该如何在不改变其他位的情况下操作 8 位端口的一位?
非常感谢 !!
c - 步进电机控制时序
在使用 Microchip TCP/IP 堆栈时,我有一个关于步进电机控制的问题。
过去,我使用计时器来控制步进电机。我将定时器的周期设置为脉冲之间所需的时间,然后在定时器滴答 ISR 中根据需要更改电机相位输出。在我这样做的情况下,我的步进器以每秒大约 400 个脉冲的最大速率移动,这意味着中断每 2.5 毫秒发生一次。我正在使用 USB 与主机通信。
我现在正在开发一种新产品,它将使用 TCP/IP 堆栈通过以太网与 PC 进行通信。它还将通过 SPI 和 UART 模块与其他设备进行通信。这个新设备必须能够以每秒 2000 个脉冲的速度运行步进器,这意味着如果我使用相同的定时器/ISR 方法来驱动步进器,则中断可能每 0.5 毫秒触发一次。步进电机根据从主机接收到的命令打开和关闭,因此与主机的通信和电机的运行需要和谐地同时发生。如果步进速度略有变化,这不是问题,但并不理想。此外,如果步进器在其移动过程中暂停 30 毫秒,这是不可接受的。
我正在考虑为这个项目使用指令时钟速度为 16MHz(32Mhz/2 使用内部 FRC+PLL)的 PIC24F。您认为步进器的中断会破坏以太网通信还是反之亦然?有没有更好的方法来做到这一点?
我考虑过为步进控制使用单独的 PIC,然后我可以发送该 pic 目标位置命令或停止命令来启动和停止运动,但这会在混合中添加另一个固件并使周围的事情复杂化。
c++ - 通过 USB 控制步进电机控制器
我正在尝试对 Gnu/Linux 中的 Trinamic StepRocker步进电机控制器进行一些实验。我之前通过 USB 将设备连接到 Windows 机器,并使用 Trinamic 的专有软件来测试控制器是否按预期运行,并且看起来确实如此。StepRocker 的初学者手册提到了应该通过串行接口发送的某些命令,以使电机向左、向右旋转或使其停止。但是当我通过 USB 将此控制器连接到 Gnu/Linux 计算机,并想编写自己的 C++ (libusb) 程序来使电机移动时,我不太确定我的起点应该是什么。控制台应用程序(我计划编写)应该是非阻塞的。
这是发出旋转命令时正在发送的数据报和收到的响应的图像:
我尝试编写一个简单的程序,将图片中显示的旋转值数据报提供给电机控制器:
但这不会以任何方式改变控制器的 LED 行为(当然也不会移动电机)。
python - python中用于电机控制和数据采集的并行while循环
假设我有两个功能:
和
在实践中,我希望能够让电机来回摆动(通过一个循环调用 moveMotorToPosition 两次;一次是正位置,一个是负位置)
虽然该“控制”循环正在迭代,但我希望一个单独的 while 循环通过调用 getMotorPositionnd 以某种频率提取数据。然后我会在这个循环上设置一个计时器,让我设置采样频率。
在 LabView 中(电机控制器提供了一个 DLL 来连接),我通过“并行”while 循环来实现这一点。我以前从未使用过 parallel 和 python 做过任何事情,并且不确定哪个是最引人注目的方向。
mongodb - 如何从聚合中隐藏_id?
我有这个查询:
这给了我这个结果:
所以我可以这样做:
但我怎么能隐藏"_id"
,所以我只能得到:
在普通查询中,我会简单地添加类似的东西,{"_id":0}
但在这里它不起作用。
mongodb - 电机返回 无
我正在使用电机驱动程序连接到 Mongo DB。下面是向集合中插入数据的代码
插入语句总是返回 None。这不是 Tornado 应用程序。马达只能与 Tornado 一起使用吗?如果不是,为什么插入没有返回?