搜索
bottom↓
回复: 55

也秀一下俺的自平衡车-------上传视频了!!

[复制链接]

出0入0汤圆

发表于 2013-1-30 13:53:37 | 显示全部楼层 |阅读模式
本帖最后由 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液晶屏显示参数

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2013-1-30 14:06:03 | 显示全部楼层
第一次上传视频,不知道还需要审核过程,等晚上再把链接放上来吧

出0入0汤圆

发表于 2013-1-30 14:09:42 | 显示全部楼层
没看到视频

出0入4汤圆

发表于 2013-1-30 15:19:19 | 显示全部楼层
不错,支持!

出0入0汤圆

发表于 2013-1-30 15:47:15 | 显示全部楼层
我也是按他给的做的要等很久电机才有反应不过我现在卡在采集mpu6050的数据这一步你是怎么做的??????

出0入0汤圆

发表于 2013-1-30 15:54:55 | 显示全部楼层
怎么调试????车站不起来啊

出0入0汤圆

发表于 2013-1-30 16:13:06 | 显示全部楼层
求视频啊,楼主!!!需要交流加QQ群:157052194

出0入0汤圆

 楼主| 发表于 2013-1-30 16:36:39 | 显示全部楼层
本帖最后由 migrantcn 于 2013-1-30 16:40 编辑
123bac 发表于 2013-1-30 15:47
我也是按他给的做的要等很久电机才有反应不过我现在卡在采集mpu6050的数据这一步你是怎么做的??? ...


这个有相关的例程吧,我其实是先按自己的思路搞的(论坛当时要月初才能发短信要邀请码,看不到代码,昨天晚上看到开放注册了,我才得到他的代码,就连夜给搞出来了)

我买6050模块的时候网上搜了些示例代码,稍微调整就能用了。我现在还想试试互补滤波,等程序调整的再好一些也传上来


PS:视频上传了

出0入0汤圆

发表于 2013-1-30 17:19:16 | 显示全部楼层
你是怎么调参数的

出0入0汤圆

 楼主| 发表于 2013-1-30 20:13:26 | 显示全部楼层
123bac 发表于 2013-1-30 17:19
你是怎么调参数的

我刚才讲了,我做了一段用蓝牙串口模块遥控的代码,用各个按键分别控制4个参数的加减,同时在液晶屏上显示,这样就可以快速调节4个参数,不用一次次的下载程序了。

参数首先把位移和速度的参数设为0,调节倾角和倾角速度比例参数,使得小车能站立;
之后调节位移和速度参数,使得小车不会往一个方向跑,轻轻推一下应能振荡回来,并逐渐静止,不会太大幅度来回振荡即可。
--------------
另外,我把卡尔曼滤波换成互补滤波,解决了开机很久电机才启动的问题,打开就能马上平衡。
可能Kalman滤波需要很长时间才能平衡吧。
其实互补滤波挺好的,速度也快,而且不用那么多变量,不用使用xdata了。

稍后视频通过审核后我传个修改后的效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-1-30 20:18:55 | 显示全部楼层
hijxyz_k999 发表于 2013-1-30 17:40
楼主用什么电机的??好用不??

http://item.taobao.com/item.htm?id=14207730367
我买的这个电机,好像就是rantinging推荐的那个店子的电机;
他店里还有一种12V的,我想用我之前买的7.4V锂电,就选的6V的电机;
6V的比12V的电流大很多,也长一些。大家可以通过图片和视频看到,我的车两轮之间的距离比较大,就是因为电机太长了

电机使用起来还行,扭矩很大。

出0入0汤圆

发表于 2013-1-30 20:22:10 | 显示全部楼层
LZ的PWM是怎么给我0是100%还是255是100%??

出0入0汤圆

 楼主| 发表于 2013-1-30 20:30:51 | 显示全部楼层
bfk2003 发表于 2013-1-30 20:22
LZ的PWM是怎么给我0是100%还是255是100%??

