打印

学生党的TI路。

[复制链接]
3047|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
王项电子|  楼主 | 2013-11-26 12:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  回首11月,在放弃用大量原件搭建全H桥之后,迅速进入匆忙的电机驱动选择中。
  飞思卡尔,瑞萨,德州仪器,意法半导体,其中TI的DRV88XX系列,飞思卡尔的YMSxx系列,意法的L29X系列,TI的封装非常小,飞思卡尔无法购买,意法半导体未达设计要求,好在万能的x宝又帮了我,弄了一款国产的的玩具电机驱动IC L9110,最低2V的供电,单通道,连续700ma的持续电流,峰值1.5A,非常适合我的设计要求。这片子导通后有0.7V压降,估计是多基极硅三极管构成的。这家伙和TI的控制方式相同,好在之前设计H桥时积累的经验,在其输入端加入了一片74HC08.两个与门共用一个输入段,作为PWM输入,另外两个端口做方向选择,这样方便程序控制,调速与方向控制不相互干扰。另外一种方案可以不用74HC08,用软件的方法解决,即在L9110一个输入端口接PWM输入,另外一个端口接IO.只需要改变PWM相位与IO状态即可实现调速与方向控制,考虑到PWM是由MSP430G2553的timer1产生,自己对这个片子不是非常熟悉,放弃了该方案。
电机驱动告一段落,接着是测速方面。
在X宝上买了某星相机镜头配件,5块一个,拆出了两个红外对管,一个码盘,这个码盘不是一点点坑,就只有三个齿,在找了些文献后果断放弃该码盘,怀着忐忑的心态又上了淘宝,万能的淘宝又帮了我一把,找了一个8个齿的码盘,一毛一个,哈哈,立即入手10个,其实8个也不够,好在精度能控制在正负±1之内,拆出来的红外对管  挺给力的,体积非常小,电路简单,只需要两个电阻就搞定,买码盘的时候顺便买了十来个红外对管,图片上看比较小,卖家也给了尺寸表,可我没有大小的立体感,买回来比相机上拆下来的体积大了一圈,不太贵,就没有退货,留着以后用吧。
  电源只设计了充电电路,充电电路参考了圆点博士的小四轴,还是用国产的芯片,TI的没敢用,担心后期不好购买,不得不说国产在某方面是非常实用的。
  至此平衡小车的硬件部分全部完成,进入软件设计。
  只是因为TI的一句“让工程师专注与算法实现,而不是使用单片机”,用了TI的一个新软件Grace,全英文界面,网上有简单的使用方法,照猫画虎后还是不会用,就一个接一个的翻译,在经历多次失败后终于顺利使用上该软件,国际大厂就是有远见,对于我这种学生党,基础差,无经验,Grace就是万能钥匙,需要什么功能,勾勾选选就可实现,比较坑的是不知道如何在生成的代码中添加自己的代码,只好复制出来,粘贴到IAR中编译。通过Grace的帮助,很快对MSP430G2553的硬件有了了解,便开始编写测速的代码。
  由于暑假写过一次T法测速,当时没有上位机支持,只能将测得的结果和示波器进行比较,无法得到精确度,算是一次失败的尝试,当时的电机转速输出脉冲频率比较高,测速码盘100个齿,又是直接接在电机上的,用T法是错误的选择,稍次的方式是用M法,并且测速精度比较高,就算误差在±10以内,那相对与电机只转过3.6°,精度是比较高的。平衡小车的硬件决定本次使用T法比较合适,工作时输出频率在200HZ~3KHZ之间,可是MSP430G2553的封装有20脚与28脚两种,20脚的timer0与timer1不能同时使用,由于引脚共用的原因,如果timer1用于产生两路PWM信号,那么timer0只能使用一半的功能,另外一半由于没有引脚可用导致无法使用。我手上有这两种片子,SOP封装,TI的东西大家都知道,封装小是其普遍特点,所以没办法手工制板。因此只能放弃T法测速,在最终制板的时候使用28脚的封装。M法测速由遇到了难点,测速周期是多少,在多长时间内测脉冲个数?试探性的将测速时间定为50ms,效果还不错,可测速时间过长,影响系统的实时性,逐渐缩短测速时间,最终定在10ms,速度输出范围在0~30之间,符合小车需求。
  完成了测速,进入MPU6050传感器的通信方面。
