找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 6920|回复: 1

leJOS寻线原创处女贴

[复制链接]
发表于 2010-9-4 09:49:53 | 显示全部楼层 |阅读模式
LineFollow.rar (1 KB, 下载次数: 8) 附件里包含验光小程序LineCount.java和寻线程序LineFollow.java
这次发一个leJOS寻线的源代码 参数调整的还不够合理 偶尔会出现问题(由于我的寻线图纸是自己用黑胶带贴的 线很细)另外逆时针寻线遇到直角会跑偏(还在思考中)
本次寻线增加了对道路上白色空缺的处理(越过)
另外还请前辈指点 如何能让小车智能的识别出是顺时针还是逆时针行走 如果能区分两个方向 可以采用不同的摆动方案(黑右白左-顺 黑左白右-逆)
下面是代码:
import lejos.nxt.*;
import lejos.robotics.navigation.Pilot;
import lejos.robotics.navigation.TachoPilot;
public class LineFollow {
//按键退出线程
//考虑到命名空间冲突问题 故使用内部类
class Exit extends Thread
{
  @Override
  public void run() {
   // TODO Auto-generated method stub
   super.run();
   while(true)
   {
    if(Button.ESCAPE.isPressed())
     NXT.exit(0);
   }
  }
}

public static void main(String[] args)
{
  LightSensor light = new LightSensor(SensorPort.S1);
  LineFollow lf = new LineFollow();
  Thread exit = lf.new Exit();
  exit.start();
  Motor.C.setSpeed(720);
  Motor.B.setSpeed(720);
  while(true)
  {
   //黑色区域
   if(light.readValue()<43)
   {
    Motor.B.resetTachoCount();
    Motor.C.rotate(60);
   }
   
   //白色区域
   else
   {
    Motor.C.resetTachoCount();
    Motor.B.rotate(50);
    LCD.drawInt(Motor.B.getTachoCount(),0,0);
    //白色空缺处理
    if(Motor.B.getTachoCount()>475)
    {
     Motor.B.rotate(-1*(Motor.B.getTachoCount()-60));
     Pilot pilot = new TachoPilot(5.8f,14f,Motor.B,Motor.C);
     pilot.travel(15);
     Motor.B.resetTachoCount();
     
    }
   }
  }
}
}
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-5-3 23:27:30 | 显示全部楼层
import lejos.robotics.navigation.Pilot;
import lejos.robotics.navigation.TachoPilot; 语句报错 这是为啥啊。。。愁死了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 17:25 , Processed in 0.143552 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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