找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 12614|回复: 9

如何写java的编程让配有光传感器的小车跑 椭圆形白线

  [复制链接]
发表于 2010-5-28 00:04:12 | 显示全部楼层 |阅读模式
Photo-0051.jpg
白线是椭圆形的跑道,要求是,让机器人不管顺时针还是逆时针都可以在白线上跑
我的写法是这样的,只能是逆时针的跑才可以,不知道如何,让它两边都可以跑。
import lejos.nxt.*;
import lejos.navigation.Pilot;
public class Light {
     public static void main(String[] args) {
         LightSensor light = new Pilot(54.0f,111.0f,Motor.C,Motor.B);
         Light.setHigh(530);
         Light.setLow(380);
         while (light.readValue() > 50) {
                pilot.forward();
                while (light.readValue()  <= 50) {
                       pilot.steer(100,20,true);
                       pilot.forward();
                }
        }
   }
}
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2010-5-28 03:56:20 | 显示全部楼层
同是mac党……帮顶下!可惜偶用的NXC……
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-5-28 08:11:45 | 显示全部楼层
告诉你思路
做3个变量,一个max,min,mid;
max,min分别代表白线值和场地背景值,然后mid是max加min的一半
开始的时候,光感放到白线之内,遇到光感大于mid时车左转,否则右转。这样就可以了

这个车子的结构配合我的思路有个缺点,就是不能走向左的急转弯(大于90度的折角转弯)
解决的办法
1.放慢速度
2.加宽白线的宽度
3.修改结构,最理想的结构应该是光感在两个马达之间。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-5-28 09:11:36 | 显示全部楼层
呵呵,我用的也是nxc啦
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2010-5-28 12:40:26 | 显示全部楼层
回复 3# 糖伯虎


    谢谢你的想法,特别是,遇到黑背景时就往白线拐,而在白线上跑时让它往背景方向拐,是我怎么也没想到的方法。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-5-28 17:56:38 | 显示全部楼层
我喜欢你的电脑!!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2010-5-29 00:20:09 | 显示全部楼层
谢谢,不过那电脑不是个人的,是学校的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-8-28 10:05:42 | 显示全部楼层
你的算法过于简单 考虑不够周全
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-8-28 12:09:44 | 显示全部楼层
椭圆形的跑道要求不高的,你只需要遇到黑线左转,遇到白背景右转就可以了,不管是顺时针还是逆时针都没有问题的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-9-8 07:37:50 | 显示全部楼层
LightSensor的构造函数怎么是Pilot?怀疑楼主的代码编译都通不过
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 06:00 , Processed in 0.091158 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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