找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 4819|回复: 15

程序求解!!!!!!!!!

[复制链接]
发表于 2015-5-28 15:41:18 | 显示全部楼层 |阅读模式
悬赏1乐币已解决
图2黑色圈出位置,用圈数控制,超声波检测一次后就不在检测。用时间控制整个程序就完全没有问题。。这是什么原因????

安装的光电和超声波

安装的光电和超声波

圈出的位置控制方式圈数

圈出的位置控制方式圈数

最佳答案

查看完整内容

用时间可以是因为时间和下面光感前的移动模块不冲突,用角度不行是和下面光感前的移动模块有冲突(光感前的无限制移动模块在这个循环里面的持续时间是秒,而不是角度)
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2015-5-28 15:41:19 | 显示全部楼层
打酱油的猫丨 发表于 2015-5-29 16:41
这个问题的重点不是我如何去达到检测黑线和障碍目标,而是为什么马达控制方式改变了程序就可以没有 ...

用时间可以是因为时间和下面光感前的移动模块不冲突,用角度不行是和下面光感前的移动模块有冲突(光感前的无限制移动模块在这个循环里面的持续时间是秒,而不是角度)
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-28 21:57:26 | 显示全部楼层
机器人被你的程序搞得脑乱了。你想要机器人怎么动作?说说你这个程序的逻辑。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-28 23:13:40 | 显示全部楼层
大哥 逻辑 同意楼上    你上下传感器都触发了   你让车怎么走  是拐还是停
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2015-5-29 09:14:39 | 显示全部楼层
barzz 发表于 2015-5-28 21:57
机器人被你的程序搞得脑乱了。你想要机器人怎么动作?说说你这个程序的逻辑。

目的是超声波检测到障碍转弯,光电检测到黑线停止。问题是转弯那个移动控制方式用时间就没有任何问题,用圈数就只能检测一次
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2015-5-29 09:16:36 | 显示全部楼层
xd62215135 发表于 2015-5-28 23:13
大哥 逻辑 同意楼上    你上下传感器都触发了   你让车怎么走  是拐还是停

只触发一个传感器的时候也是不灵的。。。。在光电被触发前,超声波怎么都好用。光电被触发后,超声波会好用一次,然后车就傻掉了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-29 10:57:20 | 显示全部楼层
这个容易把机器人干蒙圈 用开关就搞定了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-29 11:13:07 | 显示全部楼层
打酱油的猫丨 发表于 2015-5-29 09:16
只触发一个传感器的时候也是不灵的。。。。在光电被触发前,超声波怎么都好用。光电被触发后,超声波会好 ...

楼上二位说的没错,这个确实是逻辑错误。

关于你的问题:
正如你所说,当光电触发之后,马达会停止转动,由于循环的原因,马达会一直停止。
这个时候,如果超声波传感器探测到障碍,上面的循环一直在命令马达转弯。同时光电仍然探测的是黑线,下面的循环一直在命令马达停止转动。
那么此时机器人是该转弯呢还是停止呢?

至于为什么用圈数控制不可以,而用时间控制就可以,以下是我的个人见解:
如果真如你所说,我大胆猜测,在马达控制方式上有一个优先级。
就是说,按圈数控制马达转动的优先级 < 马达停止 < 按时间控制马达转动。

评分

参与人数 1乐币 +10 人气 +1 收起 理由
rolanx + 10 + 1

查看全部评分

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

使用道具 举报

 楼主| 发表于 2015-5-29 14:25:17 | 显示全部楼层
本帖最后由 打酱油的猫丨 于 2015-5-29 14:39 编辑
Gin_fans 发表于 2015-5-29 11:13
楼上二位说的没错,这个确实是逻辑错误。

关于你的问题:

还有一个问题让我不能理解。首先光电检测到黑线,超声波检测到障碍发生在同一时间时,车会晕,会判断不了该去执行那路程序。当我人为控制它,在它检测到黑线后,把它从黑线拿开(在不停止程序状态),车依然会继续走,遇见黑线停,遇见障碍转,但是这次转弯过后,程序不停超声波就不再能起作用,这个是什么导致的?(整个过程只启动一次程序,人为控制避免同时检测到黑线和障碍,每当检测到黑线停止后,用手把车移开黑线)如果真的有优先级?应该怎么检测?感谢帮助解答补充下。当它不会同时检测到黑线和障碍的时候,用时间控制转弯就怎么转怎么灵了。用圈数就是上边描述的那个样子
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-29 15:23:14 | 显示全部楼层
打酱油的猫丨 发表于 2015-5-29 14:25
还有一个问题让我不能理解。首先光电检测到黑线,超声波检测到障碍发生在同一时间时,车会晕,会判断不了 ...

优先级一说只是我一拍脑门的猜测,并不做准。
关于你的问题,只有解读编译出的机器语言或者汇编语言,才能明确到底是何原因。

不过探究这个原因并没有什么用,因为这样的编程逻辑就错误的,不能又让马达转又让它停止。
我一直跟学生们讲,机器人是很笨的,但也是很严格的。妈妈叫你吃饭,你会吃饭吃菜喝汤,而如果你叫机器人吃饭(如果真的可以吃),那么它只会吃饭,不会吃菜和喝汤。你叫机器人走两步,还必须明确告诉它先迈左脚还是右脚还是两只脚一起迈。

好吧,就是这样。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-29 16:04:20 | 显示全部楼层
你的逻辑错了,就不要去研究了。楼上说了“只有解读编译出的机器语言或者汇编语言,才能明确到底是何原因。”你换个思路换个程序。程序对了,你自己就明白了。ps:楼上也有提到 可以用开关模块,很容易解决,你先试试,不行大家可以再帮你。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2015-5-29 16:34:34 | 显示全部楼层
Gin_fans 发表于 2015-5-29 15:23
优先级一说只是我一拍脑门的猜测,并不做准。
关于你的问题,只有解读编译出的机器语言或者汇编语言,才 ...

这个如果真的 是逻辑错误?那么为什么用时间控制运行没有任何问题用圈数控制就不行?能按照目标思路运行不是表示逻辑是正确的么?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2015-5-29 16:41:18 | 显示全部楼层
huruiqi 发表于 2015-5-29 16:04
你的逻辑错了,就不要去研究了。楼上说了“只有解读编译出的机器语言或者汇编语言,才能明确到底是何原因。 ...

这个问题的重点不是我如何去达到检测黑线和障碍目标,而是为什么马达控制方式改变了程序就可以没有问题的运行。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2015-5-29 17:16:59 | 显示全部楼层
打酱油的猫丨 发表于 2015-5-29 16:34
这个如果真的 是逻辑错误?那么为什么用时间控制运行没有任何问题用圈数控制就不行?能按照目标思 ...

为什么用时间控制可行  这个问题,只能通过研究代码来确定。然而这个很难做到。
有趣的是,我和你一样,也很想知道这到底是为什么,而且我自从看到你的问题之后,一直在抽空研究。工作好多啊。。。。。。

但无论如何,你的编程逻辑确实是错误的,因为会出现同时让马达转动和停止的情况。
想要实现“看到黑线停止后,看到障碍物转弯”这个功能,就要换一个编程思路,用明确的逻辑设定控制马达运动状态的优先级,而不是依靠“用时间控制还是用圈数控制”。

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

使用道具 举报

 楼主| 发表于 2015-5-30 17:21:54 | 显示全部楼层
huruiqi 发表于 2015-5-28 15:41
用时间可以是因为时间和下面光感前的移动模块不冲突,用角度不行是和下面光感前的移动模块有冲突(光感前 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 09:32 , Processed in 0.225271 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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