如何实现多路舵机的精确控制
作者:raker   文章来源: http://gongkong.gkbk.com    更新时间:2007年04月05日   打印此文    浏览数:

为什么FPPA就可以很方便地将脉宽的精度精确地控制在2微秒甚至2微秒一下呢。主要还是 delay memory这样的具有创造性的指令发挥了功效。该指令的延时时间为数据单元中的立即数的值加1个指令周期(数据0出外,详情请参见delay指令使用注意事项)因为是8位的数据存储单元,所以memory中的数据为(0~255),记得前面有提过,舵机的角度级数一般为1024级,所以只用一个存储空间来存储延时参数好像还不够用的,所以我们可以采用2个内存单元来存放舵机的角度伺服参数了。所以这样一来,我们可以采用这样的软件结构了:


程序原理可以是这样的:

pushw pwm0 ; //注意这里的pwmn指第n路的pwm参数值,是个16位数

//据存放空间,相信8位机中一次操作个16位数据也是首见吧

popw pwmtemp; //将16位数据移动到一个临时空间

set1 s_motor0_drv

call pwm_delay

set0 s_motor0_drv

;

pushw pwm1

popw pwmtemp

set1 s_motor1_drv

call pwm_delay

set0 s_motor1_drv

按这样写下去,一路PC写7个这样的伺服也一点不紧张的,因为PWM的周期是20毫秒,而最大脉宽才2.5毫秒,7*2.5=17.5毫秒。写完了所有的脉冲后又做什么,跳回再等待下一个20毫秒有效的信号量。而20毫秒的信号量从哪里来,因为多核心,当然可以随便拿个工作频率低点的CPU来产生啦。这样一来,一颗14PIN的FPPA ,PDK80C02-SOP14就可以通过无线或者红外来精确控制7路舵机。

也许各位同行有比这更厉害的处理方法,希望可以拿出来一起分享下,谢谢!

/*非常感谢raker提供的原创文章*/

原文链接:http://www.roboticfan.com/robot/bbs/dispbbs.asp?boardid=19&ID=4765


首页 上一页 1 2 下一页 尾页 跳转到

转载声明:凡文章出处为www.RoboticFan.com的,系本站的原创文章。其它媒体在注明出处为RoboticFan.com并给出原始链接后可以自由转载,否则将视为侵权!

上一篇:舵机-机器人的肌肉 下一篇:机器人制作指南—驱动器(4)

最近更新
  • 世嘉玩具与孩之宝将上市音乐机器人
  • Vstone携手KumoTek推出KT-X类人机器人系列
  • iRobot军用机器人最新杰作:“金属风暴”
  • 机器人工具包开始预定
  • 迪士尼与WowWee联手打造Wall-E系列产品
  • Arduino-目前为止最容易开发的控制板
  • 微软发布Robotics Developer Studio 2008 CTP
  • roBlocks——“块状”机器人
  • 后AIBO时代的机器狗——G-dog
  • 机器恐龙Pleo升级战

  • 相关文章

    推荐新闻

    赞助商广告