极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37769|回复: 18

步入mpu6050深潭,请求大神解救-.-

 关闭 [复制链接]
发表于 2013-11-14 20:07:24 | 显示全部楼层 |阅读模式
大家好啊,真心感谢又这样一个学习交流的平台
才开始学习Arduino没多久,准备做一个自平衡车,
但是和论坛里面前辈制作的自平衡车有一定差别
设想的是小车运动方向和平衡机制调节方向垂直
用MPU6050得到相应的值来对应控制舵机

制作的进程随着MPU6050 的引入而开始卡壳了
                     在论坛里面翻了很多关于MPU6050的帖子
                     但是自己对MPU6050模块的使用不太理解

主要是因为:
在前期的学习中,感觉很多模块像温度传感器这些都是直接读取数据,但是看到关于MPU6050的代码都是一大篇一大篇的。
   想请教的是mpu6050可以直接输出其最开始测量的数值吗?大篇幅的代码是因为转换单位,IIC协议(其实这个也不太懂) ,还有滤波运算造成的吗?



在购入模块的时候,买了两种mpu6050模块,一种是10多元的,还有一种是最近论坛上也比较火热自带卡尔曼滤波的mpu6050。
      那么这两种又有什么区别呢?我自己的想法是,后者将滤波的计算集成在mpu6050,可以直接输出经过转换计算后加速度和角速度值,所以就是说在代码中就可以不用加入积分滤波等一些列计算了吗?


万分感激!

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-11-14 22:55:35 | 显示全部楼层
同问!希望论坛里的大牛详细解答下。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 01:22:23 | 显示全部楼层
第一种只有加速度和角速度的输出,需要自己做算法求解获得角度信息,第二种串口6050模块可以直接输出角度信息。因为平衡车需要根据小车与水平面的夹角来控制电机的运动,简单说来就是小车于水平面夹角大于0,两电机正转,夹角小于0,电机反转。用卡尔曼滤波算法求角度是最佳的解决方案,能够有效地提高角度测量精度,精度越高,控制的效果越好。串口6050模块与arduino uno的链接已经有调试好的代码,请参看帖子:http://www.geek-workshop.com/thread-7765-1-1.html
回复 支持 反对

使用道具 举报

发表于 2013-11-15 01:25:12 | 显示全部楼层
我也在利用这款串口6050模块做平衡车,目前已经测试好与6050的接口,效果很好,精度远超过我的预期,后期会放出我的制作过程和代码。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 08:02:29 | 显示全部楼层
scyishuying 发表于 2013-11-15 01:25
我也在利用这款串口6050模块做平衡车,目前已经测试好与6050的接口,效果很好,精度远超过我的预期,后期会 ...

你小车控制用pid调节了吗?
回复 支持 反对

使用道具 举报

发表于 2013-11-15 08:41:16 | 显示全部楼层
有点问题的感觉~~~
回复 支持 反对

使用道具 举报

发表于 2013-11-15 16:03:26 | 显示全部楼层
邵林寺 发表于 2013-11-15 08:02
你小车控制用pid调节了吗?

我用的P控制,也能平衡了,用的这款串口6050模块。说明精度确实很高。电机速度直接等于角度×K,K取的15.就行了。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 16:04:41 | 显示全部楼层
tahoroom 发表于 2013-11-14 22:55
同问!希望论坛里的大牛详细解答下。

极力推荐串口6050模块,无图无真相,来看我的成果:

回复 支持 反对

使用道具 举报

发表于 2013-11-15 16:42:40 | 显示全部楼层
邵林寺 发表于 2013-11-15 08:02
你小车控制用pid调节了吗?

是的,用PID的效果不错。不过需要耐心地调参数。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 16:45:06 | 显示全部楼层
zhaowenwin 发表于 2013-11-15 16:03
我用的P控制,也能平衡了,用的这款串口6050模块。说明精度确实很高。电机速度直接等于角度×K,K ...

你这个我不太明白呀?input=角度,output=小车pwm速度。你说的“电机速度直接等于角度×K,K取的15”,难道不是pid调节,直接角度放大输出了?????
回复 支持 反对

使用道具 举报

发表于 2013-11-15 16:56:31 | 显示全部楼层
邵林寺 发表于 2013-11-15 16:45
你这个我不太明白呀?input=角度,output=小车pwm速度。你说的“电机速度直接等于角度×K,K取的15” ...

可以这么理解,但是是负反馈的,也就是要让小车朝着让角度误差变小的方向运动,没有积分环节I和微分环节D,就剩下比例环节P了。也算是PID控制。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 17:02:10 | 显示全部楼层
scyishuying 发表于 2013-11-15 16:56
可以这么理解,但是是负反馈的,也就是要让小车朝着让角度误差变小的方向运动,没有积分环节I和微分环节D ...

奥,这样呀。以我的经验,这个黄色的香蕉电机,让它转动起来,pwm最少也要加到30左右,也就是说角度到2°的时候电机才转。这个小车上边的部件看着摆放很乱,但是仔细观察,布局非常合理,估计制作的时候花了不少精力。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 17:14:35 | 显示全部楼层
邵林寺 发表于 2013-11-15 17:02
奥,这样呀。以我的经验,这个黄色的香蕉电机,让它转动起来,pwm最少也要加到30左右,也就是说角度到2° ...

看到的这个图是一个分解图,主要展示所用的材料。用料非常简单,主要精力用在调试参数什么的了。一个小车底盘,一个电机驱动板,一个6050模块,一个arduino uno r3,算上运费也就一百多元,还是很划算了。中间有两个光电测速模块,本来想用来测速的,后来调试发现,根本就用不上,串口6050的精度已经很好了,测速还不如直接6050的角速度呢。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 17:15:14 | 显示全部楼层
不用光电测速模块,成本节省不少。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 17:56:01 | 显示全部楼层
scyishuying 发表于 2013-11-15 17:14
看到的这个图是一个分解图,主要展示所用的材料。用料非常简单,主要精力用在调试参数什么的了。一个小车 ...

是的我也加了测速,后来发现没啥必要,就去掉了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 10:18 , Processed in 0.042702 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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