智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: hanlinson
打印 上一主题 下一主题

[咨询] 平衡车互补滤波后的图象,求鉴定是否可用

[复制链接]

8

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
威望
206
贡献
28
兑换币
6
注册时间
2013-6-25
在线时间
18 小时
毕业学校
天大
11#
发表于 2013-8-10 20:51:12 | 只看该作者
hanlinson 发表于 2013-8-4 22:30
你又没有办法办法确定主控,因为你不知道到底是陀螺仪准,还是加速度计准,我这儿选的陀螺仪准,但是事实 ...

MPU6050求教学
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
威望
161
贡献
99
兑换币
104
注册时间
2013-6-11
在线时间
26 小时
12#
 楼主| 发表于 2013-8-10 21:02:43 | 只看该作者
1249652816 发表于 2013-8-10 20:51
MPU6050求教学

给你核心程序,你慢慢琢磨把!
float Read_Acc_x()
{
    float Accel_x,Accel_z, Angle_accel;
    //------加速度--------------------------

    //加速度计量程为2g时,换算关系:16384 LSB/g
    //角度较小时,x=sinx得到角度(弧度), deg = rad*180/3.14
    //因为x>=sinx,故乘以1.3适当放大

    Accel_x  = GetData(ACCEL_XOUT_H);      //从mpu6050读取X轴加速度
    Accel_z  = GetData(ACCEL_ZOUT_H);      //从mpu6050读取z轴加速度
            if(Accel_x>0)
            {
                Angle_accel = atan2((float)Accel_x,(float)Accel_z)*(180/3.14159265);//反正切计算rad
/*    atan2(y,x)是表示X-Y平面上所对应的(x,y)坐标的角度,
                  它的值域范围是(-Pi,Pi)   
      用数学表示就是:atan2(y,x)=arg(y/x)-Pi   
      当y<0时,其值为负,   
      当y>0时,其值为正. atan2*180/Pi可以计算出角度值         */
               
            }
                else
                {
                   Angle_accel = atan2((float)Accel_z,(float)Accel_x)*(180/3.14159265)-90;//反正切计算
                        if(Accel_z<0)
                            Angle_accel=Angle_accel+360;
                    Angle_accel = -Angle_accel;
                }
                                    /*    atan2(y,x)是表示X-Y平面上所对应的(x,y)坐标的角度,
                                              它的值域范围是(-Pi,Pi)   
                                  用数学表示就是:atan2(y,x)=arg(y/x)-Pi   
                                  当y<0时,其值为负,   
                                  当y>0时,其值为正. atan2*180/Pi可以计算出角度值         */
                return Angle_accel;
}

回复 支持 反对

使用道具 举报

8

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
威望
206
贡献
28
兑换币
6
注册时间
2013-6-25
在线时间
18 小时
毕业学校
天大
13#
发表于 2013-8-10 21:31:07 | 只看该作者
hanlinson 发表于 2013-8-10 21:02
给你核心程序,你慢慢琢磨把!
float Read_Acc_x()
{

其实我想要的是IO口模拟IIC通信程序
回复 支持 反对

使用道具 举报

23

主题

241

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1405
威望
717
贡献
428
兑换币
453
注册时间
2014-2-6
在线时间
130 小时
14#
发表于 2014-8-29 10:38:22 | 只看该作者
hanlinson 发表于 2013-8-10 21:02
给你核心程序,你慢慢琢磨把!
float Read_Acc_x()
{


回复 支持 反对

使用道具 举报

23

主题

241

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1405
威望
717
贡献
428
兑换币
453
注册时间
2014-2-6
在线时间
130 小时
15#
发表于 2014-9-11 18:27:59 | 只看该作者
hanlinson 发表于 2013-8-10 21:02
给你核心程序,你慢慢琢磨把!
float Read_Acc_x()
{

你好,我对“X-Y平面上所对应的(x,y)坐标的角度”不太理解,为什么要这样算,加速度计输出值减平衡值乘以比例, 陀螺仪输出值乘以比例 ,按互补滤波公式写好,保持互补滤波曲线与陀螺仪曲线跟随性一致,这样基础上调平衡车可以不?
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 12:13 , Processed in 0.174925 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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