智能车制作

标题: 光电前瞻大了弯道总是走内圈怎么办? [打印本页]

作者: jackyu613    时间: 2009-6-2 16:21
标题: 光电前瞻大了弯道总是走内圈怎么办?
我们是光电组的,用红外管,现在前瞻能到30cm~40cm,但是正因为前瞻大了,所以当小车还在直道上的时候,由于看得远,已经看到了前方的的弯道,所以剩下的一点直道还没走完就开始转弯了,这样导致所有的弯道只会走内圈,虽然这样一来固然算是抄了近路,但是会有跑下赛道的危险(转弯时靠外侧的轮子也在黑线里边,也就是说整个车都在黑线里面了)。怎么办呢?
作者: dtszcr    时间: 2009-6-2 22:52
学习一下。你的管是什么型号的能看那么远?调制了吗?脉冲发光了?你问的这个问题是可以解决的。
作者: 03040218    时间: 2009-6-3 09:08
你直道弯道用的同样的P参数吗?
作者: pcjfhp    时间: 2009-6-3 09:43
你没有考虑过让转弯与实际的路线同步吗?你可以在转弯的程序前加一个延时,或者把前瞻调小点。
作者: 应用电子    时间: 2009-6-5 10:57
可否指教一下用的什么型号的管子啊????我们的探测距离太小了。
作者: daomusi    时间: 2009-6-5 12:57
把速度再调大些!
作者: liang110034    时间: 2009-6-6 01:10
本帖最后由 liang110034 于 2009-6-6 01:18 编辑

狠人!,光提速也不行,加延时吧,延时长短与速度大小联系起来,直道入弯速度较快时延时短一点,弯道速度较慢延时长点。
作者: weekly571    时间: 2009-6-6 09:59
减小拐弯时的P量
作者: zdhly0401    时间: 2009-6-6 11:57
减小拐弯时的P量
作者: fangchuan1990    时间: 2009-7-28 06:11
提速!
作者: selion    时间: 2009-7-30 14:31
说了半天也没人说出他用的管子是什么型号的,大家现在都忙比赛去了,什么时候交流一下
作者: lijunboy    时间: 2009-8-1 13:24
加延时程序就可以解决!
还可以调节电位器(用RPR220的光电)来减小探测距离
作者: 棉花糖    时间: 2010-1-14 15:38
加延迟的确是个不错的办法
作者: 棉花糖    时间: 2010-1-14 15:38
加延迟的确是个不错的办法
作者: zhwbiao123    时间: 2010-1-17 15:35
对比上次道理采集的信息,结合小车速度计算下个转弯角度跟速度
作者: flyer1988hh    时间: 2010-1-17 16:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 1233211234567    时间: 2010-1-23 08:03
回复 1# jackyu613


    可以考虑使用不同的控制参数,在不同的弯道上根据弯道的特点找到合适的控制参数
作者: jpbirdy    时间: 2010-1-23 08:40
加延时不好,有没有考虑过把当前检测的信号和前几次综合起来判断,而不是来一个信号判断一次
当前的之前几个信号都保存起来,用循环队列实现
作者: yangweiliang567    时间: 2010-2-5 15:08
先调P值 不行就在家延迟
作者: yangweiliang567    时间: 2010-2-5 15:11
回复 18# jpbirdy


    用循环队列也可以用一个口进,一个口出。并不降低采样速率。后进来的把最先进来的值踢掉就完了
作者: jpbirdy    时间: 2010-2-6 15:15
回复 20# yangweiliang567


    楼上明显没用过循环队列,用了试试,循环队列不是一个口进一个口出的。
作者: yangweiliang567    时间: 2010-2-6 16:07
回复 21# jpbirdy


    开始我用的时候是进行10个一次均值,10次采样函数输出一次。后来改进了下:


unsigned int junzhi[10]={0,0,0,0,0,0,0,0,0,0};
unsigned int junzhi_he=0;
unsigned char junzhi_i=0;
unsigned int junzhi(unsigned int ru)
{
unsigned int chu=0;
junzhi_he=junzhi_he-junzhi[junzhi_i];
junzhi_he=junzhi_he+ru;
junzhi[junzhi_i]=ru;
junzhi_i++;
if(junzhi_i>9)
  i=0;
chu=junzhi_he/10;
return(chu);
}


这样每次输入函数都输出;并且可以根据采样频率加长其内部均值的量。
作者: jpbirdy    时间: 2010-2-7 11:04
回复 22# yangweiliang567


    f(junzhi_i>9)
  i=0;//改成junzhi_i
这边有一点循环队列的意思,我推荐你改成junzhi_i%=10;
循环队列的front和rear是连在一起的,front为当前的队首,a[front]表示最近一次的信号状态,a[(front+queue_num-1)%queue_num]表示队列你保存的最早一次的信号,a[(front+1)%queue_num]表示最近一次前一次的信号状态,同理,通过下标运算可以得到所有信号,对信号的处理都使用这样的规则,当然可以像CCD那样保存更多行数据
作者: lsyforever    时间: 2010-2-13 20:27
学习
作者: lin134340    时间: 2010-4-20 11:46
楼主进弯能切内,何不试试s弯呢?
作者: kurui365    时间: 2010-4-24 11:58
学习
作者: fengnan    时间: 2010-6-27 12:57
回复 4# pcjfhp


    同意你的说法
作者: liominge2007    时间: 2010-6-27 13:48
红外管能那么远吗?
作者: 信电小孩    时间: 2010-7-8 19:34
回复 16# flyer1988hh


    可以的!~~~~就是激光管倒是没调 起来。。。惆怅
作者: yanxi00    时间: 2017-7-26 00:11
加速加速 加速




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