- Code: Select all
package me.team1.nxt;
import lejos.nxt.SensorPort;
import lejos.nxt.UltrasonicSensor;
import lejos.robotics.objectdetection.Feature;
import lejos.robotics.objectdetection.FeatureDetector;
import lejos.robotics.objectdetection.FeatureListener;
import lejos.robotics.objectdetection.RangeFeatureDetector;
public class FrontSensor extends Thread implements FeatureListener{
Drive drive = new Drive();
Decide decide = new Decide();
int range, truerange, count;
Boolean scan = false;
public void scanON(){
scan = true;
truerange = 0;
count = 0;
}
public int truerange(){
return truerange;
}
public Boolean scan(){
return scan;
}
public void run() {
FrontSensor listener = new FrontSensor();
UltrasonicSensor us = new UltrasonicSensor(SensorPort.S2);
RangeFeatureDetector fd = new RangeFeatureDetector(us, 255, 1);
fd.addListener(listener);
while (true) {
try {
}catch(Exception e){}
}
}
public void featureDetected(Feature feature, FeatureDetector detector) {
range = (int)feature.getRangeReading().getRange();
if(scan){
if(range > truerange) truerange = range;
count++;
if(count == 9) scan = false;
}
if((drive.roomcheck() == true || drive.moving() == true) & range < 23){ drive.motorStop(); drive.goOFF(); drive.movingOFF(); decide.stopON();}
}
}
My final question is lets say my differential pilot class activates pilot.travel(45); and that and a sensor reading of <23 signals the
- Code: Select all
if((drive.roomcheck() == true || drive.moving() == true) & range < 23){ drive.motorStop(); drive.goOFF(); drive.movingOFF(); decide.stopON();}
