这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 想跟着我一起做两轮平衡小车吗?制作过程,持续更新,请关注

共70条 4/7 |‹ 2 3 4 5 6 7 跳转至
专家
2013-12-19 00:24:31     打赏
31楼
持续关注进程~

专家
2013-12-19 08:14:03     打赏
32楼
期待下文哦,加油

菜鸟
2013-12-19 21:42:51     打赏
33楼
楼主流弊啊

助工
2013-12-20 15:04:40     打赏
34楼
四周飞行器的活动不开展了吗?

院士
2013-12-20 16:20:37     打赏
35楼
别急,等着啊,现在不是时候

助工
2013-12-21 09:43:17     打赏
36楼
关注中

菜鸟
2013-12-21 14:21:14     打赏
37楼
围观,围观

菜鸟
2013-12-21 14:21:27     打赏
38楼
围观,围观

助工
2013-12-21 17:51:04     打赏
39楼
搞个活动呗

工程师
2013-12-23 13:05:16     打赏
40楼

软件设计部分

第一步读取MPU6050的数据

最近因为乱七八糟的事情特别多,天气又特别冷都不想把手拿出了~~所以更新特别特别慢,对不起各位了~~~

说正题,学会读取和分析MPU6050的数据也是比较重要的一步,读取的数据是否准确直接影响到后面算法,是否可以正确的判断出小车的实时状态

首先了解它的通信协议,MPU6050I2C通信协议,然后了解它的数据结构,然后再仔细阅读并了解它的寄存器和寄存器相关的配置,这里我把写的初始化话函数加进来~~

void MPU6050_Init(void)                                 //MPU6050初始化函数

{

       I2C_WriteByteData(DEVICE_COM0,PWR_MGMT_1, 0x00);    //解除休眠状态(电源管理模块) 

       I2C_WriteByteData(DEVICE_COM0,SMPLRT_DIV, 0x07);       //陀螺仪&加速度计采样率,典型值:0x07(125Hz)

    I2C_WriteByteData(DEVICE_COM0,CONFIG, 0x06);               //低通滤波频率,典型值:0x06(5Hz)

       I2C_WriteByteData(DEVICE_COM0,GYRO_CONFIG, 0x18);    //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)(寄存器手册P14)

       I2C_WriteByteData(DEVICE_COM0,ACCEL_CONFIG, 0x01);  //加速计自检、测量范围及高通滤波频率(这个在寄存器上面没有看到详细介绍),

                                                           //典型值:0x01(不自检,2G5Hz)

}

下面我会附上我程序,程序重点难点部分,基本上都有注释~~包括每一段是干什么用的。而且MPU6050的所有寄存器的映射都写出来了,而且基本上每一个都有相应的注释,所以那个MPU6050.H可以直接拿去用了。。。

因为不会写上位机(最近在学LabVIEW,准备用它来编上位机),所以读出的数据只能

LCD1602来进行显示,所以只能看到读出的加速度和角速度的数据,不能看到数据具体的变化趋势,还有就是,在用程序对加速度计和陀螺仪数据融合后的效果是看不出的,如果用上位机就可以很清楚看到数据融合过程的效果~~

关于MPU6050的更多用法可以参加它的数据手册~~~比如直接以数字输出6 轴或9 轴的旋转矩阵、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据,这些就要使用到他的DMP功能了~数字运动处理(DMP: Digital Motion Processing)引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。。等等~~MPU6050的功能还是非常强大的~~

下面来两张图~~我用MPU6050里面的温度计,来采集温度值和某一个轴的加速度或者角速度值显示在LCD1602上面~~

 

以前做的一个日历采集的温度值:


MPU6050采集的温度值和一个轴的数据:

开发板~~~


附件资料~~~

MPU6050测试程序~~

MPU6050_4.rar


下一次就是对算法进行分析和选取合适的算法~

对于角度数据的融合现在我所知道的一共有三种

 第一种,互补滤波

第二种,飞思卡尔滤波(不知道它叫什么滤波,因为是在飞思卡尔小车程序里面看到的,暂时先这么叫吧~~

第三种,卡尔曼滤波~~

我现在正在仔细看他们的理论~~~

如果有人还有更好的算法,或者有对这些算法特别了解的大神们,还望不吝赐教~~

 


共70条 4/7 |‹ 2 3 4 5 6 7 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]