我用的是STC12C5A60S2自带的2路PWM,默认给255是不转。我简单用255减去所需给的电机参数(255 -> 100%),然后输出给PWM

出0入0汤圆

发表于 2013-1-30 20:35:25 | 显示全部楼层
migrantcn 发表于 2013-1-30 20:30
我用的是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入0汤圆

发表于 2013-1-30 20:38:20 | 显示全部楼层
电机方向判定有点不清楚,能说一下编码器输出波形前进和后退具体有什么不同吗? 就是外部中断里要判断的++还是--的依据是怎么得来的

出0入0汤圆

发表于 2013-1-30 20:40:32 | 显示全部楼层
是不是正反转信号给中断的和给判断++还是--的信号是相差0度或者90度???

出0入0汤圆

 楼主| 发表于 2013-1-30 20:44:23 | 显示全部楼层
bfk2003 发表于 2013-1-30 20:35
不知道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
}

出0入0汤圆

发表于 2013-1-30 20:53:07 | 显示全部楼层
migrantcn 发表于 2013-1-30 20:44
是的,这个我也注意到了,但我没细想。
我没用rantinging的代码,因为最开始我没有论坛邀请码,是自己一 ...

嗯,谢谢LZ你的程序要清楚多了

出0入0汤圆

 楼主| 发表于 2013-1-30 20:58:10 | 显示全部楼层
bfk2003 发表于 2013-1-30 20:38
电机方向判定有点不清楚,能说一下编码器输出波形前进和后退具体有什么不同吗? 就是外部中断里要判断的++ ...

这个你可以参考一下那个码盘的说明,
首先需要核实安装,最好有个示波器,保证安装后两个信号有相位差即可;
也就是一个信号的下跳沿对应另外一个信号要么是高电平,要么是低电平。从这里即可判断方向

出0入0汤圆

发表于 2013-1-30 21:00:07 | 显示全部楼层
LZ能吧你的程序传一份给我吗?我学习一下

出0入0汤圆

发表于 2013-1-30 22:34:15 | 显示全部楼层
分享啊。。。。。。。

出0入0汤圆

 楼主| 发表于 2013-1-31 18:23:21 | 显示全部楼层
bfk2003 发表于 2013-1-30 21:00
LZ能吧你的程序传一份给我吗?我学习一下

代码我正在优化、整理+注释,完成后会传上来的,这两天放假前事情比较多,估计得过几天

出0入0汤圆

发表于 2013-1-31 19:03:21 | 显示全部楼层
本帖最后由 371278638 于 2013-1-31 19:15 编辑

请问楼主的电机存在回差么?  貌似楼主的参数可以再优化一些.....

出0入0汤圆

 楼主| 发表于 2013-1-31 19:38:04 | 显示全部楼层
371278638 发表于 2013-1-31 19:03
请问楼主的电机存在回差么?  貌似楼主的参数可以再优化一些.....

啥是回差?是参数差异还是……?
参数我试了很多,总是不很好,也许是滤波问题?等有时间再琢磨一下

出0入0汤圆

发表于 2013-1-31 20:15:11 | 显示全部楼层
migrantcn 发表于 2013-1-31 19:38
啥是回差?是参数差异还是……?
参数我试了很多,总是不很好,也许是滤波问题?等有时间再琢磨一下 ...

就是电机齿轮间的间隙导致小车一直来回晃动.....我做的小车就是回差的原因一直轻微的晃......不过卡尔曼滤波8位机应该可以带的起来的样子很奇怪怎么你的机子会有这种反应。

出0入0汤圆

发表于 2013-2-3 20:00:32 | 显示全部楼层
我的电机也是这款,感觉轮子晃动比较大,楼主的是不是也这样呀?
http://www.amobbs.com/thread-5515880-1-1.html
楼主能不能分享一下程序呀,freebird_sp@163.com。这里先谢谢了。

