找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 7879|回复: 13

向大家请教一个双光电循迹的问题

  [复制链接]
发表于 2012-8-21 20:27:49 | 显示全部楼层 |阅读模式
双光电循迹测试.rbt (1.66 MB, 下载次数: 186) 用这个程序双光电循迹行么?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-8-21 22:16:52 | 显示全部楼层
亲……你乘零以后…………永远都是零啊……所以……你前面的减法运算也没用了。后面的对比也永远是“假”。所以……你的程序 再看看吧
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-22 11:30:34 | 显示全部楼层
是几岁孩子编的?你的思路我看出来了,但是bug不少,呵呵
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-8-24 17:06:30 | 显示全部楼层
薛源 发表于 2012-8-21 22:16
亲……你乘零以后…………永远都是零啊……所以……你前面的减法运算也没用了。后面的对比也永远是“假”。 ...

这只是示意用的,0是因为没有设置
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-8-24 17:07:16 | 显示全部楼层
本帖最后由 azhengliaa 于 2012-8-24 17:13 编辑
sdusts 发表于 2012-8-22 11:30
是几岁孩子编的?你的思路我看出来了,但是bug不少,呵呵


bug在哪?请指出,我会进行修改的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-24 17:48:17 | 显示全部楼层
看了下,感觉是想用P来校正方向的。是这样吗?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-24 17:52:34 | 显示全部楼层
有几个问题想了解一下。
1,从程序看,你光电读数的触发条件是>50。我没有光电传感器,不知道光电读数一般是多少。但我推测,如果校准过的话,应该0-100,没有校准的话,十几、20——五十几、60左右(我的颜色传感器是这样)。因为你设了这个触发条件,很可能多数情况下你没有光电读数了。
除非你循的线很特殊,才需要这样设吧。
也许应该把触发条件去掉?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-8-24 22:34:46 | 显示全部楼层
imlucky1 发表于 2012-8-24 17:52
有几个问题想了解一下。
1,从程序看,你光电读数的触发条件是>50。我没有光电传感器,不知道光电读数一般 ...

其实那个不是触发条件,而是读取光电数值,大概的思路是这样的:一个循环先读取一个光电值,0.001秒后再读一个数值,将两个数值相减,并乘一个常量,判断正负,将最终的数值和正负对比结果分别存入两个变量里。
另一个循环将两个变量里的数值与正负结果读出来,如果为非负数,则这个光电一侧的马达以计算所得数值为功率正转,如果为负数,则这个光电一侧的马达以计算所得数值相反数为功率反转。这是一侧马达的思路,另一侧与之相同
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-24 23:53:01 | 显示全部楼层
本帖最后由 imlucky1 于 2012-8-25 01:13 编辑

思路我很理解。关键看实现。
触发的问题,我又查了下help的说明,不能确定。最后在我的颜色传感器上编了个小程序试验了一下,发现这个所谓的触发,只产生一个逻辑输出,可以作为程序其它部分的一个触发条件,跟它自身无关。
因此,这方面你程序不存在问题,是我这两天看帮助信息产生的误解。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-25 01:03:37 | 显示全部楼层
问题:如果1ms前马达正转前进,1ms后光强变化可能让马达反转?这个对方向的纠正会不会太厉害?

如果遇到与前进方向垂直的黑线,2马达都反转让小车倒退?退了以后又该正转前进了?这样在这个地方反复进退?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-25 01:18:08 | 显示全部楼层
如果正好某个时刻2个马达都走在与黑线平行的线上,万一正好光度一样,你减下来变零了,小车不但不前进反而停止?
就算1ms前后没有正好一样,读数也很接近,马达也接近停止?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-8-25 17:45:49 | 显示全部楼层
imlucky1 发表于 2012-8-25 01:03
问题:如果1ms前马达正转前进,1ms后光强变化可能让马达反转?这个对方向的纠正会不会太厉害?

如果遇到 ...

非负数时马达正转,负数时马达反转,如果前方有十字线的话就得在往上加程序了。光的强度变化的确是个问题,但是如果与外界的光隔离,用光电自身产生的光应该就可以了。读数差值过小是个问题,如果按这个程序的话的确会近似停止,这个我会改的,如果将差值乘一个常量以后再加一个常量应该就可以了,我觉得这些都不是关键问题,我觉得关键问题是NXT可以不可以在0.001秒以内完成这些运算,这个问题很关键,不知谁能赐教
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-8-25 18:11:05 | 显示全部楼层
azhengliaa 发表于 2012-8-25 17:45
我觉得关键问题是NXT可以不可以在0.001秒以内完成这些运算,这个问题很关键,不知谁能赐教.......

为什么一定要取1ms前后的差呢? NXT马达的小车的速度毕竟不是很快的。
如果没有特定的原因,又担心1ms来不及执行的话,也许可以考虑10ms?甚至50ms、0.1s?
建议试试。

另外,是否可以考虑把光强变化作为steer的依据?


如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-8-25 18:16:54 | 显示全部楼层
这么编的目的就是想加快寻线速度,所以很纠结,快了可能算不过来,慢了就失去意义了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-12-22 22:28 , Processed in 0.164102 second(s), 25 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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