找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 6949|回复: 3

发一个自创的寻线处女贴

  [复制链接]
发表于 2010-8-31 20:16:08 | 显示全部楼层 |阅读模式
line.rar (136.78 KB, 下载次数: 71)
这个寻线代码建立在寻线基本思想(黑色右摆 白色左摆)的基础上 对一种常见的情况:白色左摆过头 摆到了左边的白色区域 这是探测到白色 会一直左摆下去 跑偏路线有了很大的改进 虽然曾经前辈说 可以通过修改参数实现这一点 但我觉得 我的算法可以适应寻线图的变化(粗细) 未经试验
如果高手有什么更好的方法或者对我代码的不足有什么建议 还请指点

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2010-9-1 07:50:56 | 显示全部楼层
程序还蛮复杂的~~希望能解释一下= =...看到程序里让小车一直yes\no的叫....
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2010-9-1 08:13:30 | 显示全部楼层
是这样的 在光传感探测到白色区域的时候就会左摆,我在左摆前后加了一个逻辑变量logic1。 这样,当左摆电机转动完成后, 该变量就会被置为false。 为了实现电机转动的同时能够随时探测光感信息,我在下面拉出了个并行的线程。触发条件是logic1为true的时候。只有当为true时(即电机转动过程中),循环探测光感值。如果光感值进入黑色范围,就把另一个变量offset设置为true。(其实早先我的设计是一旦探测到黑色区域,就停止左摆电机转动, 并且执行回摆代码。但是发现一个问题。一旦你停止了左摆电机,NXT认为上面线程的左摆电机转动并没有完成,就会一直等待电机完成转动。然而停止的电机是不会转动的)
电机转动完成的同时,也完成了对光感的探测。这时判断光感是否处于白色范围并且已经经历了黑色范围,如果两者都为true,可以理论上认为它是由白色区域左摆,经过黑色区域,又来到白色区域。这时,如果不加任何处理,小车会一味的向左摆,直到跑离线路。所以在满足以上两个条件时候,就加以校正,使他向右摆一定转数(其实这里我还考虑改进:可以写个循环探测光感,循环里电机转动设置稍微小点,这样直到光感探测到黑色区域的时候,就完成了回摆过程。因为不这样做,有一个问题,就是回摆电机操作参数到底设置多少才好)
至于那个yes或no,是我想试验一下结果是否正确,可以删除不影响大局。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-9-1 12:06:40 | 显示全部楼层
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:43 , Processed in 0.238341 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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