出0入0汤圆

发表于 2013-2-3 20:09:12 | 显示全部楼层
bfk2003 发表于 2013-1-30 20:38
电机方向判定有点不清楚,能说一下编码器输出波形前进和后退具体有什么不同吗? 就是外部中断里要判断的++ ...

编码器A、B两个信号正好差90相位差。假如,A接中断,B是参考信号。如果正转时,信号时序向右,A信号的下降沿触发正好是B为低电平。反转时,信号时序向左,A信号的下降沿对应的是B为高电平,所以通过中断检查B信号的高低电平就可以检测方向了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-2-4 10:19:26 | 显示全部楼层
freebird_sp 发表于 2013-2-3 20:00
我的电机也是这款,感觉轮子晃动比较大,楼主的是不是也这样呀?
http://www.amobbs.com/thread-5515880-1- ...

看了你的平衡车,的确是一样的电机,是有间隙,来回晃动应该也有这个的原因,正如371278638指出的。
另外一个原因也许是:6050安装在车的顶上,角加速度引起的加速度可能比较大,引起角度测量误差的问题?
反正我调了很久的参数了,始终没有更好的效果,要么就是振荡加大,要么就是反应迟钝。

我用Kalman滤波的时候也跟你的现象一样,等半天没反应(我开始还以为是驱动模块的驱动能力问题),然后突然开始狂转,放地上就能站住了。
你的没有位移环反馈(编码盘),我把位移环参数都调零也是往一个方向使劲跑,然后趴下。你试试加个编码盘,或者像坛子里有人说的用PWM值当速度参数的方法(不过这个方法我也没试过)
过年回家了,程序是在我办公室的电脑上,年后我整理了就传上来,交流一下。

现在看别人弄的载人的车车,心里有点痒,也想筹划着弄一个……

出0入0汤圆

发表于 2013-2-6 16:17:20 | 显示全部楼层
migrantcn 发表于 2013-1-31 18:23
代码我正在优化、整理+注释,完成后会传上来的,这两天放假前事情比较多,估计得过几天 ...

mark,楼主能不能分享一下程序!
Thank you.

出0入0汤圆

发表于 2013-2-7 12:32:43 | 显示全部楼层
本帖最后由 zxzxhhhhh 于 2013-2-7 14:11 编辑

顶 也在做,希望这几天弄出来

出0入0汤圆

发表于 2013-2-8 11:02:22 | 显示全部楼层
请教下楼主 你的MCU是哪个型号的。。用手机做控制是通过什么原理??问题比较小白,但很感兴趣

出0入0汤圆

 楼主| 发表于 2013-2-11 20:17:31 | 显示全部楼层
RyanGabel 发表于 2013-2-8 11:02
请教下楼主 你的MCU是哪个型号的。。用手机做控制是通过什么原理??问题比较小白,但很感兴趣 ...

STC12C5A60S2
手机蓝牙串口方式控制,具体的请查论坛或者google

出0入0汤圆

发表于 2013-2-17 16:43:19 | 显示全部楼层
楼主的手机控制端能否上传分享一下,,,,,,,,,,,,,

出0入0汤圆

发表于 2013-3-4 14:35:05 | 显示全部楼层
楼主资料能不能分享一下1164512033@qq.com

出0入0汤圆

发表于 2013-3-7 10:51:51 | 显示全部楼层
楼主 手机控制端 分享一下吧~~~

出0入0汤圆

发表于 2013-3-10 21:42:47 | 显示全部楼层
求楼主蓝牙手机程序

出0入0汤圆

发表于 2013-3-10 22:19:56 | 显示全部楼层
楼主方便把你的程序里的以下四个参数公布一下吗?
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参数-速度

出0入0汤圆

发表于 2013-3-11 00:30:14 | 显示全部楼层
平衡效果跟我的一样烂!!!

出0入0汤圆

