找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 8120|回复: 20

Robolab编程错误---要求出黑线停但实际入黑线就停了

  [复制链接]
发表于 2011-11-8 11:00:14 | 显示全部楼层 |阅读模式
孩子编的程序,设计初衷是机器向前走,遇到横着的粗黑线开始计数,走出黑线停止计数,机器停下,并将刚才的计数显示在屏幕。但程序实际的运行是,光感一进入黑线就停,没有执行计数循环。我也不知怎么修改,请帮忙看下问题在哪里。谢谢了!
legao1.jpg


如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2011-11-8 11:32:45 | 显示全部楼层
进入黑线盲区后,需要再走若干厘米离开黑线……再次检测
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-8 18:30:19 | 显示全部楼层
楼上说的是
我用的方法是
检验到黑线,向前开,一直等到测到白线再开始检验黑线
但是中间会遇到一个问题就是光敏数值波动的情况。
可以设置小于45黑色,等到光敏测到大于50才认为白色。
这中间的5度差能防止光敏波动时的误测
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-8 18:34:40 | 显示全部楼层
本帖最后由 wangxj 于 2011-11-8 19:41 编辑

细读楼主程序有误,和你所要的要求差别很大
程序只能判断一次黑线,出了循环就终止了程序
因此只能判断一个黑线。
而且设计的意图也有些含糊
如果知道几条黑线可以直接让机器在几条黑线处停
如果不知道黑线的数量
那么机器不知道何时结束测黑线,就会永远测下去,还需要限定测黑线的条件。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-8 20:45:24 | 显示全部楼层
呵呵 回头我把我的 数黑线 程序 发来参考一下   家里的机子没装软件
最近很忙  准备做个单光感蹭墙走的 小车都没来得及
唐伯虎说的延时是必要地 另外 也可以考虑光值波动一次然后计数的算法
楼主的表述也有些模糊 你要走几条线?才停
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-8 21:59:16 | 显示全部楼层
我觉得楼上的各位都理解错了。楼主的意思是要机器人在检测到黑线以后开始计数,在循环内每次加1,直到机器人走出黑线,终止循环。然后把这个循环的次数显示在屏幕上。是要记录机器人穿过粗黑线的过程中,一共有多少次循环。
对robolab不熟悉,但是看程序,循环开始和结束的条件都是光感值为22,所以机器人一检测到黑线就停下,应该是这个程序运行的正常状态。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 08:30:46 | 显示全部楼层
这个程序中光感的有限循环计数有问题,为什么中间加鸣叫,这样会大大降低刷新率。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 09:15:54 | 显示全部楼层
lmd 发表于 2011-11-9 08:30
这个程序中光感的有限循环计数有问题,为什么中间加鸣叫,这样会大大降低刷新率。

也许就是想延长每次循环的时间呢?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 09:32:39 | 显示全部楼层
本帖最后由 bush 于 2011-11-9 09:37 编辑
wangxj 发表于 2011-11-8 18:34
细读楼主程序有误,和你所要的要求差别很大
程序只能判断一次黑线,出了循环就终止了程序
因此只能判断一 ...


对头!如果就一道黑线,这个程序没有问题。光感值22是不是小了点?前面一个光感是不是可以不用?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 16:02:48 来自手机 | 显示全部楼层
barzz 发表于 2011-11-8 21:59
我觉得楼上的各位都理解错了。楼主的意思是要机器人在检测到黑线以后开始计数,在循环内每次加1,直到机器人 ...

明白楼主的意思,但是楼主没有说清楚测黑线的结束的条件。实际上到达几次黑线停更加实用。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 20:42:55 | 显示全部楼层
可以参考一下这个

可以参考一下

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

使用道具 举报

 楼主| 发表于 2011-11-9 20:43:52 | 显示全部楼层
谢谢大家给我出主意。 程序的目的是进入黑线(光感小于22)开始计数,同时继续向前走,一直到走出黑线(光感超过22),停,并停止计数,然后把刚才累计的数字显示出来。黑线大约有5cm粗,就一条。循环里加了发声时为了判断是否进入了循环,结果一次也没有响,也就是根本没有进入循环。  有了这个计数是为了帮助以后的程序判断穿越的是细黑线(2cm)还是粗黑线(5cm)。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 20:47:01 | 显示全部楼层
本帖最后由 捞屎人 于 2011-11-9 20:51 编辑

你的意思是 判断黑线宽度
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 21:37:48 | 显示全部楼层
可能是光感值设小了,您放大到30看行不行。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-10 19:26:14 | 显示全部楼层
原来楼主的目的是这个啊
程序编写没有任何逻辑错误。
在循环前加一个千分之一秒的延时等待
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 05:42 , Processed in 0.095049 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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