如何在不使用单片机等的情况下直接用电脑控制电机? - 知乎

我在很多年前做过。但以如今的情况来看,这种做法已经不太现实。

知道 LPT 的人大多都有娃了

那还是 Windows XP 时代,可以直接编程透过 0x378 读写 LPT(Parallel Port),就是 USB 时代以前,打印机用的那个口。

这种丑大宽的接口,在以前的台式机、甚至笔记本电脑上,都是标配IO。

LPT 可以拉出个别接点,直接控制某一个接点的高低电位,简单说就是 GPIO。再接上 TA-7279P 之类的桥式 IC,给直流有刷电机作正反转控制。

到 Win7 时代已经行不通,因为这其实是直接读写 RAM 的行为,为了安全性已经被 OS 挡下来。硬要做?可以的,只是很高概率会见到经典蓝色当机画面。

那怎么办呢?我需要编程控制电机、读取各种电子电路例如 ADC,可我不想用 Windows XP 啊,Windows 7 在当时很潮的!

有个德国人做了这个东西:

Converter From USB To Parallel 1.6​www-user.tu-chemnitz.de/~heha/basteln/PC/USB2LPT/ul-16.en.htm

那是一个物流与电商都远远不如现在发达的时代,我不知道怎么跟这个德国人买?

最后,买的是中国大陆的仿制品,但连接稳定性不佳啊!我也搞不懂是仿制者的锅?还是原设计者的锅?

虽然连接稳定性差,但起码不会再看到蓝色当机画面,而且重连成功概率不算低,做原型机实验勉强堪用了。

其实,说到这里,就已经超出题主要求的范围了,因为这个 USB2LPT 本质上也是单片机做的,只是别人帮你写了模拟 LPT 的 firmware 进去(而且我没记错的话,还不能当作 Printer Port 使用,也就是不能真的拿来转接打印机

DLL 混战

@淡月清风

的留言让我想起来,自己曾经折腾过 winio.dll,Inpout32.dll,但最后都不够好。最主要的原因,是不能突破「Windows 系统时间片」的限制,操作实时性不佳。

各种转接器?抱歉,你可能还是没逃出单片机手掌心

当时有一个同学,他是拿 NI-6009 这张很多学生爱用的 USB DAQ 去完成「电脑控制电机」的目标,他很开心的说「哈哈哈~我这样就逃过 8051 了」。

结果我把 NI-6009 拿来拆开,抱歉,你用的还是 8051

如下图,这真的是当时的照片,我自己拿小米3拍下的。

其他回答说到可以用:

很可能也都是类似的方案,只是控制电机的人不用折腾单片机了,但不代表没用到单片机。

再往后,就是我自学单片机的故事了。在这件事折腾得太累,也是我自学单片机的动机之一。

最后还是用单片机

用 UART+MCU 做转接,以电脑控制电机,这自由度实在高得太多太多了,尤其很多细节交给 MCU 就可以不受「Windows 系统的时间片」限制,也能将不少具体硬件动作流程抽象到 MCU 的代码中。但就是得先过「会写单片机」这道门槛。

有些回答没搞清楚问题重点

有的回答重点放在「小电流转大电流」这个点上,但我认为这不是问题重点。

试问,你用单片机控制,就不需要小电流转大电流了吗?所以我回答的重点没放在这上面。

(再较真下去,单片机也属于电脑的子集,所以「如何在不使用单片机等的情况下直接用电脑控制电机?」这个问题也是有毛病的)

    • *
  1. 建议追更,想到再写。如破百赞,再补干货。
  2. 有缺来找,欢迎来扰。不限工作,闲聊也行。

原网址: 访问
创建于: 2023-10-31 12:38:08
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论