找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 6508|回复: 4

机器人在两条黑线之间往返运行程序出问题了?

[复制链接]
发表于 2011-3-17 17:54:26 | 显示全部楼层 |阅读模式
我是个乐高新手,今天编了一个机器人在两条黑线之间往返运行程序,可是不行,不知问题出在哪里?请老师帮忙解决一下,谢谢了!附图: lh.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2011-3-17 19:24:06 | 显示全部楼层
BC运动模块的“Duration"要设置成”unlimited"。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-3-17 22:49:22 | 显示全部楼层
老师按照您的意见改了,但第三部光传感器测到黑线倒走了一圈就停了,郁闷呀,现附上程序文件,请您再次指导,谢谢!

程序.rar

62.62 KB, 下载次数: 21

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

使用道具 举报

发表于 2011-3-18 09:28:10 | 显示全部楼层
给个程序的简化思路,不太会图形化编程,你自己看看用图形化的怎么实现吧:
设定变量 a=1
while true
{
  移动(速度= 100*a)
  光感响应遇到黑线 -> a=a*-1
}
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-3-18 12:37:09 | 显示全部楼层
task main()
{
     SetSensorLight(S3);
     while(1)
     {
             OnFwd(OUT_BC, 50);
             while(SENSOR_3 > 40);
             OnRev(OUT_BC, 50);
             while(SENSOR_3 > 40);
     }
}
可以这样写,不过这样对马达伤害很大,比如你黑线很粗,车子进入黑线内范围很大的话,马达就会在黑线范围内来回转,马达的齿轮很伤!解决的办法是黑线不要太粗,速度不要太快。另外也可以在等待检查等待前再加个小延时。
比如这样
task main()
{
     SetSensorLight(S3);
     while(1)
     {
             OnFwd(OUT_BC, 50);
             Wait(200);
             while(SENSOR_3 > 40);
             OnRev(OUT_BC, 50);
             Wait(200);
             while(SENSOR_3 > 40);
     }
}
另外你的程序我也帮你改了一下,应该是可以了,在无限走前加了一个移动模块,目的是让车子走出黑线范围,我现在设置的是走一圈,你可以根据你实际情况修改这个值,圈数或者度数都可以。

程序.zip

185.82 KB, 下载次数: 15

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 16:26 , Processed in 0.083868 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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