Arduino编码器小车左右转速同步的PID调节实验
本帖最后由 宜昌城老张 于 2013-6-6 17:57 编辑制作模型车的DIY爱好者会有这样的经验,你给小车左右两侧轮子的驱动电机同样的功率值,但两个轮子的转速可能是不一样,而且不同功率值下,两个轮子的转速差也不一样。当然如果两个轮子在行进过程中,分别遇到的阻力不一样时,两个轮子的转速也会发生偏差。这样的左右两轮转速不一致,就会反映在小车不能走直线上,这是让DIY爱好者头痛的事!
如果驱动轮子的电机安装了编码器,情况会如何?编码器这样的传感器是可以测量转速和转角的。如果把左右电机中编码器反馈的转速送入Arduino单片控制器中,计算机就会知道小车不能走直线的真正原因,并实时计算出两轮的转速差,然后可以设立一个PID算法,让转速慢轮子的电机功率值加大,从而消除车轮的转速差。这就是最简单的PID控制理论应用到实践中的一次尝试吧。
我们在大学学到了很多、甚至更高深的理论,但有机会实践这些理论的机会少之又少,其实制作DIY模型,就可以方便地去实践这些理论的。为这次的理论实践,我采用的模型是DFRobot公司出品的mini编码器小车。
如何才能直观地看到小车左右车轮电机转速和功率值的变化以及PID比例调节的效果,小车上的Arduino单片机控制器是做不到这点的,我采用的是上位机LabVIEW制作的前面板作为人机交互的界面,来实现对它们的监控。Arduino控制器作为下位机,接受上位机的小车左电机功率值,并把左右电机的转速和PID调节后右电机的功率值反馈到上位机去显示出来。上下位机的串口通信采用了XBee 1mW Zigbee100米传输无线数传模块套装,目的是使USB有线通信变为无线通信模式。
全文见博客文章:http://www.eefocus.com/zhang700309/blog/13-06/294572_38be0.html。 楼主自己研制的??? 我的新浪Qing博客:http://qing.blog.sina.com.cn/yichangzhang 学慧放弃 发表于 2013-6-6 18:36 static/image/common/back.gif
楼主自己研制的???
这家伙是头教授! bacon6581 发表于 2013-6-7 06:22 static/image/common/back.gif
这家伙是头教授!
哈哈~······················ 现有两个输入信号,A为每转一个信号,B是每转360个信号,我想实现以下功能:接收到A的信号后,对B进行计数到180,此时输出一个信号C,请大家指导一下,本人新手?能否用中断计数,或者其他周期查询B信号计数,谢谢大家.
请问楼主上面用的labview是哪个版本的? 弯曲的时间 发表于 2013-7-26 15:02 static/image/common/back.gif
请问楼主上面用的labview是哪个版本的?
2010,应该2012也不错,它有个金属控件主题。 Serial.print(rpm1_HIGH,BYTE);//向上位计算机上传左车轮电机当前转速的高、低字节
Serial.print(rpm1_LOW,BYTE);
Serial.print(rpm2_HIGH,BYTE);//向上位计算机上传右车轮电机当前转速的高、低字节
Serial.print(rpm2_LOW,BYTE);
Serial.print(val_right,BYTE);// 向上位计算机上传PID调节后的右轮电机PWM功率值 不再支持BYTE关键字街!!! 老张~这个转速你是怎么计算得到的?我的编码盘是输出方波信号,如何不中断实时计算转速?{:soso_e132:} 看起来还不错!!!!!!! 感謝分享 哈哈~······················ diao兵 发表于 2014-3-1 10:11
**** 作者被禁止或删除 内容自动屏蔽 ****
同问,怎么才能测量电机转速
页:
[1]