智能车制作

标题: 摄像头直立车直立PID调节 [打印本页]

作者: 422056247    时间: 2014-3-28 14:27
标题: 摄像头直立车直立PID调节
我想问一下,大家的直立式调了多长时间?是怎么调好的,我看了秘书组的调车视频了,但是我发现,我现在遇见了一个问题,这个问题好像在秘书组给的视频里面没有出现过。  就是我现在在调直立,就是车子在向前的时候,可以速度慢慢慢下来,然而车子在向后的时候,是明显的加速运动,不知道这个是什么问题导致的,车子现在出现这种情况,也不知道是什么原因导致的,也不知道怎么接着往下面调了。也不知道是增加直立的P 和是直立的D,车子没办法很好的平衡在一段距离内,就没有办法调速度控制了。
希望大家给个建议和方案。
@吉他手

作者: yomki    时间: 2014-3-28 15:36
这个问题是有可能是你的车子一边太重一边太轻。
作者: 422056247    时间: 2014-3-28 15:43
应该不是这个问题,我电池和电路板是分别在车的两边的,应该不影响。
作者: joywu    时间: 2014-3-28 15:44
平衡角没测好
作者: 422056247    时间: 2014-3-28 15:50
joywu 发表于 2014-3-28 15:44
平衡角没测好

我感觉可能是我的  陀螺仪  和加速度计的零偏值没测好,这个东西,我不知道怎么去精确的测得,你们是怎么测量的?

作者: loveCSU    时间: 2014-3-28 15:57
    楼主,用的是什么传感器呀?有木有加入速度闭环控制(也就是说是不是只有直立控制信号驱动电机正反转)?我们用的ENC03和MMA7361

作者: 422056247    时间: 2014-3-28 15:58
我加了闭环控制,用的是陀螺仪和加速度计。
作者: 奋斗的蜗牛    时间: 2014-3-28 16:45
你们直立行了嘛  我的也是这样的问题
作者: 戥家三少    时间: 2014-3-28 17:46
遇到类似的,但不知道跟你一不一样的原因。
试试把速度的PD的极性换过来吧
作者: 张小生    时间: 2014-4-21 00:01
要考虑陀螺仪的极性问题吧~
作者: 人生的承诺,    时间: 2014-4-26 09:43
大神能不能求摄像头组的程序 只要是就行 不需要调试好的  现在急求  好人 谢谢  979773279@qq.com
作者: Woodbridge    时间: 2014-4-26 23:15
我也今天调好的。我觉得你是因为没有把加速度计的值设在重心的位置上;我是这样弄的:调试时先把车直立,重心竖直向下,几下当前的角度;最后小车实际直立是用按键微调角度,我就这样弄的。希望帮到你。
作者: 422056247    时间: 2014-4-28 19:22
Woodbridge 发表于 2014-4-26 23:15
我也今天调好的。我觉得你是因为没有把加速度计的值设在重心的位置上;我是这样弄的:调试时先把车直立,重 ...

恩恩,谢谢了,我看看

作者: Simeetchuan    时间: 2014-4-28 19:29
这种情况应该是重心没找准的问题,你可以这样,将重力加速度的零偏值设置为静态的,就是先给定一个值,然后让车直立,通过串口发送数据改变这个静态值来改变车模找准重心位置!希望能帮到你
作者: anmo    时间: 2014-4-29 21:19
Simeetchuan 发表于 2014-4-28 19:29
这种情况应该是重心没找准的问题,你可以这样,将重力加速度的零偏值设置为静态的,就是先给定一个值,然后 ...

我用到了这种方法,就是通过按键微调角度来使车子稳定直立,同时记录这个值。但是进行修改重新烧录程序后,车子还是不能稳定直立,而且每一次调出来的角度会有2-3度的偏差。不知道是怎么回事,谢谢。

作者: Simeetchuan    时间: 2014-4-29 22:34
anmo 发表于 2014-4-29 21:19
我用到了这种方法,就是通过按键微调角度来使车子稳定直立,同时记录这个值。但是进行修改重新烧录程序后 ...

为什么不通过串口直接修改数据呢?省得每次改完都要烧程序,我的加度计零偏值不知道为什么也一直在变,所以我每次跑的时候都要重新调整零偏值

作者: anmo    时间: 2014-4-30 15:58
Simeetchuan 发表于 2014-4-29 22:34
为什么不通过串口直接修改数据呢?省得每次改完都要烧程序,我的加度计零偏值不知道为什么也一直在变,所 ...

又拙了    额  你的意思是直接用串口给变量赋值么? 我让大神给我做了一个软件 但是总出问题 不行。我之前使用串口发字符像检测按键一样来微调变量的值。 不知道你是什么样的?如果是第一种方法,恳请赐教。谢谢

作者: Simeetchuan    时间: 2014-4-30 17:13
anmo 发表于 2014-4-30 15:58
又拙了    额  你的意思是直接用串口给变量赋值么? 我让大神给我做了一个软件 但是总出问题 不行。我之前 ...

我就是用第一种方法呀。把串口的接受发送中断位打开,在中断服务函数里给字符变量赋值。
void UART3_RX_TX_IRQHandler(void)// Send the Debug data in the "hex mode"(HEXģʽ)
{
        char c2;
        c2=Uart3Getchar();
        //Angle_P
        //Angle_D
        if(c2==1)
        {
                Direction_D+=0.1;
                printf("Direction_D+=1:%f\n",Direction_D);
                //g_Argument.Angle_P+=0.1;
                //printf("Angle_P:%f\n",g_Argument.Angle_P);
        }

}

作者: 蓝月    时间: 2014-5-1 15:36
问一下,秘书组的调车视频有下载吗? 能不能分享一下,谢谢!!
作者: anmo    时间: 2014-5-2 16:31
Simeetchuan 发表于 2014-4-30 17:13
我就是用第一种方法呀。把串口的接受发送中断位打开,在中断服务函数里给字符变量赋值。
void UART3_RX_ ...

恩 是了  跟键盘一样了   多谢你的解答





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