比较懒吧,百度了下,果然找到驱动程序,简单修改了下就可使用,输出角度输出范围在-6000~6000之间,陀螺仪的输出未测。
  再是电机控制,PID对我来说是一片空白,也想会使用PID,在看了很多资料之后对PID有了简单的认识,如果系统输入与设定值之间差值过大,P将产生快速反应,提高系统灵敏度,可是存在一个问题是无法达到设定值,那么I将起到作用,I对未达到设定值之前的所有误差产生作用,又存在一个问题是很长时间才能达到设定值,那么D将起到作用,D对前后两次误差的变化率起到作用,变化率越大,D的作用就月明显,故可快速达到设定值。
在调节PID参数的时候犯了一个错误,就是用手阻止电机旋转,即外界干扰不稳定,导致速度输出周期性变化。还有是PID各个参数类型的定义,累计误差开始使用了INT类型,计数范围比较小,频繁溢出,溢出后PID计算结果立即变成负最大,导致电机立即反向高速旋转,将INT改为LONG后改善了这个问题,但又存在如果电机抱死一段时间后,恢复电机自由,电机在一段时间内高速旋转,等待后才达到稳定,至今未解,由于实际不会存在这种问题,故跳过,留作以后研究。
  电机控制搞定,传感器搞定,进行最后的工程整合。
  在初期的时候,各个模块工作的非常和谐,可是不知道更改了那里,系统上电后,串口只能输出一段时间,一段时间后就不在输出,其他模块正常工作,分析问题,系统中存在三个中断,测速用的IO口中断,MPU6050的IIC中断,还有就是串口发送完成中断,IO口中断影响串口的几率比较小,IO中断频率较低,那么就是IIC中断,可是,IIC中断不能禁止,问题未解。
  这是一个小问题,更严重的问题是我自己的问题,长时间的无解,开始烦躁,仿佛整个世界都是灰暗的,因此提醒到自己,生活中不能只有单片机,还必须有别的东西,**蛋不能放在一个篮子中。
  写到这里没有什么可以在写下去的了,仅希望大神们能给我一些指点,让我突破这侧障碍。谢谢。

相关帖子

沙发
dirtwillfly| | 2013-11-26 14:19 | 只看该作者
谢谢分享

使用特权

评论回复
板凳
黄小俊| | 2013-11-26 15:57 | 只看该作者
进入串口中断关掉中断开关可以吗?

使用特权

评论回复
地板
comeon201208| | 2013-11-27 19:07 | 只看该作者
谢谢分享,很好的经验介绍的

使用特权

评论回复
5
angerbird| | 2013-11-27 22:33 | 只看该作者
这个很有参考意义的啊,谢谢分享的

使用特权

评论回复
6
nqyijian| | 2013-11-28 15:04 | 只看该作者
顶你一下下

使用特权

评论回复
7
zjxcml| | 2013-11-29 10:04 | 只看该作者
谢谢分享

使用特权

评论回复
8
puchuang| | 2013-11-29 18:43 | 只看该作者
好东西    楼主    谢谢你的分享     谢谢了    这一块    要花时间   好好看看

使用特权

评论回复
9
xuejinlong12| | 2013-12-3 15:26 | 只看该作者
好友心得 有收获啊

使用特权

评论回复
10
liuyang8023| | 2013-12-3 16:37 | 只看该作者
大二了  时间很快啊

使用特权

评论回复
11
pmp| | 2013-12-4 15:42 | 只看该作者
给力的。

使用特权

评论回复
12
wsadadws| | 2013-12-5 11:24 | 只看该作者
加油,挺棒的

使用特权

评论回复
13
RightIC| | 2013-12-6 17:37 | 只看该作者
加油哦!!!

使用特权

评论回复
14
深圳闪电侠| | 2013-12-6 21:43 | 只看该作者

使用特权

评论回复
15
xhloes大龙| | 2013-12-8 21:58 | 只看该作者
学习。。

使用特权

评论回复
16
十年一等待| | 2013-12-9 12:44 | 只看该作者
这学生党

使用特权

评论回复
17
woairgzn| | 2014-3-20 23:15 | 只看该作者
好棒

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我是菜鸟,我高兴,我自豪,。因为不久我就会成为老鸟,。

18

主题

112

帖子

1

粉丝