智能车制作

标题: 陀螺仪曲线,过冲?? [打印本页]

作者: 蓝色调    时间: 2013-8-13 21:05
标题: 陀螺仪曲线,过冲??
红色的是加速度计的,黄色融合的。但是转动的方向不一样会出现以上情况。向上的时候看起来想过冲,但是向下摆的时候又跟随太慢了。是什么原因 啊
作者: 蓝色调    时间: 2013-8-13 21:06

作者: 蓝色调    时间: 2013-8-13 21:06
来人啊
作者: 蓝色调    时间: 2013-8-13 21:06
顶顶顶顶顶
作者: rubick    时间: 2013-8-13 21:12
零点取偏吧了?
作者: 寒冬的朝阳    时间: 2013-8-13 21:21
楼主是用的互补还是什么呀。
作者: 蓝色调    时间: 2013-8-13 21:31
rubick 发表于 2013-8-13 21:12
零点取偏吧了?

陀螺仪零点是求平均的。加速度计的是估计的

作者: 蓝色调    时间: 2013-8-13 21:31
寒冬的朝阳 发表于 2013-8-13 21:21
楼主是用的互补还是什么呀。

就是官方的方案。
作者: 理工小别    时间: 2013-8-13 21:44
............先看电路 如果是官方那个你的电路也是官方的融合电路吗
如果是那样 可能是参数取得不对
作者: 寒冬的朝阳    时间: 2013-8-13 22:16
蓝色调 发表于 2013-8-13 21:31
就是官方的方案。

好吧,你看看零偏有问题吗,再有硬件上的电容去了没有啊。
作者: xiaoxydiou    时间: 2013-8-13 22:57
寒冬的朝阳 发表于 2013-8-13 22:16
好吧,你看看零偏有问题吗,再有硬件上的电容去了没有啊。

硬件上什么电容要去掉?
作者: 寒冬的朝阳    时间: 2013-8-13 23:04
xiaoxydiou 发表于 2013-8-13 22:57
硬件上什么电容要去掉?

我也不太清楚,买的模块都有去那个电容,他们搞硬件的应该清楚。
作者: 蓝色调    时间: 2013-8-13 23:28
寒冬的朝阳 发表于 2013-8-13 22:16
好吧,你看看零偏有问题吗,再有硬件上的电容去了没有啊。

解决了。是时间常数的问题

作者: 蓝色调    时间: 2013-8-13 23:28
xiaoxydiou 发表于 2013-8-13 22:57
硬件上什么电容要去掉?

要去掉的
作者: 898102397    时间: 2013-8-14 11:38
蓝色调 发表于 2013-8-13 23:28
要去掉的

能说清楚点具体是什么电容要去掉么   我们那做硬件的比较水。。。谢谢

作者: 蓝色调    时间: 2013-8-14 15:52
898102397 发表于 2013-8-14 11:38
能说清楚点具体是什么电容要去掉么   我们那做硬件的比较水。。。谢谢

就是高通的那个电容,和一个电阻并联的。然后接入放大器的+级的那个电容。连陀螺仪输出口那个

作者: 20110295    时间: 2014-3-14 15:14
寒冬的朝阳 发表于 2013-8-13 22:16
好吧,你看看零偏有问题吗,再有硬件上的电容去了没有啊。

你说的是高通滤波部分的电容吗
作者: huster_tjs    时间: 2014-3-16 00:23
lz你好,我现在也在用这个visualscope虚拟示波器,但是我的不能够显示波形,而当用visualscope自带的串口能够正确接受数据,却怎么也显示不出波形,希望lz能够帮我分析一下。
下面贴上我的一部分程序:
这是协议:

unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
    unsigned short CRC_Temp;
    unsigned char i,j;
    CRC_Temp = 0xffff;

    for (i=0;i<CRC_CNT; i++){      
        CRC_Temp ^= Buf[i];
        for (j=0;j<8;j++) {
            if (CRC_Temp & 0x01)
                CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
            else
                CRC_Temp = CRC_Temp >> 1;
        }
    }
    return(CRC_Temp);
}

下面是主程序:void main()
{
    int i;
    delay(500);
    InitMPU6050();
        delay(150);
        TMOD=0x20;                   //用定时器设置串口波特率2400         
    TH1=0xf3;
    TL1=0xf3;
    TR1=1;
    REN=1;          //串口初始化
    SM0=0;
    SM1=1;
        while(1)
        {
                buff2[0]=complement_filter((float) Read_Acc(),(float) Read_Gry());
                buff2[1]=0x00;
                buff2[2]=Read_Acc();
                buff2[3]=0x00;
                buff2[4]=Read_Gry();
                buff2[5]=0x00;
                buff2[6]=0x00;
                buff2[7]=0x00;
                buff2[8] =CRC_CHECK(buff2, 8)&0x00ff;  //将第9个数据赋上CRC的低字节
                buff2[9] =(CRC_CHECK(buff2, 8)&0xff00)>>8;//第10数据上是CRC的高字?


                for(i=0;i<10;i++)
                {
                    SBUF=buff2[i]; //向串口送出数据这10个字节数据
                    while(TI==0);  //确认发送完成
                    TI=0;
                }
        delay(50);
        }
}

我的波特率设置成了2400,那个setup也都是了check sum 和crc16两个协议选项,但是当点击run的是后没有出波形?
希望lz帮我看一下
先在此谢过!
今天找了一天资料和调试,都没有搞出来。。。







欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2