- 发帖可能变空内容,邪门暂不知所以然
- 『稷下学宫』新认证方式,24年网站打算和努力目标
主题:发个小广告 linux, android 编程,电机控制 -- 雷达
我之前在RPi上做过类似的东西,用来控制一个实验用的自动化平台,涉及步进电机和伺服电机的控制。这个是内部使用,代码不能公开,但是估摸设计的思路对你还是有帮助的。
首先我没用USB来控制。我个人的经验是USB在工控环境下可靠性太差。涉及USB的板载设计及布线要求深厚的经验,否则在有干扰的环境中经常性地随机丢连接。我自己缺乏这样的经验,在实际工作中我也发现过很多市售的组件设计不良,所以我能避开USB就避开USB。还有一个很重要地原因是很难或者不可能在USB上实现实时控制,因为这要求自行编写USB host controller的驱动,否则其他USB设备的中断请求会破坏程序实时性的保证。不过后一个原因不是主要原因,因为在我们的项目中PC发给RPi的命令并不要求实时,RPi控制电机的操作才是实时的。我是用以太网连接PC和RPi,然后RPi通过SPI和串口控制电机控制电路。
然后是控制程序。我选择LinuxCNC(EMC2)作为基础。这里我强烈推荐LinuxCNC,首先它实现了闭环控制的算法,我不需要从头写这一部分。然后就是它的一堆优点:开源,很容易移植到RPi上;有一堆模块,例如G-code的解码和多种图形控制界面;它也有一个良好的设计框架,实时部分和非实时部分有清晰的划分。基于LinuxCNC我只需要编写控制电机控制板的模块。
然后是电机控制。如果要求不高用RPi做软实时就行。网上很容易搜到为RPi编译Xenomai内核的教程。我为了省事,每一个电机用一块ARM单片机做硬实时,RPi通过SPI和ARM单片机通讯。然后RPi上跑一个控制界面,可以让用户通过web,或者通过telnet,控制自动化平台的运行。
- 相关回复 上下关系8
🙂那EPCIS的优势是什么呢? 时常数 字347 2014-07-22 15:42:42
🙂简单说吧,EPICS能把技术男从简单重复劳动中解放出来 1 田舍郎 字765 2014-07-24 23:07:19
🙂楼主再次礼貌送花 雷达 字53 2014-07-22 09:59:00
🙂谈谈我的方案
🙂我这边有Linux高手和步进电机控制的经验。 友来有趣 字1 2014-06-15 09:00:39