| 
 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();
 
 }
 }
 }
 }
 }
 |