找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 3442|回复: 6

请教一个NXT 1.0编程逻辑的问题

[复制链接]
发表于 2014-5-18 23:07:56 | 显示全部楼层 |阅读模式
悬赏2乐币未解决
最近我在搭建一个用光线传感器和触动传感器控制一个马达运动的模型,在编程过程中遇到了难题。程序的基本逻辑是这样的:
1. 运行程序以后,按压触动传感器一次,马达从起始位置(状态A)顺时针转动90度(状态B)。
2. 然后光线传感器开始进入控制Loop,如果此时环境光读数大于30则马达保持不动;如果此时环境光读数小于30则逆时针旋转60度(状态C);此后当环境光读数若一直小于30则马达保持不动;环境光读数一旦大于30则顺时针方向旋转60度(状态B)……以此规律循环。


3. 打算结束程序时(人为控制环境光,确保马达回到状态B),再按压触动传感器一次,马达逆时针转动90度回到起始位置(状态A)。

现在我在程序中能实现第1段和第2段的指令,但是无法实现第3段的指令,既触动传感器无法打断光线传感器控制的Loop。

跪求高人指点逻辑指令的构架,十分感谢!

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2014-5-19 15:39:47 | 显示全部楼层
本帖最后由 风影 于 2014-5-19 16:22 编辑


daand.png

daan.rbt (1.16 MB, 下载次数: 12)

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

使用道具 举报

发表于 2014-5-19 16:22:54 | 显示全部楼层
本帖最后由 风影 于 2014-5-19 16:32 编辑

2. 然后光线传感器开始进入控制Loop,如果此时环境光读数大于30则马达保持不动;如果此时环境光读数小于30则逆时针旋转60度(状态C);此后当环境光读数若一直小于30则马达保持不动;环境光读数一旦大于30则顺时针方向旋转60度(状态B)……以此规律循环。

       是指从“然后光线传感器开始进入控制Loop,如果此时环境光读数大于30则马达保持不动”开始循环,还是从“如果此时环境光读数小于30则逆时针旋转60度(状态C);此后当环境光读数若一直小于30则马达保持不动;环境光读数一旦大于30则顺时针方向旋转60度(状态B)……”这可是很关键的问题
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2014-5-20 23:04:27 | 显示全部楼层
非常感谢您的指点,循环是从判断环境光读数开始的,也就是说只要环境光在30上下波动,马达就会有反应,否则只要不跨过30马达就不工作,谢谢!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2014-5-21 10:49:37 | 显示全部楼层
那我的这个程序估计可以用 你试试看
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2014-5-23 22:08:27 | 显示全部楼层
程序我试用了,发现了两个问题:
1. 当我用手遮蔽光线传感器的时候,马达不断地以60度为单位不停的转动,而我的设想是马达只转动60度一次便不再转动;
2. 当我的手从光线传感器上移开的时候,马达并没反转60度一次,而是一直静止不动。

请教可以帮忙优化一下程序吗?谢谢!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2014-6-25 21:36:19 | 显示全部楼层
用你自己的程序,但换成双线程的,单独用触感来控制变量,这样就ok
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-25 19:15 , Processed in 1.601517 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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