也秀一下俺的自平衡车-------上传视频了!!
本帖最后由 migrantcn 于 2013-1-30 20:25 编辑开机后电机很久才动作的问题解决了,是因为Kalman滤波的原因,可能Kalman滤波需要很长时间才能平衡吧。
我把卡尔曼滤波换成互补滤波,打开就能马上平衡。
其实互补滤波挺好的,速度也快,而且不用那么多变量,不用使用xdata了。见视频(宝宝录的,有点晃,大家见谅啊)
http://v.youku.com/v_show/id_XNTA5MDEwNjc2.html
===============
零零碎碎花了1周的业余时间,俺的自平衡车也成了,感谢rantinging的帖子:http://www.amobbs.com/thread-5509883-1-1.html 给了我很多帮助
只是现在站的不太稳当,感觉重心可能太高了,或者参数还需要再调整一下
另外就是开机后电机要过很久才开始动作,估计两个可能:
(1)是驱动板能力不够(单个电机电流最大1.5A,L298似乎最大2A,工作一会儿散热片就很烫了)
(2)是电机PWM死区太大)
http://v.youku.com/v_show/id_XNTA4ODU5OTQ4.html
先秀一下图片吧,视频正在上传。
STC12C5A60S2&22.1184MHz
MPU-6050 六轴
1602液晶屏
6V直流减速电机(大扭矩)+L298电机驱动
7.4V锂电
蓝牙遥控
PS:PID参数调节好费劲,我弄了个蓝牙手机遥控调节的,通过1602液晶屏显示参数 第一次上传视频,不知道还需要审核过程,等晚上再把链接放上来吧 没看到视频 不错,支持! 我也是按他给的做的要等很久电机才有反应不过我现在卡在采集mpu6050的数据这一步{:sad:}你是怎么做的?????? 怎么调试????车站不起来啊 求视频啊,楼主!!!需要交流加QQ群:157052194 本帖最后由 migrantcn 于 2013-1-30 16:40 编辑
123bac 发表于 2013-1-30 15:47 static/image/common/back.gif
我也是按他给的做的要等很久电机才有反应不过我现在卡在采集mpu6050的数据这一步你是怎么做的??? ...
这个有相关的例程吧,我其实是先按自己的思路搞的(论坛当时要月初才能发短信要邀请码,看不到代码,昨天晚上看到开放注册了,我才得到他的代码,就连夜给搞出来了)
我买6050模块的时候网上搜了些示例代码,稍微调整就能用了。我现在还想试试互补滤波,等程序调整的再好一些也传上来
PS:视频上传了 你是怎么调参数的 123bac 发表于 2013-1-30 17:19 static/image/common/back.gif
你是怎么调参数的
我刚才讲了,我做了一段用蓝牙串口模块遥控的代码,用各个按键分别控制4个参数的加减,同时在液晶屏上显示,这样就可以快速调节4个参数,不用一次次的下载程序了。
参数首先把位移和速度的参数设为0,调节倾角和倾角速度比例参数,使得小车能站立;
之后调节位移和速度参数,使得小车不会往一个方向跑,轻轻推一下应能振荡回来,并逐渐静止,不会太大幅度来回振荡即可。
--------------
另外,我把卡尔曼滤波换成互补滤波,解决了开机很久电机才启动的问题,打开就能马上平衡。
可能Kalman滤波需要很长时间才能平衡吧。
其实互补滤波挺好的,速度也快,而且不用那么多变量,不用使用xdata了。
稍后视频通过审核后我传个修改后的效果 hijxyz_k999 发表于 2013-1-30 17:40 static/image/common/back.gif
楼主用什么电机的??好用不??
http://item.taobao.com/item.htm?id=14207730367
我买的这个电机,好像就是rantinging推荐的那个店子的电机;
他店里还有一种12V的,我想用我之前买的7.4V锂电,就选的6V的电机;
6V的比12V的电流大很多,也长一些。大家可以通过图片和视频看到,我的车两轮之间的距离比较大,就是因为电机太长了
电机使用起来还行,扭矩很大。
LZ的PWM是怎么给我0是100%还是255是100%?? bfk2003 发表于 2013-1-30 20:22 static/image/common/back.gif
LZ的PWM是怎么给我0是100%还是255是100%??
我用的是STC12C5A60S2自带的2路PWM,默认给255是不转。我简单用255减去所需给的电机参数(255 -> 100%),然后输出给PWM migrantcn 发表于 2013-1-30 20:30 static/image/common/back.gif
我用的是STC12C5A60S2自带的2路PWM,默认给255是不转。我简单用255减去所需给的电机参数(255 -> 100%) ...
不知道LZ注意没有rantingting 程序中
void PWM_Calcu(void)
{
if(Angle<-40||Angle>40) //角度过大,关闭电机
{
CCAP0H = 0;这里上面注释说的关电机不应该是255吗?
CCAP1H = 0;
return;
}
void Init_Motor()
{
CCAP0H = 255; //关闭PWM0输出
CCAP1H = 255; //关闭PWM1输出
EN12 = 0; //关闭左电机
EN34 = 0; //关闭右电机
}
这两个地方的CCAPH值和注释有点矛盾,LZ是怎么解决的 电机方向判定有点不清楚,能说一下编码器输出波形前进和后退具体有什么不同吗? 就是外部中断里要判断的++还是--的依据是怎么得来的
是不是正反转信号给中断的和给判断++还是--的信号是相差0度或者90度??? bfk2003 发表于 2013-1-30 20:35 static/image/common/back.gif
不知道LZ注意没有rantingting 程序中
void PWM_Calcu(void)
{
是的,这个我也注意到了,但我没细想。
我没用rantinging的代码,因为最开始我没有论坛邀请码,是自己一个一个模块逐步测试实现的,我的这段代码如下:
PWM_L和PWM_R是输入参数,0为停止,+255为正向最快,-255为负向max。
因为我的电机额定电压6V,峰值电流1.5A左右。我怕烧驱动,就适当的设置了个阈值,有效输入是-235 --> +235
/************************************************************************/
/*PWM输出子函数*/
void PWM_output(int PWM_L,int PWM_R)
{
if (PWM_L<0) //左轮后退
{
motoL_B;
PWM_L=-PWM_L;//-40;
}
else //左轮前进
motoL_F;
if (PWM_L>235) PWM_L=235;
CCAP0H = 255-PWM_L; //set PWM wide 0:fastest 255:slowest
/*==================================*/
if (PWM_R<0) //右轮后退
{
motoR_B;
PWM_R=-PWM_R;//-40;
}
else //右轮前进
motoR_F;
if (PWM_R>235) PWM_R=235;
CCAP1H = 255-PWM_R; //set PWM wide 0:fastest 255:slowest
} migrantcn 发表于 2013-1-30 20:44 static/image/common/back.gif
是的,这个我也注意到了,但我没细想。
我没用rantinging的代码,因为最开始我没有论坛邀请码,是自己一 ...
嗯,谢谢LZ你的程序要清楚多了 bfk2003 发表于 2013-1-30 20:38 static/image/common/back.gif
电机方向判定有点不清楚,能说一下编码器输出波形前进和后退具体有什么不同吗? 就是外部中断里要判断的++ ...
这个你可以参考一下那个码盘的说明,
首先需要核实安装,最好有个示波器,保证安装后两个信号有相位差即可;
也就是一个信号的下跳沿对应另外一个信号要么是高电平,要么是低电平。从这里即可判断方向 LZ能吧你的程序传一份给我吗?我学习一下 分享啊。。。。。。。 bfk2003 发表于 2013-1-30 21:00 static/image/common/back.gif
LZ能吧你的程序传一份给我吗?我学习一下
代码我正在优化、整理+注释,完成后会传上来的,这两天放假前事情比较多,估计得过几天 本帖最后由 371278638 于 2013-1-31 19:15 编辑
请问楼主的电机存在回差么?貌似楼主的参数可以再优化一些..... 371278638 发表于 2013-1-31 19:03 static/image/common/back.gif
请问楼主的电机存在回差么?貌似楼主的参数可以再优化一些.....
啥是回差?是参数差异还是……?
参数我试了很多,总是不很好,也许是滤波问题?等有时间再琢磨一下 migrantcn 发表于 2013-1-31 19:38 static/image/common/back.gif
啥是回差?是参数差异还是……?
参数我试了很多,总是不很好,也许是滤波问题?等有时间再琢磨一下 ...
就是电机齿轮间的间隙导致小车一直来回晃动.....我做的小车就是回差的原因一直轻微的晃......不过卡尔曼滤波8位机应该可以带的起来的样子很奇怪怎么你的机子会有这种反应。 我的电机也是这款,感觉轮子晃动比较大,楼主的是不是也这样呀?
http://www.amobbs.com/thread-5515880-1-1.html
楼主能不能分享一下程序呀,freebird_sp@163.com。这里先谢谢了。 bfk2003 发表于 2013-1-30 20:38 static/image/common/back.gif
电机方向判定有点不清楚,能说一下编码器输出波形前进和后退具体有什么不同吗? 就是外部中断里要判断的++ ...
编码器A、B两个信号正好差90相位差。假如,A接中断,B是参考信号。如果正转时,信号时序向右,A信号的下降沿触发正好是B为低电平。反转时,信号时序向左,A信号的下降沿对应的是B为高电平,所以通过中断检查B信号的高低电平就可以检测方向了。
freebird_sp 发表于 2013-2-3 20:00 static/image/common/back.gif
我的电机也是这款,感觉轮子晃动比较大,楼主的是不是也这样呀?
http://www.amobbs.com/thread-5515880-1- ...
看了你的平衡车,的确是一样的电机,是有间隙,来回晃动应该也有这个的原因,正如371278638指出的。
另外一个原因也许是:6050安装在车的顶上,角加速度引起的加速度可能比较大,引起角度测量误差的问题?
反正我调了很久的参数了,始终没有更好的效果,要么就是振荡加大,要么就是反应迟钝。
我用Kalman滤波的时候也跟你的现象一样,等半天没反应(我开始还以为是驱动模块的驱动能力问题),然后突然开始狂转,放地上就能站住了。
你的没有位移环反馈(编码盘),我把位移环参数都调零也是往一个方向使劲跑,然后趴下。你试试加个编码盘,或者像坛子里有人说的用PWM值当速度参数的方法(不过这个方法我也没试过)
过年回家了,程序是在我办公室的电脑上,年后我整理了就传上来,交流一下。
现在看别人弄的载人的车车,心里有点痒,也想筹划着弄一个…… migrantcn 发表于 2013-1-31 18:23 static/image/common/back.gif
代码我正在优化、整理+注释,完成后会传上来的,这两天放假前事情比较多,估计得过几天 ...
mark,楼主能不能分享一下程序!
Thank you. 本帖最后由 zxzxhhhhh 于 2013-2-7 14:11 编辑
顶 也在做,希望这几天弄出来{:smile:} 请教下楼主 你的MCU是哪个型号的。。用手机做控制是通过什么原理??问题比较小白,但很感兴趣 RyanGabel 发表于 2013-2-8 11:02 static/image/common/back.gif
请教下楼主 你的MCU是哪个型号的。。用手机做控制是通过什么原理??问题比较小白,但很感兴趣 ...
STC12C5A60S2
手机蓝牙串口方式控制,具体的请查论坛或者google 楼主的手机控制端能否上传分享一下,,,,,,,,,,,,, 楼主资料能不能分享一下1164512033@qq.com 楼主 手机控制端 分享一下吧~~~ 求楼主蓝牙手机程序 楼主方便把你的程序里的以下四个参数公布一下吗?
static float code Kp= 8.0; //PID参数-角度
static float code Kd= 2.0; //PID参数-角速度
static float code Kpn = 0; //PID参数-位移
static float code Ksp = 0; //PID参数-速度 平衡效果跟我的一样烂!!! lz的采样周期是多长?用的是mpu6050读取,用卡尔曼和互补滤波都没搞定,现象是来回晃动几下就直接趴下了,lz有没经验教下。。。卡住了 migrantcn 发表于 2013-1-30 20:13 static/image/common/back.gif
我刚才讲了,我做了一段用蓝牙串口模块遥控的代码,用各个按键分别控制4个参数的加减,同时在液晶屏上显 ...
为什么我加入速度位移控制参数,车只会往一边倾倒 怎么调整都没用不加 还更稳什么问题啊 楼主好样的,分享一下资料哦 楼主,我遇到了可你同样的问题,车子加电后要等一段时间才有反应,我用的是卡尔曼滤波。但问题是,我开始单独测6050的时候用的也是卡尔曼滤波,用数码管显示,但是加点后是立刻有反映的。能不能帮我解决下,谢谢了!你的qq杜少?我的是1377379144,楼主加我,或告诉我你的号码也行!谢过了先! 坐等楼主解答啊 强烈建议楼主发布资料!!!!!!! migrantcn 发表于 2013-1-30 20:13 static/image/common/back.gif
我刚才讲了,我做了一段用蓝牙串口模块遥控的代码,用各个按键分别控制4个参数的加减,同时在液晶屏上显 ...
你好啊,我现在车站稳,然后加入速度和位置,车推一下总会向一个方向走,想问与position有关系吗谢谢 clarepeng 发表于 2013-3-21 14:23 static/image/common/back.gif
为什么我加入速度位移控制参数,车只会往一边倾倒 怎么调整都没用不加 还更稳什么问题啊...
我也是,请问你解决了吗
学习一下 {:sad:}分享啊 期待楼主发布资料,学习学习{:victory:} clarepeng 发表于 2013-3-21 14:23 static/image/common/back.gif
为什么我加入速度位移控制参数,车只会往一边倾倒 怎么调整都没用不加 还更稳什么问题啊...
哈哈,哥们,我和你的问题一样,加上速度换就不稳定了 楼主,我的小车和你一样也是用rantinging前辈 的硬件和代码,但是我的小车只能平稳站立,前进后退运动时小车都会趴地!请问这个问题您能帮忙指点一下吗?非常 感 谢!! 为什么没发布程序呢? 楼主的蓝牙控制软件不错啊,能不能上传上来 看看学习学习 早就想做一个了,谢谢楼主 好东西,感谢楼主共享
页:
[1]