发表于 2013-3-17 01:33:41 | 显示全部楼层
lz的采样周期是多长?用的是mpu6050读取,用卡尔曼和互补滤波都没搞定,现象是来回晃动几下就直接趴下了,lz有没经验教下。。。卡住了

出0入0汤圆

发表于 2013-3-21 14:23:01 | 显示全部楼层
migrantcn 发表于 2013-1-30 20:13
我刚才讲了,我做了一段用蓝牙串口模块遥控的代码,用各个按键分别控制4个参数的加减,同时在液晶屏上显 ...

为什么我加入速度位移控制参数,车只会往一边倾倒 怎么调整都没用  不加 还更稳  什么问题啊

出0入0汤圆

发表于 2013-3-26 16:22:17 | 显示全部楼层
楼主好样的,分享一下资料哦

出0入0汤圆

发表于 2013-4-9 11:13:21 | 显示全部楼层
楼主,我遇到了可你同样的问题,车子加电后要等一段时间才有反应,我用的是卡尔曼滤波。但问题是,我开始单独测6050的时候用的也是卡尔曼滤波,用数码管显示,但是加点后是立刻有反映的。能不能帮我解决下,谢谢了!你的qq杜少?我的是1377379144,楼主加我,或告诉我你的号码也行!谢过了先!

出0入0汤圆

发表于 2013-4-9 11:14:39 | 显示全部楼层
坐等楼主解答啊

出0入0汤圆

发表于 2013-4-10 13:54:30 | 显示全部楼层
强烈建议楼主发布资料!!!!!!!

出0入0汤圆

发表于 2013-4-14 22:16:40 | 显示全部楼层
migrantcn 发表于 2013-1-30 20:13
我刚才讲了,我做了一段用蓝牙串口模块遥控的代码,用各个按键分别控制4个参数的加减,同时在液晶屏上显 ...

你好啊,我现在车站稳,然后加入速度和位置,车推一下总会向一个方向走,想问与position有关系吗谢谢

出0入0汤圆

发表于 2013-4-14 22:17:30 | 显示全部楼层
clarepeng 发表于 2013-3-21 14:23
为什么我加入速度位移控制参数,车只会往一边倾倒 怎么调整都没用  不加 还更稳  什么问题啊  ...

我也是,请问你解决了吗

出0入0汤圆

发表于 2013-4-21 17:56:27 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2013-4-25 00:29:40 | 显示全部楼层
分享啊

出0入0汤圆

发表于 2013-5-4 12:12:50 | 显示全部楼层
期待楼主发布资料,学习学习

出0入0汤圆

发表于 2013-5-17 21:18:54 | 显示全部楼层
clarepeng 发表于 2013-3-21 14:23
为什么我加入速度位移控制参数,车只会往一边倾倒 怎么调整都没用  不加 还更稳  什么问题啊  ...

哈哈,哥们,我和你的问题一样,加上速度换就不稳定了

出0入0汤圆

发表于 2013-8-26 08:17:36 | 显示全部楼层
楼主,我的小车和你一样也是用rantinging前辈 的硬件和代码,但是我的小车只能平稳站立,前进后退运动时小车都会趴地!请问这个问题您能帮忙指点一下吗?非常 感 谢!!

出0入0汤圆

发表于 2014-8-26 21:47:33 | 显示全部楼层
为什么没发布程序呢?

出0入0汤圆

发表于 2014-9-5 16:35:51 | 显示全部楼层
楼主的蓝牙控制软件不错啊,能不能上传上来

出0入0汤圆

发表于 2015-3-19 00:11:14 | 显示全部楼层
看看学习学习

出0入0汤圆

发表于 2015-3-19 00:11:59 | 显示全部楼层
早就想做一个了,谢谢楼主

出0入0汤圆

发表于 2015-3-25 22:15:43 | 显示全部楼层
好东西,感谢楼主共享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 05:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表