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